Cognitive Diagnosis Modeling

Functions for cognitive diagnosis modeling and multidimensional item response modeling for dichotomous and polytomous item responses. This package enables the estimation of the DINA and DINO model (Junker & Sijtsma, 2001, ), the multiple group (polytomous) GDINA model (de la Torre, 2011, ), the multiple choice DINA model (de la Torre, 2009, ), the general diagnostic model (GDM; von Davier, 2008, ), the structured latent class model (SLCA; Formann, 1992, ) and regularized latent class analysis (Chen, Li, Liu, & Ying, 2017, ). See George, Robitzsch, Kiefer, Gross, and Uenlue (2017) for further details on estimation and the package structure. For tutorials on how to use the CDM package see George and Robitzsch (2015, ) as well as Ravand and Robitzsch (2015).

Cognitive Diagnosis Modeling

If you use CDM and have suggestions for improvement or have found bugs, please email me at [email protected].

CRAN version

The official version of CDM is hosted on CRAN and may be found here. The CRAN version can be installed from within R using:


GitHub version

The version hosted here is the development version of CDM. The GitHub version can be installed using devtools as:




----------------------- CDM NEWS -----------------------------


CDM package +-+-+-+ |C|D|M| +-+-+-+

    A. Robitzsch [aut, cre], T. Kiefer [aut], 
     A. C. George [aut], & A. Uenlue [aut]

mailto: [email protected]

For reporting a bug, please always provide a reproducible R script and (if necessary) a corresponding dataset.


VERSIONS CDM 7.2 | 2019-02-08 | Last: CDM 7.2-30

NOTE * changes in estimation algorithm in reglca() NOTE * changes in estimation algorithm for regularized estimation in gdina() and slca() ADDED * included argument 'regular_weights' for adaptive regularized estimation in gdina() NOTE * added simulation function in data.dtmr
FIXED * fixed a bug in slca() in estimation problems with equality constraints NOTE * included data check routine for non-defined categories in Q-matrix in mcdina() (suggested by Marcus Kubsch) FIXED * fixed a bug in cdm.est.class.accuracy() when skill names were missing in Q.matrix (reported by Sandip Sinharay) FIXED * prevent negatively estimated probabilities in gdina() function when PEM acceleration is used (thanks to Yi-Jhen Wu) ADDED * added S3 method IRT.marginal_posterior() for computing marginal posterior distributions (requested by Elif Oezlem Ardic) ADDED * included checks of identifiability conditions of the DINA model according Gu and Xu in din_identifiability()

DATA * included/modified datasets: data.dtmr, data.cdm09, data.cdm10 EXAMP * included/modified examples: reglca (1), gdina (13), data.dtmr (2), IRT.marginal_posterior (1), din_identifiability (1)

VERSIONS CDM 7.1 | 2018-12-13 | Last: CDM 7.1-20

NOTE * included function numerical_gradient() NOTE * changed computation of numerical gradient to symmetric difference quotient in numerical_Hessian()

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

VERSIONS CDM 7.0 | 2018-11-06 | Last: CDM 7.0-12

NOTE * included argument 'prob_min' in reglca() to prevent negatively estimated probabilities or numerical instabilities (thanks to Boris Girnat) NOTE * included utility function cat_paste()

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

VERSIONS CDM 6.6 | 2018-09-30 | Last: CDM 6.6-5

NOTE * changes in estimation algorithm in regularized latent class analysis function reglca() to stabilize estimation

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

VERSIONS CDM 6.5 | 2018-08-16 | Last: CDM 6.5-12

NOTE * changed metric of regularization parameter lambda in gdina() which seems to improve estimation stability NOTE * exported utility function cdm_parameter_regularization(), cdm_calc_information_criteria(), cdm_penalty_values(), cdm_print_summary_information_criteria() FIXED * corrected output with missing entries in case of groups without observations in IRT.RMSD() (thanks to Laura Helbling)

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

VERSIONS CDM 6.4 | 2018-07-06 | Last: CDM 6.4-23

