covariances of the composites

72 views
Skip to first unread message

Shajar

unread,
Aug 20, 2019, 10:29:56 AM8/20/19
to lavaan

I have a model with 3 composite variables.

If I run the model without defining any variances and covariances on the composite, the model fits without errors but I get Std.lv  & Std.all of the covariance between the composites = Inf. What does this mean?

In addition, the correlation of the composite (lavInspect(fit, "cor.lv")) has values smaller than -1.  Which I think indicates illogical result. Right?

When I define the variances and covariances of the composites to certain values, I can get model fit, but I receive warning “lavaan WARNING: starting values imply a correlation larger than 1”. But the |correlation| is less than 1. Would it be right to ignore the warning?

 Thanks!

balal izanloo

unread,
Aug 20, 2019, 10:33:21 AM8/20/19
to lav...@googlegroups.com
It is better to compose your model to be verified carefully by group members. 

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lavaan/feea6b07-5d41-4c9a-b509-0a8b1e64a308%40googlegroups.com.

Shajar

unread,
Aug 20, 2019, 11:30:28 AM8/20/19
to lavaan
What do you mean by " group members"? verify each composite separately? 
Anyway, what does infinite std covariance mean?
Thanks, Shajar

balal izanloo

unread,
Aug 20, 2019, 12:13:31 PM8/20/19
to lav...@googlegroups.com
Please insert your syntax in the lavaan group so members can see it and help you. HTH

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.

Shajar

unread,
Aug 20, 2019, 12:53:18 PM8/20/19
to lavaan
You are right. Here is my code:

mod.1l <- '

# Composites

pH <~ 1*pH_Outlet +  pH_td_in + Sh_pH_Outlet

EndoP <~ 1*pH + Temp + SunRad8d

ExoP  <~ 1*PP_td_in +  Crane_Count


#Regrression

TDP2TP ~  EndoP + ExoP +  Sh_TDP2TP + Chl  + Rain8d

Chl ~  Sh_Chl + TDP2TP  +  NO3toTN  + EndoP

NH4toTN ~ Crane_Count + NH4_td_in +  NO3toTN + Temp + Chl

NO3toTN ~  Rain8d + pH +  SO4_Outlet + Chl

 

#Covariances

NH4toTN ~~  NO3toTN


# Define variances and covariances for composites (currently disabled)

#EndoP ~~ -0.6*ExoP

#pH ~~ -0.3*ExoP

#pH ~~ 0.5*EndoP

#EndoP ~~ 0.7*EndoP

#ExoP ~~ 0.04*ExoP

#pH ~~ 0.01*pH

'

balal izanloo

unread,
Aug 20, 2019, 1:32:26 PM8/20/19
to lav...@googlegroups.com
I think your composite  definition is wrong based on lavaan commands. Don't use <~ in your command. instead use =~ for composite definision. For example:

pH=~ 1*pH_Outlet +  pH_td_in + Sh_pH_Outlet
 Also PH can not be independent and also dependent variable. look carefully to your model and your difinision from it. 

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.

Edward Rigdon

unread,
Aug 20, 2019, 1:35:05 PM8/20/19
to lav...@googlegroups.com
Do not use the "formative" operator <~. It misbehaves. Remember that lavaan is a tool for specifying common factor models, not models using composites. If you can specify your model as a model of factors, you can trust lavaan to function well.

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.

Shajar

unread,
Aug 21, 2019, 1:52:11 AM8/21/19
to lavaan
No. composite is not the same as latent variable. The right operator is <~.
To unsubscribe from this group and stop receiving emails from it, send an email to lav...@googlegroups.com.

Shajar

unread,
Aug 21, 2019, 2:30:37 AM8/21/19
to lavaan
I know formative measures are not common in social sciences, but in ecology it is more common. see James B. Grace, 2006, and also Bill Shipley, 2014 for example.
In my case the construct EndoP, for example, is not reflected by Temperature and pH but rather caused by them. So this situation is not right for latent variable. I can have direct links between the  exogenous measures and the endogenous measure but composite make more sense and actually behaves better for my data.

My original question was  - what does infinite std covariance mean?

Thanks, shajar
To unsubscribe from this group and stop receiving emails from it, send an email to lav...@googlegroups.com.

balal izanloo

unread,
Aug 21, 2019, 5:32:43 AM8/21/19
to lav...@googlegroups.com
As Edward said, Lavaan in not appropriate for formative model use another package or software for your analysis. HTH

To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lavaan/77f352f2-1802-4b16-94aa-3361b41c1254%40googlegroups.com.

Rönkkö, Mikko

unread,
Aug 21, 2019, 5:57:18 AM8/21/19
to lav...@googlegroups.com
Hi,


On 21 Aug 2019, at 12:32 , balal izanloo <b.ez...@gmail.com> wrote:

As Edward said, Lavaan in not appropriate for formative model use another package or software for your analysis. HTH

Why would lavaan not be appropriate for formative models? You can easily specify an estimate a formative model as explained in the documentation.


On Wed, Aug 21, 2019, 11:00 Shajar <shaj...@gmail.com> wrote:
I know formative measures are not common in social sciences, but in ecology it is more common. see James B. Grace, 2006, and also Bill Shipley, 2014 for example.
In my case the construct EndoP, for example, is not reflected by Temperature and pH but rather caused by them. So this situation is not right for latent variable. I can have direct links between the  exogenous measures and the endogenous measure but composite make more sense and actually behaves better for my data.

