R 语言基于 lavaan 包实现结构方程模型 (SEM) 从环境配置到建模绘图全流程实战

R 语言基于 lavaan 包实现结构方程模型 (SEM) 从环境配置到建模绘图全流程实战

文章目录

  1. 前言
  2. R+RStudio 开发环境部署步骤
  3. SEM 所需依赖包一键安装配置代码
  4. 验证性因子分析 CFA 实战代码
  5. 完整结构方程 SEM 建模实战(测量模型 + 结构模型)
  6. 模型结果解析与拟合指标判断标准
  7. semPlot 绘制标准化路径图代码
  8. 结果导出 CSV 代码
  9. 常见报错解决方案
  10. 参考资料 & 官方学习链接

正文内容

一、前言

结构方程模型 SEM 广泛应用于社科、心理学、经管、临床医学的问卷数据分析,可同时完成潜变量验证(CFA)与变量间路径效应检验。R 语言中lavaan是目前学术界使用最广泛的 SEM 工具包,语法简洁、适配 CFA、SEM、中介调节、多群组分析等场景。本文从零搭建运行环境,附带全套可直接复制运行代码,新手跟着操作即可一次跑通 SEM 模型。

二、开发环境安装配置

2.1 安装 R 主程序

官方下载地址:https://cran.r-project.org/

  • Windows:Download R for Windows→base 安装;
  • Mac:Download R for macOS 下载对应系统版本安装。
2.2 安装 RStudio 编辑器(推荐)

RStudio 是 R 可视化 IDE,方便代码编写、看图、查看结果:下载地址:https://posit.co/download/rstudio-desktop/

安装顺序:​先装 R,再装 RStudio​,默认路径下一步即可,无需额外环境变量配置。

三、依赖包一键配置代码

打开 RStudio,新建 R 脚本,复制下方代码运行,首次运行自动安装依赖,后续使用仅加载包即可。

运行

R 复制代码
# 清空工作环境
rm(list = ls())
# 批量安装SEM所需工具包(仅首次运行)
install.packages(c("lavaan","semPlot","tidyverse"))
# 载入包(每次分析前执行)
library(lavaan)    # SEM建模核心包
library(semPlot)   # SEM路径图绘制
library(tidyverse) # 数据预处理

出现DONE字段代表包安装成功。

四、案例数据源说明

采用 lavaan 内置经典数据集HolzingerSwineford1939,经典智力测验数据,无需导入本地 Excel,直接调用数据:

运行

R 复制代码
# 读取内置数据
data(HolzingerSwineford1939)
dat <- HolzingerSwineford1939
# 预览前5行数据
head(dat)

数据集包含 3 个潜变量:视觉能力 visual (x1-x3)、语言能力 textual (x4-x6)、反应速度 speed (x7-x9),结果变量数学能力 math。

五、实操 1:验证性因子分析 CFA(测量模型)

CFA 用于检验量表维度结构、因子载荷,只定义潜变量与观测指标,无潜变量间路径。

运行

R 复制代码
# CFA模型语法:=~ 代表潜变量由多个观测题项组成
cfa_model <- '
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
'
# 拟合CFA模型
fit_cfa <- cfa(cfa_model,data = dat,std.lv = TRUE)
# 输出结果:标准化系数+拟合指标+R方
summary(fit_cfa,standardized = TRUE,fit.measures = TRUE,rsquare = TRUE)

六、实操 2:全结构方程模型 SEM(测量 + 结构模型)

~代表回归路径,实现自变量潜变量预测因变量潜变量,完整 SEM 代码:

运行

R 复制代码
# 定义完整SEM模型
sem_model <- '
# 测量模型:潜变量-观测指标
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
math =~ x10 + x11 + x12
# 结构模型:自变量影响因变量
math ~ visual + textual + speed
'
# 模型拟合 std.lv=TRUE 潜变量标准化
fit_sem <- sem(sem_model,data = dat,std.lv = TRUE)
# 输出详细结果
summary(fit_sem,standardized = TRUE,fit.measures = TRUE,rsquare = TRUE)

七、模型拟合指标评判标准

表格

拟合指标 合格阈值 优秀阈值
CFI/TLI >0.90 >0.95
RMSEA <0.08 <0.05
SRMR <0.08 <0.05

八、semPlot 绘制标准化 SEM 路径图

运行

R 复制代码
# 绘制标准化路径图
semPaths(fit_sem,
         what = "std",         # 展示标准化路径系数
         layout = "tree",      # 树形布局
         edge.label.cex = 0.8, # 标签字体大小
         nodeLabels = c("视觉能力","语言能力","反应速度","数学成绩"),
         residuals = FALSE)    # 隐藏残差项

运行后 RStudio 绘图面板自动生成 SEM 路径图,可直接导出 PNG 用于论文。

九、参数结果导出本地 CSV

运行

R 复制代码
# 提取全部参数(载荷、路径系数、标准误)
result_df <- parameterEstimates(fit_sem,standardized = TRUE)
# 保存到当前工作目录
write.csv(result_df,"SEM分析结果.csv",row.names = F,fileEncoding = "UTF-8")

十、常见报错与解决方案

  1. 报错:package xxx is not available
    网络源异常,切换国内 CRAN 镜像后重装:

运行

R 复制代码
chooseCRANmirror(graphics=F,ind=1)
install.packages("lavaan")
  1. 报错:there is no package called 'semPlot'
    单独安装缺失包:install.packages("semPlot")
    1. semPaths 无法出图

      精简绘图代码:

运行

R 复制代码
semPaths(fit_sem,what="std",layout="tree",residuals=F)

十一、参考资料 & 官方链接

  1. lavaan 官方主页:https://lavaan.ugent.be/
  2. lavaan 官方英文教程:https://lavaan.ugent.be/tutorial.html
  3. CRAN-lavaan 官方手册:https://cran.r-project.org/web/packages/lavaan/lavaan.pdf
  4. semPlot 包文档:https://cran.r-project.org/web/packages/semPlot/index.html

十二、文末小结

  1. SEM 分析流程:环境安装→包配置→模型书写→模型拟合→拟合度检验→画图→结果导出;
  2. lavaan 核心语法:=~定义测量模型,~定义结构回归路径;
  3. 替换 dat 为自己的 Excel 问卷数据,即可实现自定义量表 SEM 分析。
相关推荐
zhangfeng11331 小时前
htc 中minconda 明明安装了 Python 3.10显示 python 3.8 因为 `conda activate` 没有真正切换成功
开发语言·python·conda
十五年专注C++开发1 小时前
C++17之类模板实参自动推导CTAD
开发语言·c++·聚合初始化·catd
iCxhust1 小时前
C# 程序,实现二进制文件十六进制查看器,支持按行定位
开发语言·单片机·嵌入式硬件·c#·微机原理·8086最小系统·8088单板机
咕噜企业签名分发-淼淼1 小时前
浅谈云服务器在后端托管与签名分发场景中的应用价值
开发语言·php
在繁华处1 小时前
Java从零到熟练(八):泛型与注解
java·开发语言·python
SilentSamsara1 小时前
命令行工具开发:Click/Typer + 打包为独立二进制
linux·服务器·开发语言·前端·python·青少年编程·fastapi
Ulyanov1 小时前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真
zyl837211 小时前
Python 函数、模块、异常处理 超详细入门教程
开发语言·windows·python
苏州IT威翰德1 小时前
苏州IT基础架构IQ/OQ/PQ确认服务 | 服务器网络验证
开发语言·php