# How to identify a SEM with formative dependent variable (with R's lavaan package)?

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

3. Adding one reflective indicator and one reflective construct
4. Fixing the variance of the disturbance term to zero

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.

• I think it's ind60 ~~ 0*ind60, but I haven't checked. – Jeremy Miles Aug 26 '15 at 16:53
• @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." – jhg Aug 27 '15 at 5:31