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
- Adding two reflective indicators
- Adding two reflective constructs
- Adding one reflective indicator and one reflective construct
- 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.