## Estimation of different Multidimensional LC IRT models with binary
# responses
# Aggregate data
data(naep)
X = as.matrix(naep)
out = aggr_data(X)
S = out$data_dis
yv = out$freq
# Define matrix to allocate each item to one dimension
multi1 = rbind(c(1,2,9,10),c(3,5,8,11),c(4,6,7,12))
# Three-dimensional Rasch model with 3 latent classes
# the tolerance level has been rise to increase the speed (to be reported
# to a smaller value)
out1 = est_multi_poly(S,yv,k=3,start=0,link=1,multi=multi1,tol=10^-6)
# Three-dimensional 2PL model with 3 latent classes
out2 = est_multi_poly(S,yv,k=3,start=0,link=1,disc=1,multi=multi1)
## Estimation of different Multidimensional LC IRT models with ordinal
# responses
# Aggregate data
data(hads)
X = as.matrix(hads)
out = aggr_data(X)
S = out$data_dis
yv = out$freq
# Define matrix to allocate each item to one dimension
multi1 = rbind(c(2,6,7,8,10,11,12),c(1,3,4,5,9,13,14))
# Bidimensional LC Graded Response Model with 3 latent classes
# (free discriminating and free difficulty parameters)
out1 = est_multi_poly(S,yv,k=3,start=0,link=1,disc=1,multi=multi1)
# Bidimensional LC Partial Credit Model with 3 latent classes
# (constrained discrimination and free difficulty parameters)
out2 = est_multi_poly(S,yv,k=3,start=0,link=2,multi=multi1)
# Bidimensional LC Rating Scale Model with 3 latent classes
# (constrained discrimination and constrained difficulty parameters)
out3 = est_multi_poly(S,yv,k=3,start=0,link=2,difl=1,multi=multi1)
## Estimation of LC model with covariates
# gerate covariates
be = c(0,1,-1)
X = matrix(rnorm(2000),1000,2)
u = cbind(1,X)<!-- %*%be -->
p = exp(u)/(1+exp(u))
c = 1+(runif(1000)<p)
Y = matrix(0,1000,5)
la = c(0.3,0.7)
for(i in 1:1000) Y[i,] = runif(5)<la[c[i]]
# fit the model with k=2 and k=3 classes
out1 = est_multi_poly(Y,k=2,X=X)
out2 = est_multi_poly(Y,k=3,X=X)
# fit model with k=2 and k=3 classes in fortran
out3 = est_multi_poly(Y,k=2,X=X,fort=TRUE)
out4 = est_multi_poly(Y,k=3,X=X,fort=TRUE)
Run the code above in your browser using DataLab