Higher-order factors, Matrix Specification

1 reply [Last post]
krzysiek's picture
Offline
Joined: 09/05/2013

Hi,

Is this possible to model higher-order factors using matrix specification instead of path specification in OpenMx?

regards,
Krzysiek

mhunter's picture
Offline
Joined: 07/31/2009
Yes

Yes! We don't have built-in and super convenient mechanisms for this, but it's possible. Using the Beta, you'd write something like this

rF1 <- mxMatrix(..., name="F1") # First order factor loadings
rU1 <- mxMatrix(..., name="U1") # First order uniquenesses
rF2 <- mxMatrix(..., name="F2") # Second order factor loadings
rU2 <- mxMatrix(..., name="U2") # Second order uniquenesses
ru <- mxMatrix(..., name="u") # intercepts for manifest vars
rv <- mxMatrix(..., name="v") # means for second order latent vars
ecov <- mxAlgebra(F1 %*% (F2 %*% U2 %*% t(F2)) %*% t(F1) + U1 , name="expCov")
emean <- mxAlgebra(F1 %*% F2 %*% v + u, name="expMean")
expectation <- mxExpectationNormal(cov="expCov", means="expMeans")