结构方程模型入门
介绍
对于熟悉线性回归拟合结构方程模型的分析师来说,首先会感到奇怪。在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,快速重新定位并且很快用户会接触到差异,拟合结构方程模型可以成为分析师工具箱中的强大工具。
- 构造潜在变量
- 比较替代模型
- 对较大数据集的多组分析。
设置 环境
在R中开始使用结构方程建模(SEM)可能是令人生畏的。在R中实现SEM有许多不同的包,并且用户可能有兴趣实现SEM的不同特征。您可能会遇到的一些软件包可以在CRAN Psychometrics Task View中找到。
对于那些想要lavaan
深入了解该软件包的人来说,它似乎为大多数SEM用户提供了最全面的功能集,并且具有深思熟虑且易于学习的语法来描述SEM模型。要安装lavaan
,我们只需运行:
# Main version
install.packages("lavaan")
# Or to install the dev version
library(devtools)
install_github("lavaan", "yrosseel")
读入数据
加载lavaan包后,我们需要读入数据集。lavaan
接受两种不同类型的数据,标准R数据帧或方差 - 协方差矩阵。由于后者对我们来说不熟悉来自lm
R中的标准线性建模框架,我们将首先阅读最简单的方差 - 协方差矩阵并运行路径分析模型。
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
# Note that we only input the lower triangle of the matrix. This is
# sufficient though we could put the whole matrix in if we like
现在我们在我们的环境中命名了一个方差 - 协方差矩阵,mat1
并且该变量myN
对应于我们数据集中的观察数量。另外,我们可以提供R中的全部数据集,并可以得到mat1
和myN
本身。
有了这些数据,我们可以构建两种可能的模型
- 抑郁症(DEP)影响免疫系统(IMM)影响疾病(ILL)
- IMM影响ILL影响DEP
使用SEM我们可以评估哪个模型最能解释我们在上面的数据中观察到的协方差。拟合模型lavaan
是一个两步过程。首先,我们创建一个文本字符串作为lavaan
模型,并遵循lavaan
模型语法。接下来,我们给出lavaan
了如何使用适合要么这个模型与数据的说明 cfa
,lavaan
或sem
功能。在这里我们将使用该sem
功能。其他功能将在以后的文章中介绍。
# Specify the model
# Give lavaan the command to fit the model
mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
# Specify model 2
mod2fit <- sem(mod2, sample.cov = mat1, samp