3 questions about fitting a multidimensional GPCM model with mirt package

231 views
Skip to first unread message

Pierre Michel

unread,
Nov 6, 2014, 5:04:28 AM11/6/14
to mirt-p...@googlegroups.com
Hello all,

I have some other questions about your package mirt.

1) I fitted a multidimensional GPCM to my data using the following code:

mm = mirt(dat, model, "gpcm", technical = list(MAXQUAD = 20000, NCYCLES = 1000))

I increased the number of EM iterations to rise a convergent solution. When I printed the output of this model, the first thing I observed was the unordering of some item thresholds parameters (they should be in a decreasing order). Do you think this is a problem of model fit (some items may not function as intended) and that collapsing some adjacent categories may be a solution ? Have I to explore a uni-dimensional solution first , for each of my 9 dimensions ?

2) The itemfit() function is not applicable to my object mm because there are missing values... is it a good idea to refit the model by using only complete observations (i would lose half of my observations by doing that) or is it better to perform a data imputation method (e.g. multiple imputation) ?

3) I got the following factor variance/covariance matrix:

Factor covariance:
      F1    F2    F3    F4    F5    F6    F7    F8 F9
F1 1.000 0.497 0.620 0.368 0.408 0.410 0.536 0.517  0
F2 0.497 1.000 0.748 0.492 0.543 0.542 0.498 0.705  0
F3 0.620 0.748 1.000 0.498 0.575 0.575 0.563 0.590  0
F4 0.368 0.492 0.498 1.000 0.701 0.700 0.465 0.495  0
F5 0.408 0.543 0.575 0.701 1.000 1.000 0.703 0.501  0
F6 0.410 0.542 0.575 0.700 1.000 1.000 0.705 0.501  0
F7 0.536 0.498 0.563 0.465 0.703 0.705 1.000 0.491  0
F8 0.517 0.705 0.590 0.495 0.501 0.501 0.491 1.000  0
F9 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000  1

as you can see, the last factor is not correlated with the others. But my model was defined as follows:

model = mirt.model()
F1 = 1-8
F2 = 9-12
F3 = 13-16
F4 = 17-19
F5 = 20-22
F6 = 23-25
F7 = 26,27
F8 = 28,29
F9 = 30,31
COV = F1*F2*F3*F4*F5*F6*F7*F8*F9;

I do not understand this result...Is it a problem of precision ? I would be very grateful if you could enlighten me on these problems.

Thank you very much for your help,

Best regards,

Pierre MICHEL

Phil Chalmers

unread,
Nov 6, 2014, 10:20:20 AM11/6/14
to Pierre Michel, mirt-package
Hi Pierre,


On Thu, Nov 6, 2014 at 5:04 AM, Pierre Michel <aliasj...@gmail.com> wrote:
Hello all,

I have some other questions about your package mirt.

1) I fitted a multidimensional GPCM to my data using the following code:

mm = mirt(dat, model, "gpcm", technical = list(MAXQUAD = 20000, NCYCLES = 1000))

I increased the number of EM iterations to rise a convergent solution. When I printed the output of this model, the first thing I observed was the unordering of some item thresholds parameters (they should be in a decreasing order). Do you think this is a problem of model fit (some items may not function as intended) and that collapsing some adjacent categories may be a solution ? Have I to explore a uni-dimensional solution first , for each of my 9 dimensions ?

The thresholds have more to do with the number of relative responses to each category, so they really aren't an issue if they don't systematically change. The ordering between the categories is forced by the so-called 'scoring' coefficients (the ak's), which are fixed to 0:(k-1) categories by default. 
 

2) The itemfit() function is not applicable to my object mm because there are missing values... is it a good idea to refit the model by using only complete observations (i would lose half of my observations by doing that) or is it better to perform a data imputation method (e.g. multiple imputation) ?

That's a good question. If the missing data are MAR, then the itemfit() function can impute plausible responses given some computed ability level estimates, which generally seems to be a reasonable approach to the problem (though it could be improved by further jittering the latent trait estimates). But with 9 factors in your model, item fit statistics will be very hard to compute anyway. 
The reason for this is the ; at the end of the COV line. mirt's syntax is looking for a factor name called "F9;" rather than "F9". Removing that should fix the issue.

As a side note. 9 factors is pretty far outside the scope of what's recommended for the EM algorithm, and you may want to use the MH-RM instead since it should perform better in higher dimensions. As well, this model isn't uniquely identified (two items don't uniquely define a factor.....same as in linear confirmatory factor analysis). You'll have to add an argument line in your syntax such as 

CONSTRAIN = (26,27,a7), (28,29,a8), (30,31,a9)

to set the doublet item slopes equal for identification. Hope that helps.

Phil
 

Thank you very much for your help,

Best regards,

Pierre MICHEL

--
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/d/optout.

Reply all
Reply to author
Forward
0 new messages