2
$\begingroup$

I have a formative construct in a structural equation model (SEM) which I would like to estimate with the function sem in the lavaan package in R. Currently, the model is underidentified. I know about four different approaches for identifying the model

  1. Adding two reflective indicators
  2. Adding two reflective constructs
  3. Adding one reflective indicator and one reflective construct
  4. Fixing the variance of the disturbance term to zero

These modelling approaches are described in section 5.3.3 of http://www.researchgate.net/profile/Adamantios_Diamantopoulos/publication/222652088_Advancing_formative_measurement_models/links/09e4151406c288b6b3000000.pdf

In my case, I do not have additional reflective indicators or constructs. Thus, I would like to fix the variance of the disturbance term to zero (approach 4). I know about the downsides of this approach as described on page 13 of the paper linked above. Nevertheless, if I want to do it, how do I specify this in the lavaan syntax?

Here is a code example. It returns a note that the model is underidentified. How do I get this working?

library(lavaan)
model <- ' 
    # latent variable definitions
    ind60 =~ x1 + x2 + x3
    dem60 <~ 1*y1 + y2
    # regression
    dem60 ~ ind60
    # variance
    ind60 ~~ 1*ind60
    '
summary(fit <- sem(model, data=PoliticalDemocracy))

From How to use formative indicators in covariance-based SEM with lavaan? I know that it would work if I would invert the direction of causality (ind60 ~ sem60 instead of sem60 ~ ind60) or specify sem60 as reflective construct but neither of these appraoches would fit the theoretical basis.

$\endgroup$
  • $\begingroup$ I think it's ind60 ~~ 0*ind60, but I haven't checked. $\endgroup$ – Jeremy Miles Aug 26 '15 at 16:53
  • $\begingroup$ @JeremyMiles : ind60 ~~ 0* ind60 does not work. I checked it. To my understanding this fixes the variance of the reflectively specified construct ind60. I was not sure whether that was your intention. Thus, I checked dem60 ~~ 0* dem60. It does not work either: "could not compute standard errors! [...] this may be a symptom that the model is not identified." $\endgroup$ – jhg Aug 27 '15 at 5:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.