Please share your Stan program and accompanying data if possible.
My code is specified as below. Actually here the K(number of categories for each item) is varying, says item 1 and 2 are dichotomous with 2 categories, item 3 and 4 are polytomous with 4 categories. So my K in the input data actually is a vector, says c(2, 2, 4, 4); however, in the parameter block, where the line ordered[K-1] ka[n_item] reports an error says the K in the <> should be integer instead of vector. Is there any way to solve this problem? Additionally, is there any changes necessary for the model block? Thank you so much if you could share any thoughts!
data {
int <lower=0> n_person; // number of persons
int <lower=0> n_item; // number of items
int <lower=2> K; //number of categories for each item
int <lower=1,upper=K> Y[n_person,n_item]; // where number in the braket needs to be integer only!
}
parameters {
vector[n_person] kai ; // latent trait
real <lower=0> alpha [n_item] ; // slope
ordered[K-1] ka[n_item]; //item category intercept
}
model{
kai ~ normal(0,1);
alpha~ lognormal(0,1);
for (j in 1:n_item){
for (k in 1:(K-1)){
ka[j,k]~normal(0,1);
}
}
for (i in 1:n_person){
for (j in 1:n_item){
Y[i,j]~ordered_logistic(kai[i]*alpha[j],ka[j]);
}
}
}