# Can a wrongly specified lavaan SEM lead to huge effects?

I am trying to replicate a study that created a structural equation model (SEM) to explain effects on the intention to reduce meat consumption. The interactions of the latent variables are as follows:

1. mident affects att, norm, pbcon, and redint.
2. att, norm, and pbcon also affect redint. att, norm, pbcon, and redint were measured with 3 items each, while mident was measured with 2 items. All items used 5-point Likert scales.

I implemented this in R via the lavaan function:

m_free <-    'mident =~ identity1_0 + identity2_0
att =~ attitude1_0 + attitude2_0 + attitude3_0
norm =~ injnorm1 + injnorm2 + injnorm3
pbcon =~ pbc1_0 + pbc2_0 + pbc3_0
redint =~ intention1_0 + intention2_0 + intention3_0

identity1_0~1
identity2_0~1

identity1_0~~identity1_0
identity2_0~~identity2_0

attitude1_0~1
attitude2_0~1
attitude3_0~1

attitude1_0~~attitude1_0
attitude2_0~~attitude2_0
attitude3_0~~attitude3_0

injnorm1~1
injnorm2~1
injnorm3~1

injnorm1~~injnorm1
injnorm2~~injnorm2
injnorm3~~injnorm3

pbc1_0~1
pbc2_0~1
pbc3_0~1

pbc1_0~~pbc1_0
pbc2_0~~pbc2_0
pbc3_0~~pbc3_0

intention1_0~1
intention2_0~1
intention3_0~1

intention1_0~~intention1_0
intention2_0~~intention2_0
intention3_0~~intention3_0

mident~0
mident~~1*mident

att~0
att~~1*att

norm~0
norm~~1*norm

pbcon~0
pbcon~~1*pbcon

redint~0
redint~~1*redint

# Regressions
att~a*mident
norm~d*mident
pbcon~f*mident
redint~b*att + c*mident + e*norm + g*pbcon

d_mident := c
ind_mident_att := a*b
ind_mident_norm := d*e
ind_mident_pbcon := f*g
total := (a*b) + c + (d*e) + (f*g)
'
fit_m_free <- lavaan(model = m_free,
data = Indikatoren,
estimator = "DWLS")
summary(fit_m_free, fit.measures=TRUE, standardized= TRUE, rsquare=TRUE)


The model fit seems acceptable (CFI = 0.957, TLI = 0.945, RMSEA = 0.075, SRMR = 0.062) But the effects are huge compared to the study I am replicating. Most concerning is that the effect for mident goes into the opposite direction of what is theoretically plausible. I found out that att and mident show a strong negative correlation (with moderate negative correlations for their items) so this might explain it, but this shouldn't affect all the other variables. Moreover, I have 2.439 observations so sample size should also not be a problem. Therefore, I thought that I might have wrongly specified something in my code although nothing seems out of place to me. So my question is: Is there a mistake in my code or should I further investigate my data for some possible cause?

• If this is a SEM, why not use sem()? There are defaults in sem() not present in lavaan() that are easy to miss but are required for fitting an SEM the usual way. Try this and see if the results change.
– Noah
Commented Nov 13, 2023 at 18:28
• What do your correlations look like? If the effects are huge, then you should have some pretty high correlations. Commented Nov 13, 2023 at 19:01
• @JeremyMiles The correlations between the latent variables based on predicted values from the path model have correlations between -0.26 and -0.89 on the negative side and between 0.23 and 0.65 on the positive side. Correlations for the items behind these latent variables are smaller. Commented Nov 15, 2023 at 12:11
• @Noah That really did make a difference. Thank you! Commented Nov 15, 2023 at 12:14
• I didn't mean latent variable correlations. The correlations in your raw data. But it sounds like your problem is solved anyway. Commented Nov 15, 2023 at 15:26