You are here

Model specification (fix factor loading or latent variable variance).

5 posts / 0 new
Last post
nickz's picture
Offline
Joined: 10/02/2013 - 10:27
Model specification (fix factor loading or latent variable variance).
AttachmentSize
Binary Data code.r7.04 KB
Plain text icon code_output.txt4.22 KB
Plain text icon outputopenmx.txt9.8 KB
Image icon modelspecification.png15.4 KB

Hello All,

As the title suggests, I have a question regarding whether to fix the factor loading or the latent variable variance. Both can be fixed in order to derive a 'scale' for your latent variables. The fit statistics should be the same in both cases.

In one of the openmx examples this is the case. I've attached the output (outputopenmx.txt). The scripts can be found on the forum (https://openmx.ssri.psu.edu/sites/default/files/ThreeFactorObliqueCov-OpenMx100221.R). The dataset can also be found there as well (https://openmx.ssri.psu.edu/sites/default/files/factorExample1.csv).

I tried to replicate the above using the Digman97 dataset provided with metaSEM. I've attached the code (code.r) and output (code_output.r). The original example can be found on the metasem website (http://courses.nus.edu.sg/course/psycwlm/Internet/metaSEM/masem.html#sec-1-4-2). The fit statistics were not the same and were worse when fixing the factor loadings.

Did I incorrectly specify the model? Did I overlook something? Should the fit statistics be the same?

I've included a graph to illustrate the different (modelspectification.png). I made the graph in ms visio; if anybody knows a tutorial or example to directly render path diagrams from r which doesn't require the openmx path speficiation (e.g. semPlot), I would like to know as well.

All suggestions are most welcome.

Regards,

Nick

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Hi Nick, When we are

Hi Nick,

When we are analyzing "covariance" matrix, we have to fix either the factor loading or the latent variable variance for identificaiton issue. When we are doing TSSEM, the default argument is to pool "correlation" matrices in the stage 1 analysis and to fit "correlation" structure in the stage 2 analysis (please see the cor.analysis argument in tssem1()).

In the Digman example, you are fitting a correlation structure. The only way is to fix the variances of the latent variables since all latent and observed variables are standardized. There are more issues in fitting correlation structures. For example, we have to make sure that the diagonals of the model implied "covariance" matrix are 1 because it is a correlation matrix. The tssem2() uses two approaches to handle this. The first approach is to treat the error variances as computed values rather than parameters. The second approach is to apply nonlinear constraints on the diagonals of the model implied "covariance" matrix (please see the diag.constraints argument in tssem2()).

Hope this helps.

Regards,
Mike

nickz's picture
Offline
Joined: 10/02/2013 - 10:27
model specification follow-up

Dear Mike,

As always, I really appreciate your comments. It helps alot. I hope you don't mind a few follow-up questions.

I understand how to specify the measurement model. However, I do not quite understand how to specify the structural model. I couldn't find an example in case of latent variables.

Should the variances of the latent variables all be fixed? Is there a difference between exogenous and endogenous variables?

I've included model specification of a measurement model and three alternative structural models as an example. Is the specification correct? The exogenous variables in the examples are fixed to 1, the endogenous variables are not. Also, should the paths between latent variables be specified in the A matrix? Both below and above the diagonal?

I've attached the graphs below (modelspecification.pdf) and the associated matrix specification (modelspecification.r).

Thanks.

Kind regards,

Nick

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Dear Nick, There are two ways

Dear Nick,

There are two ways to fix the scaling of the latent dependent variables. The common approach is to fix one factor loading to 1. A less common approach is to apply nonlinear constraint to ensure that the variance of the dependent variable (not the error variance of the dependent variable) is fixed at 1. The wls() and the tssem2() functions use the second approach to analyze correlation structure when diag.constraints=TRUE is specified.

Generally speaking, if the latent variables are independent variables, you may fix their variances at 1. If the latent variables are dependent variables or mediators, you may free their variances. All the factor loadings are free regardless of the types of the latent variables.

I prepared two examples similar to yours at https://dl.dropboxusercontent.com/u/25182759/SEM%20tssem.html The first example is a CFA model while the second one is a mediation model on the latent variables. Please note that the diagonls of the model implied matrices are always 1 in these examples.

Hope it helps.

Mike

nickz's picture
Offline
Joined: 10/02/2013 - 10:27
Thanks

Dear Mike,

Thank you for the additional clarification and example. It really helps.

Regards,

Nick