NOTE * included argument 'optimizer' in gdina() which allows to use the stats::optim() function for optimization in M-step (default is optimizer='optim'). 'use_optim=TRUE' is always used for estimation of the RRUM model. This change was motivated by an application of Hamdollah Ravand. NOTE * included utility function cdm_matrixstring() FIXED * allowed items with only zero Q-matrix entries in mcdina() anf fixed a bug in reduced skill space estimation in mcdina() (thanks to Jeannot Gersner) NOTE * exported core computation function IRT_RMSD_calc_rmsd() for RMSD statistic

DATA * included/modified datasets: --- EXAMP * included/modified examples: gdina (13)

VERSIONS CDM 6.3 | 2018-05-28 | Last: CDM 6.3-45

NOTE * renamed thresholding penalty functions NOTE * deleted seed argument from cdm.est.class.accuracy() function ADDED * included general simulation function sim_model() ADDED * included function IRT.classify() for computing individual classifications ADDED * included function eval_likelihood() for evaluating likelihood (and posterior) and prep_data_long_format() for saving item response matrix in long format NOTE * included corrected statistics for classification accuracy and consistency in cdm.est.class.accuracy()

DATA * included/modified datasets: --- EXAMP * included/modified examples: sim_model (1), IRT.classify (1), eval_likelihood (1)

VERSIONS CDM 6.2 | 2018-05-02 | Last: CDM 6.2-91

FIXED * fixed a bug in IRT.RMSD() function for models fitted in the CDM package NOTE * speeded parts of the IRT.modelfit() function ADDED * included item discrimination indices in discrim.index() function (Henson, DiBello & Stout, 2018) NOTE * included argument 'IDI_diff' in the din.validate.qmatrix() function. Speeded this function due to referring most of the computations to Rcpp. ADDED * included cognitive diagnosis model for simultaneous identification for skills and misconceptions (Kuo et al., 2018, APM). The model is included in the gdina() function using the argument rule='SISM'.

DATA * included/modified datasets:, data.timss07.G4.Qdomains,, data.cdm05, data.cdm06, data.cdm07, data.pisa00R.ct,, data.cdm08 EXAMP * included/modified examples: IRT.RMSD (3), data.timss07.G4.lee (2), data.cdm (2), data.pisa00R (1), gdina (12)

VERSIONS CDM 6.1 | 2018-02-26 | Last: CDM 6.1-10

FIXED * fixed bug of computation of MD statistic in IRT.RMSD() which was recently broken NOTE * included item index in title of figures in IRT.irfprobPlot()

DATA * included/modified datasets: --- EXAMP * included/modified examples: IRT.RMSD (2)

VERSIONS CDM 6.0 | 2017-11-20 | Last: CDM 6.0-101

ADDED * included regularized maximum likelihood in slca() ADDED * included option for positivity constraints of Xlambda parameter in slca() ADDED * included P-EM acceleration method in slca(), gdm(), and gdina() NOTE * avoided inversion of singular covariance matrices in gdina() by using MASS::ginv() NOTE * included several sub-datasets and different Q-matrices of the fraction subtraction dataset (see 'data.fraction') NOTE * slight changes in algorithm of higher-order GDINA model NOTE * included argument 'diag_only' in numerical_Hessian() NOTE * exported utility functions cdm_fa1(), cdm_print_summary_call(), cdm_print_summary_computation_time(), threshold operators cdm_XXX_threshold() for diverse 'XXX', cdm_fit_normal(), cdm_parameter_regularization(), cdm_penalty_values(), CDM_rbind_fill(), cdm_matrix1(), cdm_matrix2() NOTE * included derivative function numerical_Hessian_partial() ADDED * added option for monotonicity constraints in gdina() ADDED * added regularization methods in gdina(). Implemented are the penalties SCAD, lasso, ridge, SCAD-L2, truncated L1, MCP (Xu & Shang, 2017, JASA) NOTE * included argument 'freq_weights' in gdina() to disable the usage of frequency weights ADDED * included prior distributions for item parameters in gdina() function ADDED * added regularized latent class estimation (reglca(); Chen et al., 2015, JASA; Chen et al., 2017, Psychometrika) NOTE * extended option for skill space reduction in gdina() to multiple group analysis NOTE * enabled 'delta.designmatrix' argument in gdm() function which was previously ignored NOTE * disbaled PEM acceleration for HOGDINA models (not yet implemented, thanks to Hamdollah Ravand)

