Tue, 10/19/2010 - 23:55

Hi all,

I'm new to SEM and OpenMx, but I've been working on replicating models from a paper in which my advisor was involved. I've managed to do so successfully with most of the models in the paper, but two are puzzling me. They are the only two involving endogenous latent variables (the others being measurement models), so I assume this has something to do with it.

To focus on one model, it contains 19 manifest variables and 4 latent variables. Manifest variables 1-6 load onto latent variable 1, 7-11 load onto latent 2, 15-19 load onto latent 3, and 7-19 all load onto latent 4. Finally, unidirectional arrows run from latent 1 to latents 2-4. I have tried formulating this model in several ways, but none yield the correct standardized path coefficients. (The loadings onto latent 1 are correct, however - again leading me to focus on the endogenous latent variables.) I was able to model the data correctly in AMOS, so it should be possible... My only thought at this point is that I'm standardizing using the wrong term (e.g. confusing the error/disturbance term with the variances of endogenous latent variables, since the method for specifying these is the same), but if so I'm not sure where to find the correct term.

None of the examples in the documentation covered endogenous latent variables, so I would appreciate any advice you can give me. I've been using the path specification method, so I would a solution in that form would be great, if possible.

Thanks!

I'm glad you're working your way through the program. If you're looking for help with specific coding problems, it helps to post the code.

I imagine your issue has to do with how you are identifying your model. I'm basing this guess entirely on your use of the word "standardized" in the above description. Everything that OpenMx gives is raw output, and should be interpreted in the appropriate units. I will presume that you've identified your factors by constraining their variances to a fixed value of 1. Any covariance between exogenous factors can then be interpreted as a correlation. However, when you identify an endogenous factor this way, you're actually fixing that factor's residual variance at 1. The resulting regression will not be standardized, as the variance of the endogenous factor is now 1 + b^2, where b is the regression coefficient. You can manually calculate the standardized coefficient by dividing it by the product of the standard deviations of the two variables. If you've identified your factors through this variance constraint, the product of the standard deviations is sqrt(1) * sqrt(1+b^2), or just sqrt(1+b^2).

OpenMx doesn't provide automatic model standardization because there are lots of different ways to specify a model. While someone could write a model standardization function (any volunteers?), the function would depend on how one specifies a model.

Thanks! That worked out perfectly. I actually tried specifying the model both by fixing the variances to 1 and by scaling to individual indicators, but in both cases I was mistakenly using the latent factors' residual variances to calculate the standardized coefficients. Sorry I didn't post code - in retrospect that would've been more efficient.