Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Compare correlations between latent factors and observed variables

210 views
Skip to first unread message

Burt Hatch

unread,
Feb 17, 2020, 5:39:01 PM2/17/20
to lavaan
Hi lavaan/semTools community,

I have a bifactor model with imputed data specified with 4 specific factors and a general factor for 3-level ordinal indicators. I have n=448 and data is missing for < 2% for any given indicator but for 14% with listwise deletion.
Like a lot of bifactor models it fits pretty well going by the conventional criteria. Looking at Omega H/Omega Total for factors, the general factor accounts for about 75% of reliable variance but one group factor accounts for a fair bit of the variance even after accounting for the general factor.

I want to examine correlations between latent factors and 7 observed variables (that are continuous but right skewed). I have questions about how do I go about doing this with lavaan syntax? 

1. For specifying single indicator latent variable do I fix the indicator residual variance to zero like this?

Latent_Var = ~ Single_Var
Single_Var ~~ 0*Single_Var  


2. If I specify correlations between the Latent_Var and all factors for the bifactor model, do i interpret returned estimates as bivariate correlations or are they partial correlations/something else? - I am estimating the model with std.lv = T. I find that if I specify all but one Latent_Var ~~ bifactor model factor correlation to 0 I can end up with the Latent_Var ~~ bifactor model factor estimate > 1. 

3. Related to 2nd Question, if I include all observed variables in the model as single indicator latent variables, are the returned correlations between these single indicator latent variables bivariate or partial?

I guess these questions might be semnet related too but because I am using lavaan I thought I would try asking here first.


Thanks for your help,

Burt

Terrence Jorgensen

unread,
Feb 20, 2020, 8:34:53 AM2/20/20
to lavaan
1. For specifying single indicator latent variable do I fix the indicator residual variance to zero like this?

Latent_Var = ~ Single_Var
Single_Var ~~ 0*Single_Var  

Yes, but lavaan will do that automatically for single-indicator constructs when you use the cfa() or sem() wrappers (or the .mi versions for imputed data) 
 
2. If I specify correlations between the Latent_Var and all factors for the bifactor model, do i interpret returned estimates as bivariate correlations or are they partial correlations/something else? 

All correlations are bivariate; yours sound like zero-order correlations.  They are only partial correlation if the variables are being predicted by (the same) variable(s); i.e., if something is being partialed out.
 
3. Related to 2nd Question, if I include all observed variables in the model as single indicator latent variables, are the returned correlations between these single indicator latent variables bivariate or partial?

Same response.

Terrence D. Jorgensen
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Nickname

unread,
Feb 21, 2020, 9:08:02 AM2/21/20
to lavaan
Burt,
  I have to wonder if there is not a deeper quandary behind your question.  The fundamental equation in SEM is Sigma^ = Sigma(theta) meaning that the implied moments are those implied by the model given parameter values as arguments.  The idea is that the parameters on the right-hand side explain the moments, such as correlations, on the left-hand side.

  It seems as if you are trying to put a correlation or covariance on the right-hand side as a parameter.  This can be done for convenience in simple cases, but it is generally not explanatory to place correlations or covariances on the right-hand side (in the model).  These are often interpreted as shorthand conveniences for implicit latent variables with affects on both the variables involved in the residual covariance.

  If you are just interested in the correlations, you can obtain these using lavInspect() and choosing what='cor.all'.  This will give you model-implied correlations between all variables, latent and observed.

  If you are looking for a substantive interpretation of parameters, it may help to think of the residual/disturbance/uniqueness for a variable in the model as a separate latent variable with its own substantive interpretation.  One way to think of it is as a linear bundle of the omitted determinants of the value for that variable.  You can then interpret the correlation or covariance between the residual and any other variable as an association with that bundle (rather than as a correlation with the variable as whose residual that bundle serves).

  In terms of lavaan syntax, in a sense x ~~ y means something different depending upon whether either x or y is an endogenous variable.  You can obtain a unified interpretation but not by trying to assimilate the endogenous case to the case where both are exogenous.  Instead, think of the exogenous case as a special case in which the residual variable happens to be coextensive with the exogenous variable to which it is attached (because there are no other causal variables).  Understood that way, x ~~ y always refers to a correlation between latent variables representing the residuals of x and of y.

  I could be missing something but I hope that helps.

Keith
------------------------
Keith A. Markus
John Jay College of Criminal Justice, CUNY
http://jjcweb.jjay.cuny.edu/kmarkus
Frontiers of Test Validity Theory: Measurement, Causation and Meaning.
http://www.routledge.com/books/details/9781841692203/

Reply all
Reply to author
Forward
0 new messages