DATA * included/modified datasets: data.fraction3, data.fraction4, data.fraction5 EXAMP * included/modified examples: gdina (1.9, 1.10, 1.11), slca (6), reglca (1)

VERSIONS CDM 5.9 | 2017-10-06 | Last: CDM 5.9-27

FIXED * fixed a bug in 'gdina' function in argument 'invariance' if a vector of item names is used (thanks to Hamdollah Ravand) FIXED * fixed the broken function 'gdina.dif' (thanks again to Hamdollah Ravand) ADDED * added EM acceleration method P-EM in function 'slca' by argument 'PEM' NOTE * included P-EM utility functions 'cdm_pen_XXX' and 'cdm_print_summary_data_frame'

DATA * included/modified datasets: --- EXAMP * included/modified examples: gdina (5.5)

VERSIONS CDM 5.8 | 2017-08-07 | Last: CDM 5.8-9

NOTE * fixed a bug in 'equivalent.dina' and included an additional example (thanks to Sedat San) NOTE * moved lattice and psych packages from 'Imports' to 'Suggests'. Removed MASS and plyr packages from 'Imports'. NOTE * imported utility functions 'CDM_require_namespace' and 'CDM_rmvnorm'. FIXED * fixed a bug in 'gdina' for Q-matrices with only one skill (thanks to Matthew Madison)

DATA * included/modified datasets: --- EXAMP * included/modified examples: equivalent.dina (3)

VERSIONS CDM 5.7 | 2017-06-24 | Last: CDM 5.7-16

ADDED * included S3 method 'IRT.frequencies' for calculation of observed and expected frequencies of univariate and bivariate distributions (suggested by Rudolf Debelak)

DATA * included/modified datasets: --- EXAMP * included/modified examples: IRT.frequencies (1)

VERSIONS CDM 5.6 | 2017-06-17 | Last: CDM 5.6-16

NOTE * internal restructure of 'gdina' and 'gdm' functions

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

VERSIONS CDM 5.5 | 2017-04-11 | Last: CDM 5.5-21

NOTE * corrected a wrong specification in the Rd manual of 'skillspace.hierarchy' (Example 2; thanks to Peida Zhan) FIXED * corrected calculations of MD and MAD statistics in 'IRT.RMSD' FIXED * fixed a bug in computation of 'itemfit.sx2' in case of cells with frequencies of zero (thanks to Carmen Koehler)

DATA * included/modified datasets: --- EXAMP * included/modified examples: skillspace.hierarchy (2)

CDM 5.4 (2017-02-08) -- CRAN CDM 5.4-0

FIXED * fixed warnings in calculation of standard errors in 'gdina' and 'gdina.wald' (thanks to Andres Alberto Burga Leon)

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 5.3 (2017-01-11) -- CRAN CDM 5.3-0

ADDED * included function CDM::IRT.RMSD which computed group-wise item fit. The RMSD item fit statistic was denoted as RMSEA in previous publications and is internally computed by the CDM::itemfit.rmsea function in the CDM package. ADDED * included chi square statistic and MAD statistic (mean absolute deviation) of item fit in CDM::IRT.RMSD NOTE * cleaned code in function 'WaldTest' a bit (thanks to suggestions of Michael Chirico) NOTE * added links to recently released GDINA package in R. Included Example 1d for fitting a GDINA model with GDINA::GDINA.

DATA * included/modified datasets: --- EXAMP * included/modified examples: IRT.RMSD (1), gdina (1d)

CDM 5.2 (2016-10-14) -- CRAN CDM 5.2-1

NOTE * extended 'item_by_group' function which can now handle partial set of group-specific items ADDED * included option for a subset of invariant items in multiple group estimation of GDINA model in 'gdina' (requested by Hamid Bahrami) FIXED * fixed a bug in setting boundaries for guessing and slipping parameters in 'din' (thanks to Jill-Jen Vie) NOTE * reference to new Journal of Statistical Software George et al. article in the CITATION file and the CDM manual

DATA * included/modified datasets: --- EXAMP * included/modified examples: item_by_group (1), gdina (5)

CDM 5.1 (2016-08-29) -- CRAN CDM 5.1-0

