Interpreting output

7 replies [Last post]
ebejer's picture
Offline
Joined: 03/18/2010

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

Steve's picture
Offline
Joined: 07/30/2009
It would be helpful if you

It would be helpful if you attached your OpenMx script(s) so that we can see what you specified as your model.

ebejer's picture
Offline
Joined: 03/18/2010
Hi Steve, Yes, sorry about

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

AttachmentSize
swanFA-2.R 12.58 KB
Steve's picture
Offline
Joined: 07/30/2009
I went ahead and translated

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.

1. 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.

2. 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.

AttachmentSize
swanFA_smb.R 1.73 KB
ebejer's picture
Offline
Joined: 03/18/2010
Thankyou, yes that is very

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

mspiegel's picture
Offline
Joined: 07/31/2009
A couple of comments that

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:

twoFactorSwanModel$A
twoFactorSwanModel$S
twoFactorSwanModel$F
twoFactorSwanModel$M

(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.

ebejer's picture
Offline
Joined: 03/18/2010
Thankyou, that will save some

Thankyou, that will save some time and energy.

J

neale's picture
Offline
Joined: 07/31/2009
I deleted the data file per

I deleted the data file per ebejer's request because of lack of adequate de-identification.