原文链接:/?p=3071
对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法(点击文末“阅读原文”获取完整代码数据)。
结构方程模型入门
介绍
然而,拟合结构方程模型可以成为分析师工具箱中的强大工具。
相关视频
设置 环境
在R中实现SEM有许多不同的包,lavaan
软件包为大多数SEM用户提供了全面的功能集,并且具有易于学习的语法来描述SEM模型。要安装lavaan
,我们只需运行:
# 安装install.packages("lavaan")
读入数据
我们需要读入数据集。我们读取方差 - 协方差矩阵并运行路径分析模型。
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)# 定义模型2mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
现在,我们在环境中为每个模型存储了两个对象。我们有模型字符串和modelfit对象。summary
提供输出:
## ## Number of observations 500## ## Estimator ML## Minimum Function Test Statistic2.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 ~##IMM0.600 0.036 16.771 0.000## IMM ~##DEP0.630 0.035 18.140 0.000## ## Variances:##ILL0.639 0.040##IMM0.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 ~##ILL0.330 0.042 7.817 0.000## ILL ~##IMM0.600 0.036 16.771 0.000## ## Variances:##DEP0.889 0.056##ILL0.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的一些属性。
点击标题查阅往期内容
结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例
左右滑动查看更多
01
02
03
04
# 拟合优度评价指标## fmin chisqdf pvalue ## 0.198 198.180 1.000 0.000 ## baseline.chisq baseline.df baseline.pvaluecfi ## 478.973 3.000 0.000 0.586 ##tli nnfirfinfi ## -0.243 -0.243 1.000 0.586 ## pnfiifirni logl ## 0.195 0.587 0.586 -1986.510 ## unrestricted.logl nparaicbic ## -1887.420 4.0003981.0203997.878 ## ntotal bic2 rmsea rmsea.ci.lower ## 500.0003985.182 0.628 0.556 ## rmsea.ci.upperrmsea.pvaluermr 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 pgfimfi ## 0.821 -0.075 0.137 0.821 ## ecvi ## 0.412
# 模型参数预测## lhs op rhs est sez pvalue ci.lower ci.upper## 1 DEP ~ ILL 0.330 0.042 7.8170 0.247 0.413## 2 ILL ~ IMM 0.600 0.036 16.7710 0.530 0.670## 3 DEP ~~ DEP 0.889 0.056 15.8110 0.779 1.000## 4 ILL ~~ ILL 0.639 0.040 15.8110 0.560 0.718## 5 IMM ~~ IMM 0.998 0.000NANA 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 NANANA 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
非常感谢您阅读本文,有任何问题请在下面留言!
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《R语言:结构方程模型sem、潜变量分析》。
点击标题查阅往期内容
结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例
结构方程模型 SEM 多元回归和模型诊断分析学生测试成绩数据与可视化
在R语言中实现sem进行结构方程建模和路径图可视化
R语言结构方程SEM中的power analysis 效能检验分析
stata如何处理结构方程模型(SEM)中具有缺失值的协变量
R语言基于协方差的结构方程拟合的卡方检验
R语言基于协方差的SEM结构方程模型中的拟合指数
R语言:结构方程模型、潜变量分析
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言进行支持向量机回归SVR和网格搜索超参数优化
R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例
R语言使用虚拟变量(Dummy Variables) 回归分析工资影响因素