FIXED * changed the method of standard error calculation in 'gdina' function. It seems that previous CDM version produced overestimated standard errors (thanks to Xue-Lan Qiu). The improved calculation is now the default specified as the argument 'se_version=1'. The behavior of older CDM versions can be obtained with 'se_version=0'.

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 5.0 (2016-07-11) -- CRAN CDM 5.0-0

NOTE * changed the way of calculating numerical derivatives in 'numerical_Hessian' NOTE * included utility function 'abs_approx' for a differentiable function approximation (and its derivative 'abs_approx_D1') of absolute value function NOTE * added argument 'append' in function 'osink' NOTE * included a utility function 'summary_sink' which sinks summary output of a method into a file NOTE * included utility function 'deltaMethod' for nonlinear transformations of parameters NOTE * included utility function 'item_by_group' which extends a dataset of item responses and a grouping variable to an extended dataset of group-specific item responses ADDED * added sequential GDINA model for polytomous item responses (Ma & de la Torre, 2016, BJMSP) in 'gdina' function. NOTE * included argument 'invariance' in 'gdina' which allows specification of non-invariant item parameters across multiple groups (see ?gdina, Example 5) NOTE * changed number of M-steps in 'slca' in default to 10 iterations (msteps=10)

DATA * included/modified datasets: data.cdm04 EXAMP * included/modified examples: abs_approx (1), summary_sink (1), deltaMethod (1), item_by_group (1), gdina (5,11)

CDM 4.991 (2016-05-31) -- CRAN CDM 4.991-1

NOTE * changed argument structure of 'numerical_hessian' NOTE * included maximum likelihood estimation method for GDINA models (method='ML') which seems to be more stable when method='ULS' (or 'WLS') has a bad convergence behavior. Now, the GDINA function switches to ML estimation if the RRUM model is used (thanks to a correspondence with Thomas Eckes). NOTE * added an example of fitting (data.cdm, Example 1) the reduced RUM model in the CDM package (see the recent Chiu et al., IJT paper) NOTE * changed default value of 'max.increment' argument in 'gdina' function to .3 FIXED * fixed a bug in 'gdina.dif' (thanks to Sinem Senfarah)

DATA * included/modified datasets: data.cdm03 EXAMP * included/modified examples: data.cdm (1)

CDM 4.8 (2016-03-10) -- CRAN CDM 4.8-0

FIXED * fixed a bug in 'itemfit.sx2' for fitted objects in TAM NOTE * slightly changed output of 'print' methods NOTE * changed argument 'rdigits' to 'digits' in 'summary' method if necessary NOTE * included utility functions 'osink' and 'csink' for writing output of 'summary' into a file NOTE * allowed argument 'file' in 'summary' method for objects of class 'gdina', 'gdm', 'mcdina' and 'slca' ADDED * included function 'numerical_Hessian' for a numerical evaluation of the Hessian matrix

DATA * included/modified datasets: --- EXAMP * included/modified examples: osink (1), numerical_Hessian (1)

CDM 4.7 (2016-01-30) -- CRAN CDM 4.7-0

NOTE * extended Wald test for item fit 'gdina.wald' for DINO models. In addition, an effect size of approximation ('uwgtdist' and 'wgtdist') is included NOTE * cleaned namespace file and defined imported functions in a more explicit way ADDED * added a S3 method 'IRT.parameterTable' ADDED * added a utility function 'WaldTest' for performing Wald tests

DATA * included/modified datasets: --- EXAMP * included/modified examples: gdina.wald (1), data.ecpe (1),

CDM 4.6 (2015-11-04) -- CRAN CDM 4.6-0

NOTE * included optional lower and upper bounds for estimation of guessing and slipping parameters in 'din' (arguments 'guess.min', 'guess.max', 'slip.min', 'slip.max') (requested by Kevin Carl Santos)

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 4.5 (2015-08-28) -- CRAN CDM 4.5-0

NOTE * extended 'din' and 'gdina' functions for items with more than five measured attributes per item (requested by Alvaro Artavia Medrano) NOTE * included 'converged' value for all models indicating whether maximum number of iterations was reached (suggested by an anonymous reviewer)

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 4.4 (2015-07-01) -- CRAN CDM 4.4-1

