Comparing regression coefficients across groups

594 views
Skip to first unread message

Paul H

unread,
Jul 13, 2016, 8:09:58 AM7/13/16
to lavaan
Hello,

I just wanted to double-check if I have figured out the right approach to compare regression coefficients (i.e., causal paths) across groups. I want to test whether the regression coefficients between LV2 and LV3 differ across my two groups. Hence, I have constrained all coefficients except this one.

model1 <- '
  # measurement model
LV1 =~ JD1 + JD2 + JP1 + JP2 + JP3 + JI1 + JI2
LV2 =~ E1 + E2 + E3
LV3 =~ SRS1 + SRS2
LV4 =~ LC1 + LC2 + LA1 + LA2 + LA3
# regression
LV4 ~ c(1, 1)*LV3
LV3 ~ c(1, 1)*LV1 + c(NA, NA)*LV2
'
model.us <- sem(model1, data=mesp, group="COO", group.equal=c("loadings", "intercepts", "residuals"), group.partial=c("JD2", "JP2"), estimator = "MLM", se = "robust", test = "Satorra-Bentler") # Unconstrained structural model
model.r <- sem(model1, data=mesp, group="COO", group.equal=c("loadings", "intercepts", "residuals", "regressions"), group.partial=c("JD2", "JP2"), estimator = "MLM", se = "robust", test = "Satorra-Bentler")
anova(model.us, model.r)


Thanks,

Paul

Terrence Jorgensen

unread,
Jul 13, 2016, 10:42:36 AM7/13/16
to lavaan
I just wanted to double-check if I have figured out the right approach to compare regression coefficients (i.e., causal paths) across groups. I want to test whether the regression coefficients between LV2 and LV3 differ across my two groups. Hence, I have constrained all coefficients except this one.


Did you mean to constrain the other regressions to 1 across both groups?  Regarding the LV2-LV3 coefficient, you are freely estimating the regression path in both groups.  Write a different model syntax that gives the same label in both groups

LV3 ~ c(beta32, beta32)*LV2

Fit both models and compare their fit using latTestLRT().  If significant, then the data are unlikely if that constraint is really true, so you would reject the null hypothesis.

Terrence D. Jorgensen
Postdoctoral Researcher, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Paul H

unread,
Jul 13, 2016, 11:16:10 AM7/13/16
to lavaan
Thank you for your reply Terrence.
Did you mean to constrain the other regressions to 1 across both groups?
Does it matter to which value I constrain them? I simply want to compare the regressions on LV3 ~ LV2 across my two groups, so I thought the others should be constrained so that any difference can be attributed to LV3 ~ LV2, correct?



Fit both models and compare their fit using latTestLRT().
 lavTestLRT() returns the same output as anova().
.

Terrence Jorgensen

unread,
Jul 14, 2016, 8:54:42 AM7/14/16
to lavaan
Does it matter to which value I constrain them? I simply want to compare the regressions on LV3 ~ LV2 across my two groups, so I thought the others should be constrained so that any difference can be attributed to LV3 ~ LV2, correct?

Don't constrain the other regressions at all.  They don't need to be constrained to compare LV3 ~ LV2 across groups, and doing so will only bias the chi-squared statistic if you are constraining them to implausible values.
Reply all
Reply to author
Forward
0 new messages