reglca.Rd
Estimates the regularized latent class model for dichotomous responses based on regularization methods (Chen, Liu, Xu, & Ying, 2015; Chen, Li, Liu, & Ying, 2017). The SCAD and MCP penalty functions are available.
reglca(dat, nclasses, weights=NULL, group=NULL, regular_type="scad",
regular_lam=0, sd_noise_init=1, item_probs_init=NULL, class_probs_init=NULL,
random_starts=1, random_iter=20, conv=1e-05, h=1e-04, mstep_iter=10,
maxit=1000, verbose=TRUE, prob_min=.0001)
# S3 method for reglca
summary(object, digits=4, file=NULL, ...)
Matrix with dichotomous item responses. NA
s are allowed.
Number of classes
Optional vector of sampling weights
Optional vector for grouping variable
Regularization type. Can be scad
or mcp
. See gdina
for
more information.
Regularization parameter \(\lambda\)
Standard deviation for amount of noise in generating random starting values
Optional matrix of initial item response probabilities
Optional vector of class probabilities
Number of random starts
Number of initial iterations for random starts
Convergence criterion
Numerical differentiation parameter
Number of iterations in the M-step
Maximum number of iterations
Logical indicating whether convergence progress should be displayed
Lower bound for probabilities in estimation
A required object of class gdina
, obtained
from a call to the function gdina
.
Number of digits after decimal separator to display.
Optional file name for a file in which summary
should be sinked.
Further arguments to be passed.
The regularized latent class model for dichotomous item responses assumes \(C\) latent classes. The item response probabilities \(P(X_i=1|c)=p_{ic}\) are estimated in such a way such that the number of different \(p_{ic}\) values per item is minimized. This approach eases interpretability and enables to recover the structure of a true (but unknown) cognitive diagnostic model.
A list containing following elements (selection):
Item response probabilities
Latent class probabilities
Individual posterior
Individual likelihood
Log-likelihood value
Number of estimated parameters
Number of skill class parameters
Number of groups
Expected counts
Number of item parameters
Number of regularized parameters
Number of regularized parameters per item
Data frame with item parameters
Item response probabilities (in an array)
Number of persons
Number of items
Chen, Y., Liu, J., Xu, G., & Ying, Z. (2015). Statistical analysis of Q-matrix based diagnostic classification models. Journal of the American Statistical Association, 110, 850-866.
Chen, Y., Li, X., Liu, J., & Ying, Z. (2017). Regularized latent class analysis with application in cognitive diagnosis. Psychometrika, 82, 660-692.
if (FALSE) {
#############################################################################
# EXAMPLE 1: Estimating a regularized LCA for DINA data
#############################################################################
#---- simulate data
I <- 12 # number of items
# define Q-matrix
q.matrix <- matrix(0,I,2)
q.matrix[ 1:(I/3), 1 ] <- 1
q.matrix[ I/3 + 1:(I/3), 2 ] <- 1
q.matrix[ 2*I/3 + 1:(I/3), c(1,2) ] <- 1
N <- 1000 # number of persons
guess <- rep(seq(.1,.3,length=I/3), 3)
slip <- .1
rho <- 0.3 # skill correlation
set.seed(987)
dat <- CDM::sim.din( N=N, q.matrix=q.matrix, guess=guess, slip=slip,
mean=0*c( .2, -.2 ), Sigma=matrix( c( 1, rho,rho,1), 2, 2 ) )
dat <- dat$dat
#--- Model 1: Four latent classes without regularization
mod1 <- CDM::reglca(dat=dat, nclasses=4, regular_lam=0, random_starts=3,
random_iter=10, conv=1E-4)
summary(mod1)
#--- Model 2: Four latent classes with regularization and lambda=.08
mod2 <- CDM::reglca(dat=dat, nclasses=4, regular_lam=0.08, regular_type="scad",
random_starts=3, random_iter=10, conv=1E-4)
summary(mod2)
#--- Model 3: Four latent classes with regularization and lambda=.05 with warm start
# "warm start" -> use initial parameters from fitted model with higher lambda value
item_probs_init <- mod2$item_probs
class_probs_init <- mod2$class_probs
mod3 <- CDM::reglca(dat=dat, nclasses=4, regular_lam=0.05, regular_type="scad",
item_probs_init=item_probs_init, class_probs_init=class_probs_init,
random_starts=3, random_iter=10, conv=1E-4)
}