The function mcdina implements the multiple choice DINA model (de la Torre, 2009; see also Ozaki, 2015; Chen & Zhou, 2017) for multiple groups. Note that the dataset must contain integer values 1,…,Kj for each item. The multiple choice DINA model assumes that each item category possesses different diagnostic capacity. Using this modeling approach, different distractors of a multiple choice item can be of different diagnostic value. The Q-matrix can also contain integer values which allows the definition of polytomous attributes.
mcdina(dat, q.matrix, group=NULL, itempars="gr", weights=NULL, skillclasses=NULL, zeroprob.skillclasses=NULL, reduced.skillspace=TRUE, conv.crit=1e-04, dev.crit=0.1, maxit=1000, progress=TRUE)## S3 method for class 'mcdina'summary(object, digits=4, file=NULL,...)## S3 method for class 'mcdina'print(x,...)
Arguments
dat: A required N×J data matrix containing integer responses (1, 2, …, K) of N respondents to J test items.
q.matrix: A required matrix specifying which item category is intended to measure which skill. The Q-matrix has K+2 columns for a model with K skills. In the first column should be the item index, in the second column the category integer and the rest of the columns contains the 'ordinary' Q-matrix specification. See data.cdm01$q.matrix for the layout of such a Q-matrix.
group: An optional vector of group identifiers for multiple group estimation.
itempars: A character or a character vector of length J indicating whether item parameters should separately estimated within each group. The default is "gr", for group-invariant item parameters choose "jo".
weights: An optional vector of sample weights.
skillclasses: An optional matrix for determining the skill space. The argument can be used if a user wants less than the prespecified number of 2K skill classes.
zeroprob.skillclasses: An optional vector of integers which indicates which skill classes should have zero probability. Default is NULL (no skill classes with zero probability).
reduced.skillspace: An optional logical indicating whether the skill space should be reduced to cover only bivariate associations among skills (see Xu & von Davier, 2008).
conv.crit: Convergence criterion for change in item parameter values
dev.crit: Convergence criterion for change in deviance values
maxit: Maximum number of iterations.
progress: An optional logical indicating whether the function should print the progress of iteration in the estimation process.
object: Object of class mcdina.
digits: Number of digits to display in summary.mcdina
file: Optional file name for a file in which summary
should be sinked.
x: Object of class mcdina
...: Further arguments to be passed.
Details
The multiple choice DINA model defines for each item category jc the necessary skills to master this attribute. Therefore, the vector of skills α is transformed into item-specific latent responses ηj which are functions of α and Q-matrix entries qjc
(just like in the DINA model). If there are Kj item categories for item j, then there exist at most Kj values of the latent response ηj.
The multiple choice DINA model estimates the item response function as
P(Xnj=k∣ηnj=l)=pjkl
with the constraint ∑kpjkl=1.
Returns
A list with following entries
item: Data frame with item parameters
posterior: Individual posterior distribution
likelihood: Individual likelihood
ic: List with information criteria
q.matrix: Used Q-matrix
pik: Array of item-category probabilities
delta: Array of item parameters
se.delta: Array of standard errors of item parameters
MLE.class: Classified skills for each student (MLE)
MAP.class: Classified skills for each student (MAP)
EAP.class: Classified skills for each student (EAP)
dat: Used dataset
skillclasses: Used skill classes
group: Used group identifiers
lc: Data frame containing definitions of each item category
lr: Data frame containing the relation of each latent class and each item category
iter: Number of iterations
itempars: Used specification of item parameter estimation type
converged: Logical indicating whether convergence was achieved.
References
Chen, J., & Zhou, H. (2017) Test designs and modeling under the general nominal diagnosis model framework. PLoS ONE 12(6), e0180016.
de la Torre, J. (2009). A cognitive diagnosis model for cognitively based multiple-choice options. Applied Psychological Measurement, 33, 163-183.
Ozaki, K. (2015). DINA models for multiple-choice items with few parameters: Considering incorrect answers. Applied Psychological Measurement, 39(6), 431-447.
Xu, X., & von Davier, M. (2008). Fitting the structured general diagnostic model to NAEP data. ETS Research Report ETS RR-08-27. Princeton, ETS.
Note
If dat and q.matrix correspond to the 'ordinary format' which is used in gdina, then the function mcdina will detect it and convert it into the necessary format (see Example 2).
See Also
See din for estimating the DINA/DINO model and gdina
for estimating the GDINA model.
Examples
############################################################################## EXAMPLE 1: Multiple choice DINA model for data.cdm01 dataset#############################################################################data(data.cdm01, package="CDM")dat <- data.cdm01$data
group <- data.cdm01$group
q.matrix <- data.cdm01$q.matrix
#*** Model 1: Single group modelmod1 <- CDM::mcdina( dat=dat, q.matrix=q.matrix )summary(mod1)#*** Model 2: Multiple group model with group-invariant item parametersmod2 <- CDM::mcdina( dat=dat, q.matrix=q.matrix, group=group, itempars="jo")summary(mod2)## Not run:#*** Model 3: Multiple group model with group-specific item parametersmod3 <- CDM::mcdina( dat=dat, q.matrix=q.matrix, group=group, itempars="gr")summary(mod3)#*** Model 4: Multiple group model with some group-specific item parametersitempars <- rep("jo", ncol(dat))itempars[ c(2,7,9)]<-"gr"# set items 2,7 and 9 group specificmod4 <- CDM::mcdina( dat=dat, q.matrix=q.matrix, group=group, itempars=itempars)summary(mod4)#*** Model 5: Reduced skill space# define skill classesskillclasses <- scan(nlines=1)# read only one line000100010001110111skillclasses <- matrix( skillclasses, ncol=3, byrow=TRUE)mod5 <- CDM::mcdina( dat, q.matrix=q.matrix, group=group0, skillclasses=skillclasses )summary(mod5)#*** Model 6: Reduced skill space with setting zero probabilities# for some latent classes# set probabilities of classes P101 P011 (6th and 7th class) to zerozeroprob.skillclasses <- c(6,7)mod6 <- CDM::mcdina( dat, q.matrix, group=group, zeroprob.skillclasses=zeroprob.skillclasses )summary(mod6)############################################################################## EXAMPLE 2: Using the mcdina function for estimating the DINA model#############################################################################data(sim.dina, package="CDM")data(sim.qmatrix, package="CDM")# estimate the DINA modelmod <- CDM::mcdina( sim.dina, q.matrix=sim.qmatrix )summary(mod)############################################################################## EXAMPLE 3: MCDINA model with polytomous attributes#############################################################################data(data.cdm02, package="CDM")dat <- data.cdm02$data
q.matrix <- data.cdm02$q.matrix
# estimate model with polytomous attribute B1mod1 <- CDM::mcdina( dat, q.matrix=q.matrix )summary(mod1)## End(Not run)