I am trying to run a CFA using the mirt package. I have 3 substantial factors FA, FB, and FC as well as several general factors F1, F2, etc.
I would like to let the substantial factors correlate among each other, but model the remaining factors as uncorrelated to the substantial factors, but correlated among each other.
For 3+1 factors, I used the model
model=mirt.model('FA=1-3
FB=4-6
FC=7-9
F1=1-9
COV=FA*FB*FC
CONSTRAIN = (1-9,a4)')
which works perfectly fine, resulting in the following summary():
Factor correlations:
FA FB FC F1
FA 1.000 0.643 0.522 0
FB 0.643 1.000 0.566 0
FC 0.522 0.566 1.000 0
F1 0.000 0.000 0.000 1
When I add further factors (F2, F3, ...) and specify that I would like them to "correlate freely", this fails to achieve the same result. The model
model=mirt.model('FA=1-3
FB=4-6
FC=7-9
F1=1-9
F2=1-9
COV=FA*FB*FC, F1*F2
CONSTRAIN = (1-9,a4),(1-9,a5)')
yields the following summary():
Factor correlations:
FA FB FC F1 F2
FA 1.000 0.669 0.553 0 0
FB 0.669 1.000 0.589 0 0
FC 0.553 0.589 1.000 0 0
F1 0.000 0.000 0.000 1 0
F2 0.000 0.000 0.000 0 1
Any ideas on why the COV formulation doesn't work?
Many thanks! KH
Apparently, there is no problem with the code to begin with. The author of the mirt package, Phil Chalmers, couldn't reproduce the problem. The way to define the covariances using a comma is correct.