FIXED * fixed a bug in function 'sequential.items'

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 4.3 (2015-06-05) -- CRAN CDM 4.3-0

NOTE * included t and p values in 'IRT.jackknife.gdina' FIXED * fixed bugs in 'summary.gdina' and 'gdina' due to computational problems in standard error calculation

DATA * included/modified datasets: --- EXAMP * included/modified examples: ---

CDM 4.2 (2015-02-23) -- CRAN CDM 4.2-12

FIXED * fixed the ignorance of the 'centered.latent' argument in the 'gdm' function ADDED * included S3 methods 'IRT.expectedCounts' for extracting expected counts and '' for extracting the used item response dataset ADDED * included general plotting function for item response functions 'IRT.irfprobPlot'. This function can be used with both lattice and graphics packages.
ADDED * included S3 method 'predict' (and function 'IRT.predict') for computing expected values and residuals for fitted models in CDM
NOTE * added attributes group and weights to '' value NOTE * added a summary method for 'IRT.compareModels' NOTE * changed output of posterior in 'gdina' ADDED * included function 'IRT.repDesign' for constructing replicate designs ADDED * added arguments for fixing and initial parameters in 'gdina' function NOTE * added parameter table and matrix of polychoric correlations among skills in 'gdina' output ADDED * added S3 method 'IRT.jackknife' and an initial version for models of class 'gdina' ADDED * added function 'IRT.derivedParameter' for replication methods for derived parameters based on objects of class 'IRT.jackknife'

DATA * included/modified datasets: data.timss11.G4.AUT, data.timss11.G4.AUT.part EXAMP * included/modified examples: IRT.expectedCounts (1,2), IRT.irfprobPlot (1,2), predict (1,2), (1), IRT.repDesign (1,2), gdina (1), IRT.jackknife (1,2)

CDM 4.1 (2014-12-17) -- CRAN CDM 4.1

NOTE * included confidence intervals S3 method for din objects FIXED * fixed a bug in printing BIC for 'gdina' objects NOTE * included S3 method 'IRT.modelfit' for assessment of absolute model fit NOTE * included S3 method '' for computation of standard errors NOTE * included S3 method 'IRT.IC' for extracting information criteria and 'IRT.compareModels' for model comparisons NOTE * included object names in 'anova' methods for CDM objects NOTE * included S3 method 'IRT.anova' NOTE * removed MX2 statistic from 'modelfit.cor' function

DATA * included/modified datasets: --- EXAMP * included/modified examples: vcov.din (1), IRT.modelfit (1), IRT.IC (1), IRT.compareModels (1), anova (1,2)

CDM 4.0 (2014-11-21) -- CRAN CDM 4.0

NOTE * included argument for iteration progress in 'gdm' and 'slca' NOTE * included value call in 'din', 'gdina', 'gdm', 'mcdina' and 'slca' NOTE * changed print method in 'din' and included print method for 'gdina', 'gdm' and 'slca' NOTE * added anova and coef method for 'slca' function ADDED * added asymptotic covariance matrix estimation S3 method 'vcov' for objects of class din ADDED * added computation of entropy of whole test and items in function 'entropy.lca' (Asparouhov & Muthen, 2014) NOTE * included a summary function for 'cdi.kli' NOTE * included a function 'skillspace.full' for creating a skill space for dichotomous skills ADDED * included a plot S3 method for 'gdm' and 'slca'
NOTE * corrected a bug in person value of 'gdm': missing standard errors of EAPs of multiple dimensions are now included ADDED * included person fit appropriateness statistic (Liu et al., 2009) ADDED * included S3 methods 'IRT.likelihood', 'IRT.personfit', 'IRT.irfprob' and 'IRT.factor.scores' for objects of classes din, gdina, gdm, slca and mcdina NOTE * included person parameter estimation (classification) for 'slca' and 'mcdina' functions

DATA * included/modified datasets: --- EXAMP * included/modified examples: data.dcm (1), modelfit.cor (2), vcov-CDM (1), entropy.lca (1,2,3), personfit.appropriateness (1,2), slca (1), IRT.likelihood (1), IRT.irfprob (1), IRT.factor.scores (1)

CDM 3.4 (2014-08-31) -- CRAN CDM 3.4-21

