Attachment | Size |
---|---|
path diagram for model | 114.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?
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.
Thanks AdminNeale. I applied your changes and it now works ok.