Hi,
I have just been familiarising myself with the running of a two latent factor model with 18 manifest variables. I ran the same data using path and matrix specification, and in SPSS. The output for the factor loadings (not means) differed across all analyses and I am really only familiar with SPSS output, where the loading of the latent variable is automatically split across the two latent factors for each variable. I'm a bit confused ..... Can someone pleease give me some tips on interpreting the output for OpenMx?
Kind regards,
J
It would be helpful if you attached your OpenMx script(s) so that we can see what you specified as your model.
Hi Steve,
Yes, sorry about that, and I also just realised that in Mx I just dumped the missing values and that in SPSS they would likely have been estimated. In the script, the estimated factor loadings differ across the models, though a difference in output remained when I set them both to .5.
Anyway I'll attach the script and data and would greatly appreciate feedback.
Thankyou,
jane
A couple of comments that might help you track down the differences between the two models. (1) The path specification for RAM models is stored in a matrix format. This means it's possible to inspect the model in matrix format. The following will show you the matrices in the model:
(2) You can use R functions to create matrices quickly instead of typing them out by hand. For example, as you have specified the F matrix the values can be written as
cbind(diag(18), 0, 0)
.(3) R and OpenMx are both case-sensitive. In the script, the free parameters in the path style are in lowercase format, and in the matrix style are in uppercase format. The yielded results are the same as long as each is consistent, but it makes it harder to compare the former to the latter in R. identical('a', 'A') returns FALSE.
Thankyou, that will save some time and energy.
J
I deleted the data file per ebejer's request because of lack of adequate de-identification.
I went ahead and translated your script into a somewhat simpler form so that you can see a bit about how R can help you. Combinations of the matrix(), paste(), and rep() commands can save you a lot of typing and make it more obvious what is going on.
I noticed two things that you might not have intended in your model.
In the loadings for F1 you set the fixed loading for the scaling variable to be .5. I suspect you may have wanted that to be 1.0.
In the loadings for F2 you only supplied a vector of 3 logicals i.e., free=c(FALSE,TRUE,TRUE) when actually there were 9 indicators. Since 9 is a multiple of 3, what R does in this case is to copy the vector three times. Essentially, you fixed loadings f3swan10, f3swan13, and f3swan15. I suspect that you did not mean to do that.
So, I attach a modified script. See if that clears up your discrepancy.
Thankyou, yes that is very helpful. I have been lost between the need to generate sample data, understand and specifying matrix algebra, and refine my code (and integrate new statistical concepts).
I realised that I had not specified the logicals after using the code that mspiegel supplied, though I had misinterpreted the values required for fixed loadings.
Thanks again
j