对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。
然而,拟合结构方程模型可以成为分析师工具箱中的强大工具。
可下载资源
设置 环境
在R中实现SEM有许多不同的包,lavaan
软件包为大多数SEM用户提供了全面的功能集,并且具有易于学习的语法来描述SEM模型。
1、回归分析有几方面的限制:
(1)不允许有多个因变量或输出变量
(2)中间变量不能包含在与预测因子一样的单一模型中
(3)预测因子假设为没有测量误差
(4)预测因子间的多重共线性会妨碍结果解释
(5)结构方程模型不受这些方面的限制
2、SEM的优点:
(1)SEM程序同时提供总体模型检验和独立参数估计检验;
(2)回归系数,均值和方差同时被比较,即使多个组间交叉;
(3)验证性因子分析模型能净化误差,使得潜变量间的关联估计较少地被测量误差污染;
(4)拟合非标准模型的能力,包括灵活处理追踪数据,带自相关误差结构的数据库(时间序列分析),和带非正态分布变量和缺失数据的数据库。
3、结构方程模型最为显著的两个特点是:
(1)评价多维的和相互关联的关系;
(2)能够发现这些关系中没有察觉到的概念关系,而且能够在评价的过程中解释测量误差。
同时具有联系信息技术吸纳能力:
SEM能够反映模型中要素之间的相互影响;
吸纳能力概念作为一个重要的模型要素,难以直接度量,结构方程模型技术能够更为充分地体现其蕴含的要素信息和影响作用。
读入数据
我们需要读入数据集。我们读取方差 – 协方差矩阵并运行路径分析模型。
mat1 <- matrix(c(1, 0, 0, 0.6, 1, 0, 0.33, 0.63, 1), 3, 3, byrow = TRUE)
print(mat1)
## ILL IMM DEP
## ILL 1.00 0.00 0
## IMM 0.60 1.00 0
## DEP 0.33 0.63 1
现在我们在我们的环境中命名了一个方差 – 协方差矩阵。
有了这些数据,我们可以构建两种可能的模型
- 抑郁症(DEP)影响免疫系统(IMM)影响疾病(ILL)
- IMM影响ILL影响DEP
使用SEM我们可以评估哪个模型最能解释我们在上面的数据中观察到的协方差。拟合模型lavaan
是一个两步过程。首先,我们创建一个文本字符串定义lavaan
模型 。接下来,我们给出lavaan
如何拟合这个模型。
# 定义模型
# 拟合模型
mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
# 定义模型2
mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
现在,我们在环境中为每个模型存储了两个对象。我们有模型字符串和modelfit对象。summary
提供输出:
##
## Number of observations 500
##
## Estimator ML
## Minimum Function Test Statistic 2.994
## Degrees of freedom 1
## P-value (Chi-square) 0.084
##
## Parameter estimates:
##
## Information Expected
## Standard Errors Standard
##
## Estimate Std.err Z-value P(>|z|)
## Regressions:
## ILL ~
## IMM 0.600 0.036 16.771 0.000
## IMM ~
## DEP 0.630 0.035 18.140 0.000
##
## Variances:
## ILL 0.639 0.040
## IMM 0.602 0.038
##
## Number of observations 500
##
## Estimator ML
## Minimum Function Test Statistic 198.180
## Degrees of freedom 1
## P-value (Chi-square) 0.000
##
## Parameter estimates:
##
## Information Expected
## Standard Errors Standard
##
## Estimate Std.err Z-value P(>|z|)
## Regressions:
## DEP ~
## ILL 0.330 0.042 7.817 0.000
## ILL ~
## IMM 0.600 0.036 16.771 0.000
##
## Variances:
## DEP 0.889 0.056
## ILL 0.639 0.040
理解SEM模型的最佳方法之一是使用路径图直观地检查模型。
接下来,我们加载库并制作一些路径图。
这两个简单的路径模型哪个更好?我们可以运行卡方检验。
## Chi Square Difference Test
##
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## mod1fit 1 3786 3803 2.99
## mod2fit 1 3981 3998 198.18 195 0 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
可以看到模型2更好。让我们看一下模型2的一些属性。
# 拟合优度评价指标
## fmin chisq df pvalue
## 0.198 198.180 1.000 0.000
## baseline.chisq baseline.df baseline.pvalue cfi
## 478.973 3.000 0.000 0.586
## tli nnfi rfi nfi
## -0.243 -0.243 1.000 0.586
## pnfi ifi rni logl
## 0.195 0.587 0.586 -1986.510
## unrestricted.logl npar aic bic
## -1887.420 4.000 3981.020 3997.878
## ntotal bic2 rmsea rmsea.ci.lower
## 500.000 3985.182 0.628 0.556
## rmsea.ci.upper rmsea.pvalue rmr rmr_nomean
## 0.703 0.000 0.176 0.176
## srmr srmr_nomean cn_05 cn_01
## 0.176 0.176 10.692 17.740
## gfi agfi pgfi mfi
## 0.821 -0.075 0.137 0.821
## ecvi
## 0.412
随时关注您喜欢的主题
# 模型参数预测
## lhs op rhs est se z pvalue ci.lower ci.upper
## 1 DEP ~ ILL 0.330 0.042 7.817 0 0.247 0.413
## 2 ILL ~ IMM 0.600 0.036 16.771 0 0.530 0.670
## 3 DEP ~~ DEP 0.889 0.056 15.811 0 0.779 1.000
## 4 ILL ~~ ILL 0.639 0.040 15.811 0 0.560 0.718
## 5 IMM ~~ IMM 0.998 0.000 NA NA 0.998 0.998
# 修改指标
## lhs op rhs mi epc sepc.lv sepc.all sepc.nox
## 1 DEP ~~ DEP 0.0 0.000 0.000 0.000 0.000
## 2 DEP ~~ ILL 163.6 -0.719 -0.719 -0.720 -0.720
## 3 DEP ~~ IMM 163.6 0.674 0.674 0.675 0.674
## 4 ILL ~~ ILL 0.0 0.000 0.000 0.000 0.000
## 5 ILL ~~ IMM NA NA NA NA NA
## 6 IMM ~~ IMM 0.0 0.000 0.000 0.000 0.000
## 7 DEP ~ ILL 0.0 0.000 0.000 0.000 0.000
## 8 DEP ~ IMM 163.6 0.675 0.675 0.675 0.676
## 9 ILL ~ DEP 163.6 -0.808 -0.808 -0.808 -0.808
## 10 ILL ~ IMM 0.0 0.000 0.000 0.000 0.000
## 11 IMM ~ DEP 143.8 0.666 0.666 0.666 0.666
## 12 IMM ~ ILL 0.0 0.000 0.000 0.000 0.000
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!