M2() in Rotating block designs

7 views
Skip to first unread message

Farid Huseynov

unread,
Jan 30, 2026, 2:26:34 AM (8 days ago) Jan 30
to mirt-package

Hi everyone. I’m having trouble computing the global M2() model-fit statistic in mirt for a rotating-cluster / matrix-sampling test design. Running M2(fit3PL) produces:

Error in if (null.fit$M2 > newret$M2) : missing value where TRUE/FALSE needed

Our booklets each contain 25 items. Cluster A is common (5 items), and the other clusters contain 10 items each. Some booklet pairs share only the 5 items in cluster A, while other booklet pairs share ~15 items. M2() returns results for the higher-overlap booklet sets (15 shared items), but fails when fitting/assessing the model across all 4 booklets, likely because M2() is covariance-based and requires sufficiently dense pairwise item overlap; with only 5 shared items, the required covariance structure may be non-identifiable (leading to NA internally).

Is this interpretation correct? If so, would you recommend relying on item-level fit (e.g., itemfit, Q3 residuals) or computing M2() only within booklet subsets with adequate overlap?

Screenshot 2026-01-30 111407.png
Reply all
Reply to author
Forward
0 new messages