NOTE * speeded itemfit.sx2 a bit NOTE * included output value 'pattern' in multiple group GDINA models (requested by Sung Eun Kim) NOTE * included adjusted mean absolute deviation of Q3 statistics (MADaQ3) in modelfit.cor.din EXAMP * included examples for running CDMs in mirt package o DINA model ('data.dcm', Model 1) o additive GDINA model ('data.dcm', Model 6)

DATA * included/modified datasets: --- EXAMP * included/modified examples: modelfit.cor (1), din.deterministic, itemfit.sx2 (1), data.dcm (1,6)

CDM 3.3 (2014-05-25) -- CRAN CDM 3.3-24

ADDED * included structured latent class analysis for polytomous data ('slca')

DATA * included/modified datasets: --- EXAMP * included/modified examples: slca (1,2,3,4,5)

CDM 3.2 (2014-04-23) -- CRAN CDM 3.2-6

NOTE * included an argument save.devmin in 'gdina' for more parsimonious savings of output values to avoid working memory overflow for large datasets NOTE * included effect size of differential item functioning in gdina model (included in 'gdina.dif') FIXED * fixed a bug in itemfit.sx2

DATA * included/modified datasets: --- EXAMP * included/modified examples: gdina.dif (1)

CDM 3.1 (2014-03-21) -- CRAN CDM 3.1-14

FIXED * fixed a bug when printing objects of class 'din' NOTE * allowed vector input of item response pattern in 'plot.din' NOTE * disabled argument log.file in 'summary.din' NOTE * included random initial parameter values in 'din' and 'gdina' NOTE * changed some settings in plot.din

DATA * included/modified datasets: --- EXAMP * included/modified examples: din (1), gdina (1), plot.din

CDM 3.0 (2014-02-26) -- CRAN CDM 3.0-29

NOTE * changed output in summary.gdina a bit (fixed a bug for the output of skill probabilities) NOTE * included the argument 'avoid.zeroprobs' in gdina function to avoid zero probabilities of skill classes and inversion of singular matrices
NOTE * fixed problems in itemfit.sx2 for empty cells (thanks to Balal Izanloo) ADDED * included a Wald test for the GDINA model (gdina.wald) ADDED * included assessment of item-wise differential item functioning in the GDINA model (gdina.dif) FIXED * removed minor bug in summary.gdina FIXED * fixed a bug with singular design matrix in skill space reduction
ADDED * included calculation of polychoric correlation in summary.gdina and an additional function skill.polychor NOTE * removed parallel plot form plot.din FIXED * fixed a crucial bug for in the multidimensional GDMs with item slope parameter estimation ADDED * included function 'mcdina' for estimating the multiple group multiple choice DINA (MCDINA) model with polytomous attributes

DATA * included/modified datasets: data.cdm01, data.cdm02 EXAMP * included/modified examples: data.ecpe, gdina.wald (1), gdina.dif (1), din (7), mcdina (1,2,3)

CDM 2.7 (2014-01-30) -- CRAN CDM 2.7-7

ADDED * included cognitive diagnostic indices based on Kullback-Leibler information ('cdi.kli') NOTE * changed NAMESPACE and DESCRIPTION files due to a change in Rcpp NOTE * included non-exported Rcpp files for calculating individual likelihood and posterior distribution for polytomous items and multiple groups

DATA * included/modified datasets: --- EXAMP * included/modified examples: cdi.kli (1)

CDM 2.6 (2014-01-19) -- CRAN CDM 2.6-13

FIXED * fixed a bug in polytomous GDINA models with only one skill NOTE * included value 'zeroprob.skillclasses' in skillspace.hierarchy NOTE * included a more efficient skill space reduction method in gdina: using the argument 'reduced.skillspace.method', the new implemented method is now the default ADDED * included data transformation function 'sequential.items' for constructing dichtomous pseudo items from polytomous items for estimation sequential item response models

DATA * included/modified datasets: data.sda6,, data.timss07.G4.lee EXAMP * included/modified examples: gdm (10)

CDM 2.5 (2014-01-16) -- CRAN CDM 2.5-48

