结构方程建模 (SEM) 是一种全面而灵活的方法,包括在假设模型中研究变量之间的关系。
无论它们是测量的还是潜在的,这意味着不可直接观察到,就像任何心理构造(例如,智力、满意度,希望,信任)。
因为它是一种多元分析方法,它结合了因子分析的输入以及基于或衍生自多元回归分析方法和规范分析的方法。
可下载资源
视频
什么是结构方程建模SEM和R语言心理学和营销研究数据路径图可视化
灵活,因为它不仅可以识别变量之间的直接和间接影响,还可以估计包括潜在变量均值在内的各种复杂模型的参数。
SEM是一种包含因素分析和路径分析的统计分析技术,适用于多变量间相互关系的研究,在心理学、管理学、社会学等社会科学领域中都有应用,SEM包含测量模型和结构模型两个基本模型。
测量模型
测量模型表示潜在变量与观测变量间的共变关系,可看作一个回归模型,由观测变量向潜在变量回归。用方程可以表示为:
其中, 表示 的观测向量; 为观测向量对应的 的因子矩阵; 为 的因子得分向量; 是与 独立的误差项。
结构模型
结构模型部分表示潜变量间的结构关系,也可看作一个回归模型,由内生潜在变量对若干内生和外生潜在变量的线性项作回归。用方程表示为:
其中, 和 分别是 和 的潜在变量; 和 表示未知的相关参数矩阵; 为误差项。
建模步骤
使用结构方程模型进行分析一般分为4个步骤:
-
模型设定:进行模型估计之前,先要根据理论分析或以往研究成果来设定初始理论模型,也就是初步拟定上述测量模型和结构模型。
-
模型识别:要决定所设定的模型是否能够对待估计参数求解,在一些情况下,由于模型设定的问题,造成了模型不可识别的问题,如样本量过少所造成的待求系数太多而方程数目太少,一般情况下,样本与变量数之比为5:1以上较为合适(结构方程模型对样本数量要求较高,当样本量较小时,可以选用贝叶斯结构方程模型。
-
模型估计:模型参数可以采用几种不同的方法来估计,通常的方法包括最大似然法和广义最小二乘法,贝叶斯估计目前也经常被用到结构方程模型的参数估计当中。
-
模型评价与修正:模型估计之后,须对模型的整体拟合效果和单一参数的估计值进行评价。如果模型拟合效果不佳,可以对模型进行修正来提高模型拟合效果。
SEM 方法的历史可以追溯到三个不同的传统:(1) 路径分析,最初由遗传学家 Sewall Wright (Wright 1921) 开发,后来在社会学中得到应用 (Duncan 1966),(2) 联立方程模型,如开发经济学博士(Koopmans 1945),以及(3)心理学因素分析(Anderson 和 Rubin 1956)。
应用
基本上,SEM 是一种统计方法,它采用确认(即假设检验)方法来分析与某些现象相关的结构理论。通常,该理论代表了对多个变量产生观察的“因果”过程。
术语“结构方程建模”传达了该过程的两个重要方面:(1)所研究的因果过程由一系列结构(即回归)方程表示,以及(2)这些结构关系可以以图形方式建模以便对所研究的理论进行更清晰的概念化。
然后可以在对整个变量系统的同时分析中对假设的模型进行统计测试,以确定它与数据的一致性程度。
在 R 中进行 SEM
在 R 环境中,有两种估计结构方程模型的方法。
第一种方法是将 R 与外部商业 SEM 程序连接起来。这在模拟研究中通常很有用,其中使用 SEM 软件拟合模型是模拟管道的一部分。
第二种方法是使用专用的 R 包进行结构方程建模。
为什么是R 包?
这个问题的答案有三个:
- R 包旨在吸引大量需要 SEM 软件来回答其实质性问题的应用研究人员。许多应用研究人员以前没有使用过 R 并且习惯于商业 SEM 程序。应用研究人员通常重视直观且具有丰富建模功能的软件,而 R 包试图实现这两个目标。
- R 包旨在吸引那些教授 SEM 课程或 SEM 研究的人;理想情况下,教师应该能够使用易于使用但完整的 SEM 程序,该程序在计算机教室中安装成本低廉。
- R 包旨在吸引在 SEM 领域工作的统计学家。为了实现新的方法论思想,访问开源 SEM 程序是有利的,该程序可以直接访问 SEM 代码。
使用 R
在本节中,我将介绍用于进行 SEM 分析的 R 代码 。
# 加载一些R包并导入数据。 rm(list = ls()) # 识别我们的SEM模型。 mEM <- "prcon =~ prcon2 + prcon3 + prcon4 + prcon5 involv =~ involv1 + involv2 + involv3 " # 进行SEM分析。 # 显示结果。 summary(Smodel)
# 你可以用fit.measures = TRUE来显示更详细的结果。 summary(fit.measures = TRUE)
随时关注您喜欢的主题
Paths(Smodel)
显示SEM路径
我们可以展示一些评估模型拟合的标准。
# fitMeas(SEmodel, fies = c("cfi", "rmsea"))
# 我们可以使用ca()函数来进行SEM分析。 ca(m_M, data = dfvl) %>% summary()
# 显示标准化的系数。 stnilion(EMoel, type = "std.all")
# 请注意,函数接受因子变量,结果是相同的。 df_ol %>% mutaeal(as.ueic) %>% sm(mEM, data = .) %>% smry()
参考
- 安德森 TW,鲁宾 H (1956)。因子分析中的统计推断。”在第三届伯克利数理统计和概率研讨会论文集上,第 111-150 页。加州大学出版社,伯克利。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!