multipleGroup - effect of invariance parameters on model indentification

35 views
Skip to first unread message

Leigh

unread,
May 23, 2018, 11:45:53 AM5/23/18
to mirt-package
Hi Phil and Mirt Community!

I was wondering if anyone could recommend a reference on how the multipleGroup function in mirt (or similar identification of multiple group IRT) is solved.  I have looked through the documentation and I would like to know a bit more detail about how the model is identified.  Basically, I don't understand how different constraints specified with  "invariance" (i.e. "free_means") effect how the model is identified. 

Thank you!
Leigh 


Phil Chalmers

unread,
May 24, 2018, 12:30:07 PM5/24/18
to Leigh Allison, mirt-package
The late Roger Millsap's 2011 book on measurement in-variance would be a good reference for this topic, and contains many of the original citations as well. David Thissen's IRTLRDIF software also has a nice description of the problem in the manual, so if you can track that down then you may find it helpful (I believe at some point I posed the pdf a while back on this forum...). 

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

Leigh

unread,
May 31, 2018, 9:32:12 AM5/31/18
to mirt-package
Thanks Phil! I had a look through Millsap's book. It is very helpful! I was able to find the startup guide for David Thissen's IRTLRDIF but not the manual.  

I have been playing around with your examples to get a better understanding for how constrains are affecting the results and I'm still confused as to why when I run the following code - the slope parameters are not equal in both groups. 

a <- matrix(c(abs(rnorm(5,1,.3)), rep(0,15),abs(rnorm(5,1,.3)),
              rep(0,15),abs(rnorm(5,1,.3))), 15, 3)
d <- matrix(rnorm(15,0,.7),ncol=1)
mu <- c(-.4, -.7, .1)
sigma <- matrix(c(1.21,.297,1.232,.297,.81,.252,1.232,.252,1.96),3,3)
itemtype <- rep('2PL', nrow(a))
N <- 1000
dataset1 <- simdata(a, d, N, itemtype)
dataset2 <- simdata(a, d, N, itemtype, mu = mu, sigma = sigma)
dat <- rbind(dataset1, dataset2)
group <- c(rep('D1', N), rep('D2', N))

#group models
model <- '
F1 = 1-5
F2 = 6-10
F3 = 11-15'

mod<- multipleGroup(dat,model, group = group,
                                       invariance=c('free_means','free_var','slopes','intercepts'))
summary(mod)

Any guidance is greatly appreciated!

Thanks, 
Leigh 

Phil Chalmers

unread,
May 31, 2018, 9:43:12 AM5/31/18
to Leigh Allison, mirt-package
summary() reports the standardised loadings, which take into account the group variance parameters. So, even though you see coef() reporting equal slopes across groups, if the variance terms differ than the standardised estimates will necessarily differ. 

Phil

Leigh

unread,
May 31, 2018, 9:51:56 AM5/31/18
to mirt-package
Of course! Thank you!!

Best, 
Leigh 
Reply all
Reply to author
Forward
0 new messages