FIXED * fixed a bug when inverting a singular matrix in standard error calculation in gdina function (thanks to Hsin-Hao Chen) NOTE * included conditional item probabilities in gdina output NOTE * included gdina plot function (thanks to a discussion with Hamdollah Ravand) FIXED * fixed a bug in summary.dina if data without column names is provided (thanks to Hu Jinxiang) FIXED * removed a bug in gdina function which occured sometimes due to division by zero (thanks to Hu Jinxiang) FIXED * fixed a bug in cdm.est.class.accuracy for GDINA models (thanks to Hamdollah Ravand) FIXED * fixed some instable numerical behavior for higher order GDINA models (thanks to Ed Merkle) FIXED * fixed a bug in calculating number of estimated parameters for 'din' function in case of skill classes with zero probability (thanks to Juergen Gross) NOTE * added some explanations in the manual of 'modelfit.cor' ADDED * included S-X2 item fit statistic ('itemfit.sx2') accompanied with a summary and a plot method ADDED * included marginal skill classification reliability in 'cdm.est.class.accuracy' function ADDED * implemented significance tests in modelfit.cor and modelfit.cor.din ADDED * included jackknife estimation of standard errors and bias corrected estimators in modelfit.cor.din NOTE * speeded function 'modelfit.cor' by moving some parts of the code to Rcpp NOTE * included warnings in case of nonconvergence in gdina function (thanks to a dataset provided by Hamdollah Ravand) NOTE * slight change of algorithm for skill space reduction which seems to improve convergence behavior ADDED * included a function for skill space approximation ADDED * included a function for calculation reduced skill spaces if hierarchies among skills exist ('skillspace.hierarchy') ADDED * included generalized distance discriminating method and a function for computing ideal response patterns

DATA * included/modified datasets:, data.melab, data.jang, data.dtmr EXAMP * included/modified examples: gdm (4,5,6), gdina (8,9), sim.din (3), sim.gdina (2,3), itemfit.sx2 (1,2), din(6)

CDM 2.4 (2013-10-24) -- CRAN CDM 2.4-9

DATA * included two datasets 'data.dcm' and 'data.ecpe' DATA * eliminated a recoding error in data.Students

CDM 2.3 (2013-09-06) -- CRAN CDM 2.3-15

NOTE * worked on slight improvements of computation time in din and gdina DATA * included multiple group dataset '' NOTE * cleaned CDM manual (thanks to Michaela Mayr)

CDM 2.2 (2013-08-20) -- CRAN CDM 2.2-20

NOTE * accelerated rowMaxs function ADDED * included Q-matrix validation function (de la Torre, 2008) ADDED * included joint maximum likelihood estimation and classification function for the mixed DINA/DINO model -> function din.deterministic EXAMP * included another example (based on attribute vectors) in sim.din function ADDED * included polytomous GDINA model (Chen & de la Torre, 2013)

CDM 2.01 (2013-07-27) -- CRAN CDM 2.01-11

FIXED * fixed a bug in gdm in multiple group estimation: group labeling was incorrect and is now included in output group.stat and displayed in summary.gdm NOTE * improved convergence behavior for multiple group analysis NOTE * accelerated calculation in gdm: skillspace reduction

CDM 1.5 (2013-07-09) -- CRAN CDM 1.5-12

NOTE * allowed for centering of intercepts and slopes in gdm ADDED * included satured skill distribution estimation in gdm FIXED * fixed a bug in the calculation of RMSEA itemfit, although is not clear if the correct formula is used FIXED * fixed a bug in gdm with varying number of item categories (thanks to Artur Pokropek) ADDED * included the multidimensional latent class IRT model (Bartolucci, 2007) in gdm (skillspace="est") NOTE * speeded calculation of modelfit.cor

CDM 1.4 (2013-06-30) -- CRAN CDM 1.4-16

FIXED * eliminated a bug in GDINA function for link="log" ADDED * included the parametrization of the reduced RUM model in gdina ADDED * worked on higher order GDINA model which has the argument HOGDINA in gdina. Now there is dependency on the 'fa' factor analysis function in the psych package. ADDED * included log-likelihood extractor functions ADDED * included group-wise calculation of RMSEA statistics see itemfit.rmsea and the gdm output (thanks to Artur Pokropek) FIXED * (hopefully) fixed a bug in gdm function with differing number of item categories (thanks to Artur Pokropek)
NOTE * use frequency patterns in gdm to speed up calculations for large data sets (argument 'use.freqpatt' in gdm function) NOTE * included more than one step in gdm function - arguments msteps (set to 8 M steps as the default) and convM