My original question was  - what does infinite std covariance mean?

Infinite covariance can occur if a variance that is used in the standardization process is estimated as zero. 

Inspect the unstandardized solution and check for any zero or negative variance estimates. After that, you need to make a call if it indicates model misspecification or not. 

Mikko


Nickname

unread,
Aug 21, 2019, 8:04:06 AM8/21/19
to lavaan
Shajar,
  If you are concerned that the composite syntax is not doing what you expect, you can create a composite without using the composite connective and compare the results.

#pH <~ 1*pH_Outlet +  pH_td_in + Sh_pH_Outlet
pH
=~ 0
pH
~ 1*pH_Outlet +  pH_td_in + Sh_pH_OutletEnter

You set the covariance of the EndoP and ExoP variables at -0.6, which suggests that the product of the standard deviations is less than 0.6.  Could this be an issue with either the scaling of your observed variables or the start values (or a mismatch between the two)?

There is a good chance that your result confounds syntax issues with model fit issues.  To solve one set of problems at a time, I would recommend that you set aside your empirical data and use the simulateData() function to simulate data from your model.  Once you get the intended model working with data simulated by the model, then try fitting the model to your empirical data.

It may also help to try to isolate just enough of the model to create the problem and then add the rest of the model back in after the problem is solved.

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/

Shajar

unread,
Aug 21, 2019, 2:19:23 PM8/21/19
to lavaan
Why not?
See here and here.

Shajar

unread,
Aug 21, 2019, 3:11:06 PM8/21/19
to lavaan
Thanks Mikko, 
it is a bit more clear now. As I understand,  the composite is set to have zero variance by default (unless I define it otherwise). This means that by default,  covariance between 2 composites will be Infinite. I guess I need to make an assumption about the composite variance, define it and then continue.

Shajar

unread,
Aug 21, 2019, 3:38:30 PM8/21/19
to lavaan
Thank you Keith for the detailed answer.
 - I will check you suggestion regarding the syntax - interesting solution!
- Your remark regarding the |covariance| should be smaller than the product of the standard deviations made it clear how to define correctly the variances and covariances - the default in lavaan is to set the composite variance to zero and if this in not the actual case then I need to define it. This actually solved the warnings.
- I am not familiar with the simulateData() option. I will give it a try.
- I tried isolating the problem, but the down side of composite that it takes a lot of df. If I oversimplify then I get under-defined model....

Thanks! Shajar.

On Wednesday, 21 August 2019 15:04:06 UTC+3, Nickname wrote:
Shajar,
  If you are concerned that the composite syntax is not doing what you expect, you can create a composite without using the composite connective and compare the results.

#pH <~ 1*pH_Outlet +  pH_td_in + Sh_pH_Outlet
pH
=~ 0
pH
~ 1*pH_Outlet +  pH_td_in + Sh_pH_Outlet

car...@web.de

unread,
Aug 21, 2019, 3:54:06 PM8/21/19
to lav...@googlegroups.com
I'm sorry if I get into this with a question. If I look at the slides you find when one follows one of the links you provided, specifically slide 8 (https://prd-wret.s3-us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/atoms/files/SEM_10_4_Composites-Comparing_Specifications.pdf), then I would interpret this as a MIMIC model with a single measurement indicator. Is this really a composite?

Shajar

unread,
Aug 22, 2019, 1:08:01 AM8/22/19
to lavaan
As I understand, a composite is a kind of latent variable. So you can define it as latent variable with (usually) endogenous indicators and exogenous causes.
The slide you pointed out makes it clearer to me now - also from the syntax point of view.

Nickname

unread,
Aug 22, 2019, 8:56:30 AM8/22/19
to lavaan
Terminology is not standardized in the literature.  However, the terminology suggested by Ken Bollen, as I understand it, is that a composite has no residual variance, only the variance passed on from variables that affect it.  In Bollen's sense, this is a latent variable because he defines a latent variable as any variable in a model that is not in the data.  However, Peter Bentler has argued that we should restrict the term latent variable to variables that are not determinate functions of the variables in the data, which is a definition designed to exclude things like composites and principle components from being considered latent variables.

If we add a residual term, then we transform a composite into a latent variable in a formative measurement model.  Denny Boorsboom and I have argued that the term formative should be understood as broader than the term causal because a formative model does not require the causal interpretation that would render it a causal indicator model.  However, many people use the terms interchangeably.

In my view, there is no purely statistical distinction to be made between a formative measurement model and a MIMIC model.  In both cases you have a latent variable with some causes and some effects.  In one case we prefer to draw the diagram at a 90 degree rotation from the other, but the models are the same.  So, the only difference is a difference of substantive interpretation and the theory that motivates the model.

Markus, K. A. (2018).  Three conceptual impediments to developing scale theory for formative scales.  Methodology, 14, 156-164.  doi: 10.1027/1614-2241/a000154

Shajar

unread,
Aug 22, 2019, 2:03:08 PM8/22/19
to lavaan
Thanks Keith! You helped me understand the broader aspect of formative measurement models as well as the specific more technical issue I encountered. 
Shajar
Reply all
Reply to author
Forward
0 new messages