I estimated very basic LCA model (with binary items and two categories) using mdirt function, for example as fit <- mdirt(data, 2), here all data variables were binary.
Then I estimated model fit using M2 function (
M2(fit)), which returned M2 statistics and df, p, and RMSEA with CI. First of all, M2 doesn't estimate null model, and thus doesn't return CFI and TLI. Second, it doesn't return SRMSR; if I asked for residual matrices (
M2(fit, residmat = T)), it returns strange list with Xi2, delta, estpars, p, e, and SRMSR (which is NULL) objects.
- First of all, why
isn't SRMSR
estimated? Its construction should be the same as with traditional IRT (e.g., 2PL) model, or I am wrong?
- Second, what are these objects which are returned as residual matrices? Why they have 21 rows/columns (6 items per 2 categories, 2 latent classes)?
- And finally, I don't understand why the null model is not defined. It should be equivalent to the NULL model in 2PL model. I assume I can estimate null model as LCA model with a single group (i.e., fit <- mdirt(data, 1)), get M2 statistic and d.f., and estimate it manually. However, I am afraid this not to be the right approach; otherwise, I suppose it were already implemented.
Thank you for any advice!
(My data are special-education test with recognition of the first and last phone in a word. Therefore, children either can or cannot discriminate phones, which lead to bimodal distribution of raw scores, perfect 2PL model fit, and alpha > .98 even with five or six items. On the other hand, it makes no sense to estimate 2PL model, if I see this pattern; at least its parameters would be biased. However, the LCA model is still slightly worse compared to 2PL and I need complete fit indices to report in test manual.)