Deterministic Classification and Joint Maximum Likelihood Estimation of the Mixed DINA/DINO Model
Deterministic Classification and Joint Maximum Likelihood Estimation of the Mixed DINA/DINO Model
This function allows the estimation of the mixed DINA/DINO model by joint maximum likelihood and a deterministic classification based on ideal latent responses.
method: Estimation method. The default is joint maximum likelihood estimation (JML). Other options include an adaptive estimation of guessing and slipping parameters (adaptive) while using these estimated parameters as weights in the individual deviation function and classification based on the Hamming distance (hamming) and the weighted Hamming distance (weighted.hamming) (see Chiu & Douglas, 2013).
conv: Convergence criterion for guessing and slipping parameters
maxiter: Maximum number of iterations
increment.factor: A numeric value of at least one which could help to improve convergence behavior and decreases parameter increments in every iteration. This option is disabled by setting this argument to 1.
progress: An optional logical indicating whether the function should print the progress of iteration in the estimation process.
Returns
A list with following entries - attr.est: Estimated attribute patterns
criterion: Criterion of the classification function. For joint maximum likelihood it is the deviance.
guess: Estimated guessing parameters
slip: Estimated slipping parameters
prederror: Average individual prediction error
q.matrix: Used Q-matrix
dat: Used data frame
References
Chiu, C. Y., & Douglas, J. (2013). A nonparametric approach to cognitive diagnosis by proximity to ideal response patterns. Journal of Classification, 30, 225-250.
See Also
For estimating the mixed DINA/DINO model using marginal maximum likelihood estimation see din.
See also the NPCD::JMLE function in the NPCD package for joint maximum likelihood estimation of the DINA or the DINO model.
Examples
############################################################################## EXAMPLE 1: 13 items and 3 attributes#############################################################################set.seed(679)N <-3000# specify true Q-matrixq.matrix <- matrix(0,13,3)q.matrix[1:3,1]<-1q.matrix[4:6,2]<-1q.matrix[7:9,3]<-1q.matrix[10,]<- c(1,1,0)q.matrix[11,]<- c(1,0,1)q.matrix[12,]<- c(0,1,1)q.matrix[13,]<- c(1,1,1)q.matrix <- rbind( q.matrix, q.matrix )colnames(q.matrix)<- paste0("Attr",1:ncol(q.matrix))# simulate data according to the DINA modeldat <- CDM::sim.din( N=N, q.matrix)$dat
# Joint maximum likelihood estimation (the default: method="JML")res1 <- CDM::din.deterministic( dat, q.matrix )# Adaptive estimation of guessing and slipping parametersres <- CDM::din.deterministic( dat, q.matrix, method="adaptive")# Classification using Hamming distanceres <- CDM::din.deterministic( dat, q.matrix, method="hamming")# Classification using weighted Hamming distanceres <- CDM::din.deterministic( dat, q.matrix, method="weighted.hamming")## Not run:#********* load NPCD library for JML estimationlibrary(NPCD)# DINA modelres <- NPCD::JMLE( Y=dat[1:100,], Q=q.matrix, model="DINA")as.data.frame(res$par.est )# item parametersres$alpha.est # skill classifications# RRUM modelres <- NPCD::JMLE( Y=dat[1:100,], Q=q.matrix, model="RRUM")as.data.frame(res$par.est )## End(Not run)