R/autoGDINA.R
, R/summary.GDINA.R
autoGDINA.Rd
autoGDINA
conducts a series of CDM analyses within the GDINA framework. Particularly,
the GDINA model is fitted to the data first using the GDINA
function;
then, the Qmatrix is validated using the function Qval
.
Based on the suggested Qmatrix, the data is fitted by the GDINA model again, followed
by an item level model selection via the Wald test using modelcomp
. Lastly,
the selected models are calibrated based on the suggested Qmatrix using the GDINA
function.
The Qmatrix validation and itemlevel model selection can be disabled by the users.
Possible reduced CDMs for Wald test include the DINA model, the DINO model, ACDM, LLM and RRUM.
See Details
for the rules of itemlevel model selection.
autoGDINA( dat, Q, modelselection = TRUE, modelselectionrule = "simpler", alpha.level = 0.05, modelselection.args = list(), Qvalid = TRUE, Qvalid.args = list(), GDINA1.args = list(), GDINA2.args = list(), CDM.args = list() ) # S3 method for autoGDINA summary(object, ...)
dat  A required \(N \times J\) 

Q  A required matrix; The number of rows occupied by a singlestrategy dichotomous item is 1, by a polytomous item is
the number of nonzero categories, and by a mutiplestrategy dichotomous item is the number of strategies.
The number of column is equal to the number of attributes if all items are singlestrategy dichotomous items, but
the number of attributes + 2 if any items are polytomous or have multiple strategies.
For a polytomous item, the first column represents the item number and the second column indicates the nonzero category number.
For a multiplestrategy dichotomous item, the first column represents the item number and the second column indicates the strategy number.
For binary attributes, 1 denotes the attributes are measured by the items and 0 means the attributes are not
measured. For polytomous attributes, nonzero elements indicate which level
of attributes are needed (see Chen, & de la Torre, 2013). See 
modelselection  logical; conducting model selection or not? 
modelselectionrule  how to conducted model selection? Possible options include

alpha.level  nominal level for the Wald test. The default is 0.05. 
modelselection.args  arguments passed to 
Qvalid  logical; validate Qmatrix or not? 
Qvalid.args  arguments passed to 
GDINA1.args  arguments passed to GDINA function for initial GDINA calibration 
GDINA2.args  arguments passed to GDINA function for the second GDINA calibration 
CDM.args  arguments passed to GDINA function for final calibration 
object  GDINA object for various S3 methods 
...  additional arguments 
a list consisting of the following elements:
initial GDINA calibration of class GDINA
second GDINA calibration of class GDINA
Q validation object of class Qval
model comparison object of class modelcomp
Final CDM calibration of class GDINA
After the Wald statistics for each reduced CDM were calculated for each item, the reduced models with p values less than the prespecified alpha level were rejected. If all reduced models were rejected for an item, the GDINA model was used as the best model; if at least one reduced model was retained, three diferent rules can be implemented for selecting the best model:
When modelselectionrule
is simpler
:
If (a) the DINA or DINO model was one of the retained models, then the DINA or DINO model with the larger p value was selected as the best model; but if (b) both DINA and DINO were rejected, the reduced model with the largest p value was selected as the best model for this item. Note that when the pvalues of several reduced models were greater than 0.05, the DINA and DINO models were preferred over the ACDM, LLM, and RRUM because of their simplicity. This procedure is originally proposed by Ma, Iaconangelo, and de la Torre (2016).
When modelselectionrule
is largestp
:
The reduced model with the largest pvalues is selected as the most appropriate model.
When modelselectionrule
is DS
:
The reduced model with nonsignificant pvalues but the smallest dissimilarity index is selected as the most appropriate model. Dissimilarity index can be viewed as an effect size measure, which quatifies how dissimilar the reduced model is from the GDINA model (See Ma, Iaconangelo, and de la Torre, 2016 for details).
summary
: print summary information
Returned GDINA1.obj
, GDINA2.obj
and CDM.obj
are objects of class GDINA
,
and all S3 methods suitable for GDINA
objects can be applied. See GDINA
and extract
.
Similarly, returned Qval.obj
and Wald.obj
are objects of class Qval
and modelcomp
.
Ma, W., & de la Torre, J. (2020). GDINA: An R Package for Cognitive Diagnosis Modeling. Journal of Statistical Software, 93(14), 126.
Ma, W., Iaconangelo, C., & de la Torre, J. (2016). Model similarity, model selection and attribute classification. Applied Psychological Measurement, 40, 200217.
if (FALSE) { # simulated responses Q < sim10GDINA$simQ dat < sim10GDINA$simdat #misspecified Q misQ < Q misQ[10,] < c(0,1,0) out1 < autoGDINA(dat,misQ,modelselectionrule="largestp") out1 summary(out1) AIC(out1$CDM.obj) # simulated responses Q < sim30GDINA$simQ dat < sim30GDINA$simdat #misspecified Q misQ < Q misQ[1,] < c(1,1,0,1,0) auto < autoGDINA(dat,misQ,Qvalid = TRUE, Qvalid.args = list(method = "wald"), modelselectionrule="simpler") auto summary(auto) AIC(auto$CDM.obj) #using the other selection rule out11 < autoGDINA(dat,misQ,modelselectionrule="simpler", modelselection.args = list(models = c("DINO","DINA"))) out11 summary(out11) # disable model selection function out12 < autoGDINA(dat,misQ,modelselection=FALSE) out12 summary(out12) # Disable Qmatrix validation out3 < autoGDINA(dat = dat, Q = misQ, Qvalid = FALSE) out3 summary(out3) }