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 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 the
necessary skills to master this attribute. Therefore, the vector of skills
is transformed into item-specific latent responses
which are functions of
and Q-matrix entries
(just like in the DINA model). If there are
item categories for item
,
then there exist at most
values of the latent response
.
The multiple choice DINA model estimates the item response function as
with the constraint .
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)