mcdina {CDM} | R Documentation |
Multiple Choice DINA Model
Description
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,\ldots, K_j
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.
Usage
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 |
q.matrix |
A required matrix specifying which item category is intended to measure which skill.
The Q-matrix has |
group |
An optional vector of group identifiers for multiple group estimation. |
itempars |
A character or a character vector of length |
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 |
zeroprob.skillclasses |
An optional vector of integers which indicates which skill classes should have
zero probability. Default is |
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 |
digits |
Number of digits to display in |
file |
Optional file name for a file in which |
x |
Object of class |
... |
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
\bold{\alpha}
is transformed into item-specific latent responses
\eta_{j}
which are functions of
\bold{\alpha}
and Q-matrix entries q_{jc}
(just like in the DINA model). If there are K_j
item categories for item j
,
then there exist at most K_j
values of the latent response \eta_j
.
The multiple choice DINA model estimates the item response function as
P( X_{nj}=k | \eta_{nj}=l )=p_{jkl}
with the constraint \sum_k p_{jkl}=1
.
Value
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 |
itemstat |
Data frame containing item definitions |
n.ik |
Array of expected counts |
deviance |
Deviance |
attribute.patt |
Probabilities of latent classes |
attribute.patt.splitted |
Splitted attribute pattern |
skill.patt |
Marginal skill probabilities |
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. |
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).
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.
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 model
mod1 <- CDM::mcdina( dat=dat, q.matrix=q.matrix )
summary(mod1)
#*** Model 2: Multiple group model with group-invariant item parameters
mod2 <- 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 parameters
mod3 <- CDM::mcdina( dat=dat, q.matrix=q.matrix, group=group, itempars="gr")
summary(mod3)
#*** Model 4: Multiple group model with some group-specific item parameters
itempars <- rep("jo", ncol(dat))
itempars[ c( 2, 7, 9) ] <- "gr" # set items 2,7 and 9 group specific
mod4 <- CDM::mcdina( dat=dat, q.matrix=q.matrix, group=group, itempars=itempars)
summary(mod4)
#*** Model 5: Reduced skill space
# define skill classes
skillclasses <- scan(nlines=1) # read only one line
0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1
skillclasses <- 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 zero
zeroprob.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 model
mod <- 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 B1
mod1 <- CDM::mcdina( dat, q.matrix=q.matrix )
summary(mod1)
## End(Not run)