You are here

Empirical Underidentification with a bifactor type model

3 posts / 0 new
Last post
paulT's picture
Offline
Joined: 11/03/2017 - 06:47
Empirical Underidentification with a bifactor type model
AttachmentSize
Image icon path diagram for model114.52 KB

First post by new user: Can anyone give some advice on an empirical under-identification issue please? I am trying to fit the following model:

resVars      <- mxPath( from=mylabels, arrows=2,
                        free=TRUE, values=rep(1,12), 
                        labelatVars      <- mxPath( from=c("X1","X2"), arrows=2, connect="unique.pairs",
                        free=c(TRUE,FALSE,TRUE), values=c(1,0,1), labels=c("varX1","cov","varX2") )
 
# factor loadings for X1
facLoadsX1     <- mxPath( from="X1", to=mylabels, arrows=1,
                          free=c(FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE), values=rep(1,12),
                          labels =c("l1","l2","l3","l4","l5","l6","l1","l2","l3","l4","l5","l6") )
# factor loadings for X2 
facLoadsX2     <- mxPath( from="X2", to=mylabels, arrows=1,
                          free=c(FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE), values=rep(1,12),
                          labels =c("k1","k2","k3","k4","k5","k6","k1","k2","k3","k4","k5","k6") )
 
# means
means        <- mxPath( from="one", to=c(mylabels,'X1','X2'), arrows=1,
                        free=c(T,T,T,T,T,T,T,T,T,T,T,T,FALSE,FALSE), values=c(1,1,1,1,1,1,1,1,1,1,1,1,0,0),
                        labels =c("meanA","meanB","meanC",
                                  "meanD","meanE","meanF","meanA","meanB","meanC",
                                  "meanD","meanE","meanF",NA,NA) )
 
twoFactorModel <- mxModel("Two Factor Model", type="RAM",
                          manifestVars=mylabels,
                          latentVars=c("X1","X2"),
                          dataRaw, resVars, latVars, facLoadsX1, facLoadsX2, means)
 
twoFactorFit <- mxRun(twoFactorModel)
ls=c("e1","e2","e3","e4","e5","e6","e1","e2","e3","e4","e5","e6") )

I find that this model is underidentified and has large Std errors which is presumably a result of the underidentification. I think that there should be some additional constraints but would appreciate any advice?

AdminNeale's picture
Offline
Joined: 03/01/2013 - 14:09
All paths non-zero gives rotational problem

The factors seem to do the same thing - although a different loading is fixed to 1 for each, the factor variances are free, and the two factors are allowed to vary and covary. You could fix a factor loading to zero for one of the factors, and even then there may be a rotational underidentification if the factors are allowed to covary. I would recommend i) fix both factor variances to 1, fix the covariance to zero, free one of the two factor loadings currently fixed at 1.0, fix the other one to zero instead, and rerun. This may not be the model you want, but you can rotate the now-identified solution to one that you prefer.

paulT's picture
Offline
Joined: 11/03/2017 - 06:47
THANK YOU!

Thanks AdminNeale. I applied your changes and it now works ok.