SEM - 测试回归的不变性分析
SEM - Analysis of invariance to test regressions
假设我们有一个具有三个潜在变量 (视觉、文本和速度) 的验证性因素分析 CFA,并且我们想要添加一个回归,其中 speed 是结果,visual 和 textual 是解释变量(也就是说,将 CFA 展开为结构方程型号 SEM).
另外,假设我们有分组变量 school(2 个类别)。
我想知道文本和视觉的效果(回归路径)对于两组是否相同,或者是否最好为每组设置不同的系数。
我该如何实现?
我的主要想法是遵循不变性分析,计算弱模型、标量模型、严格模型,最后是回归系数也被限制为跨组相等的模型。然后,如果最后一个模型的 rmsea 和 CFI 没有发生重大变化,我可以说系数可以假设为相同;相反,如果 rmsea 和 CFI 表明模型的质量变差,最好对每个组使用不同的估计值。
另一种方法是确保 CFA 具有严格的不变性,然后添加回归。我可以将非分组 SEM 与分组 SEM 进行比较,并根据两个模型的质量做出决定。
library(lavaan)
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
speed ~ textual + visual'
fit <- sem(HS.model,
data = HolzingerSwineford1939,
group = "school")
summary(fit , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Weak <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings"))
summary(fit.Weak , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Scalar <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts")
summary(fit.Scalar , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Strict <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts")
fit.Regressors <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts", "residuals", "regressions")
summary(fit.Regressors , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
您在寻找方差分析吗?
> anova(fit, fit.Weak, fit.Strict, fit.Regressors)
Chi-Squared Difference Test
Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
fit 48 7484.4 7706.8 115.85
fit.Weak 54 7480.6 7680.8 124.04 8.192 6 0.22436
fit.Strict 60 7508.6 7686.6 164.10 40.059 6 4.435e-07 ***
fit.Regressors 71 7508.5 7645.7 186.00 21.898 11 0.02517 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
假设我们有一个具有三个潜在变量 (视觉、文本和速度) 的验证性因素分析 CFA,并且我们想要添加一个回归,其中 speed 是结果,visual 和 textual 是解释变量(也就是说,将 CFA 展开为结构方程型号 SEM).
另外,假设我们有分组变量 school(2 个类别)。 我想知道文本和视觉的效果(回归路径)对于两组是否相同,或者是否最好为每组设置不同的系数。
我该如何实现?
我的主要想法是遵循不变性分析,计算弱模型、标量模型、严格模型,最后是回归系数也被限制为跨组相等的模型。然后,如果最后一个模型的 rmsea 和 CFI 没有发生重大变化,我可以说系数可以假设为相同;相反,如果 rmsea 和 CFI 表明模型的质量变差,最好对每个组使用不同的估计值。
另一种方法是确保 CFA 具有严格的不变性,然后添加回归。我可以将非分组 SEM 与分组 SEM 进行比较,并根据两个模型的质量做出决定。
library(lavaan)
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
speed ~ textual + visual'
fit <- sem(HS.model,
data = HolzingerSwineford1939,
group = "school")
summary(fit , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Weak <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings"))
summary(fit.Weak , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Scalar <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts")
summary(fit.Scalar , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
fit.Strict <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts")
fit.Regressors <- sem(model = HS.model, data = HolzingerSwineford1939,
group = "school",
group.equal = c("loadings", "intercepts", "residuals", "regressions")
summary(fit.Regressors , standardized = TRUE, rsquare = TRUE, fit.measures = TRUE)
您在寻找方差分析吗?
> anova(fit, fit.Weak, fit.Strict, fit.Regressors)
Chi-Squared Difference Test
Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
fit 48 7484.4 7706.8 115.85
fit.Weak 54 7480.6 7680.8 124.04 8.192 6 0.22436
fit.Strict 60 7508.6 7686.6 164.10 40.059 6 4.435e-07 ***
fit.Regressors 71 7508.5 7645.7 186.00 21.898 11 0.02517 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1