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?