CDM 1.3 (2013-05-15) -- CRAN CDM 1.3-17

ADDED * included the general diagnostic model (function gdm) ADDED * included a function for calculating equivalent skill classes for the DINA/DINO model ADDED * modelfit and anova functions are also accessible for the GDM FIXED * fixed a bug in the function for classification accuracy ADDED * included the RMSEA item fit index FIXED * fixed a bug in gdina estimation ADDED * included coef extractor function

CDM 1.2-3 (2013-02-12)

ADDED * included a model fit function modelfit.cor(.din) for the comparison of observed and expected correlations FIXED * fixed a bug in the gdina function when applying the model with one skill

CDM 1.2-1/1.2-2 (2013-02-01)

ADDED * allow for user specified reduced skill space designs ADDED * included tetrachoric correlations in summary.gdina function ADDED * handled zero probability classes in gdina function ADDED * allowed for output and input of attribute patterns in sim.din function NOTE * included relative deviance change as convergence criterion in din function ADDED * included function for determining a statistically equivalent DINA model (von Davier, 2013) NOTE * changed structure of din summary ADDED * included an anova function ADDED * included a function for estimating classification reliability FIXED * fixed a bug in gdina function when creating design matrices

CDM 1.2.0 (2012-09-30)

ADDED * implemented the latent skill space reduction according to Xu and von Davier (2008) FIXED * fixed a bug in calculation of estimated parameters FIXED * fixed a bug in IDI calculation FIXED * corrected MLE based classification in case of latent classes with a priori spceified zero probability in the din function (yet to be done in gdina) FIXED * fixed a bug in standard error calculation in gdina NOTE * speed improvements in din and gdina function - included a C function for calculating the posterior distribution NOTE * check of admissible rule in gdina ADDED * include rule "GDINA2" and "GDINA1" ("GDINA1" is equivalent to "ACDM") ADDED * Simulation function for the GDINA model included ADDED * multiple group gdina function for estimation of generalized DINA models (de la Torre, 2011) ADDED * included new function summary.gdina

CDM 1.1 (2012-07-29)

NOTE * highest argument deleted from print.din method NOTE * new argument for summary.din n.skill.classes NOTE * skill pattern probabilities deleted from print.din NOTE * skill pattern summary replaced by n most frequent skill classes in summary.din NOTE * (argument ask=TRUE in summary.din placed by overwrite=FALSE) NOTE * use a different item discrimination index (Lee et al., 2012) NOTE * remove GDINA estimation from this package version because it is in an experimental status -> gdina will be included in CDM >= 1.1-1 NOTE * new optional attribute for q-matrix specification list of skill labels NOTE * changed ouput in din function -> pattern, like and posterior are sorted according to the original input data frame FIXED * remove a bug for models with only attribute ADDED * new argument for din method zeroprob.skillclasses ADDED * new argument for din method equal.itempars NOTE * new arguments for summary.din method log.file and ask FIXED * minor bug fixes in print.din method NOTE * replace internal method rowProds with faster rowProds2 NOTE * option for writing an output file of model results included in function summary.din

CDM 1.0 (2011-10-27)

           [--- FIRST CRAN RELEASE ---]

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


7.3-17 by Alexander Robitzsch, 5 days ago,

Report a bug at

Browse source code at

Authors: Alexander Robitzsch [aut, cre] , Thomas Kiefer [aut] , Ann Cathrice George [aut] , Ali Uenlue [aut]

Documentation:   PDF Manual  

Task views: Psychometric Models and Methods

GPL (>= 2) license

Imports graphics, grDevices, MASS, methods, polycor, Rcpp, sfsmisc, stats, utils

Depends on mvtnorm

Suggests BIFIEsurvey, GDINA, lattice, miceadds, mirt, ROI, sirt, TAM

Linking to Rcpp, RcppArmadillo

Imported by LAM, STARTS, dcminfo, immer, mdmb, miceadds, sirt.

Depended on by TAM.

Suggested by GDINA, dina.

See at CRAN