Too few degrees of freedom to estimate the model

909 views
Skip to first unread message

Li shu

unread,
Jul 25, 2013, 3:04:38 AM7/25/13
to mirt-p...@googlegroups.com
hi philchalmers:
I was trying mirt to model a two-tier model mentioned in Cai,2010. when a used confmirt(), an error appeared " Too few degrees of freedom to estimate the model"
Why did this occur ? Any suggestion to the next analysis?
thanks.

Phil Chalmers

unread,
Jul 25, 2013, 12:11:29 PM7/25/13
to Li shu, mirt-package
Hi Li,

This is precautionary check that I make for all models to avoid having
negative degrees of freedom for the total model. df in IRT are
calculated somewhat differently and follow the form

df = r - #parameters - 1,

where r is the number of unique response patterns available in the
data, which is only indirectly related to the sample size. If you take
a look at the LSAT7 example while the N = 1000 the number of unique
responses is only 32, so after estimating the 10 parameters in a 2PL
(5 slopes and 5 intercepts) model we are left with df = 21.

If there are more parameters than degrees of freedom I stop the
estimation early to avoid undefined model statistics. It sounds like
you have a very small sample size (especially if you are trying at a
more complicated two-tier model, in which the number of factors
themselves often play a part). Hope that helps.

Phil
> --
> You received this message because you are subscribed to the Google Groups
> "mirt-package" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mirt-package...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Li shu

unread,
Jul 25, 2013, 11:02:53 PM7/25/13
to mirt-p...@googlegroups.com, Li shu
I used a N=183  sample  , thanks for the interpretation of df , I will retry with another big sample.

在 2013年7月26日星期五UTC+8上午12时11分29秒,Phil Chalmers写道:
Message has been deleted

troy....@gmail.com

unread,
Oct 9, 2013, 1:43:45 AM10/9/13
to mirt-p...@googlegroups.com
Hi Phil,
Further to Li's original question, can you please tell me if there is a way to identify the number of unique responses in a data frame?

I have a 344 responses to 63 items in a data frame and am getting the 'too few degrees of freedom' error when trying to undertake exploratory MIRT for a three factor model (meaning estimating 6 parameters in a 2PL model?). I'm guessing it's the same issue as Li was having, but would like to be able to check to rule out some sort of other technical issue.

Thanks,

Troy

Phil Chalmers

unread,
Oct 13, 2013, 10:05:40 AM10/13/13
to troy....@gmail.com, mirt-package
Hi Troy,

Certainly. The available df is the number of unique response patterns
minus 1, so if you use df <- nrow(mod@tabdata) - 1 you can observe the
total df. At most for your data you can have 343 df, if all your
response patterns are unique.

The number of parameters computed is generally just a nose count of
free parameters (exploratory models are slightly different, but not by
much). So for your 63 items you should have around [63 (intercepts) +
63 * 3 (slopes)] = 252 estimated parameters....which is a lot given
such a small sample size. You can override the computed df for
personal reasons using the technical = list() input, though the model
fit statistics will necessarily be incorrect.

I think in the future I'll print a more informative warning about this
though rather than having to chase down the exact numbers. Cheers.

Phil
Reply all
Reply to author
Forward
0 new messages