You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RStudio中用CSEM构建含中介调节的三变量结构模型?

在RStudio中使用csem构建含中介与调节的结构方程模型

1. 前置准备:安装并加载csem包

先确保安装csem包,若未安装执行以下代码:

install.packages("csem")
library(csem)

2. 完整模型拟合流程

你之前的代码仅定义了模型,但未执行模型拟合生成out对象,这是summarize(out)和assess(out)报错的核心原因。以下是包含中介、调节效应的完整实现步骤:

2.1 数据预处理

假设你的数据集名为dat,先处理缺失值(若有):

# 替换为你的实际数据路径
# dat <- read.csv("your_dataset.csv")
dat <- na.omit(dat)  # 移除含缺失值的观测

2.2 模型定义与拟合

补全调节效应的交互项,调用csem()函数拟合模型:

# 定义测量模型与结构模型
model <- '
# 反映型测量模型
jobSatisfaction =~ jobSatisfaction_1 + jobSatisfaction_2 + jobSatisfaction_3 + jobSatisfaction_4 + jobSatisfaction_5 + jobSatisfaction_6
orgSupport =~ orgSupport_1 + orgSupport_2 + orgSupport_3 + orgSupport_4 + orgSupport_5 + orgSupport_6 + orgSupport_7 + orgSupport_8
performance =~ performance_1 + performance_2 + performance_3 + performance_4

# 结构模型:中介效应(orgSupport→jobSatisfaction→performance)+ 调节效应(orgSupport调节jobSatisfaction对performance的影响)
jobSatisfaction ~ orgSupport
performance ~ orgSupport + jobSatisfaction + orgSupport:jobSatisfaction  # 冒号表示潜变量交互项
'

# 拟合模型(关键步骤,生成out对象)
out <- csem(
  .data = dat,
  .model = model,
  .approach_weights = "PLS-PM",  # CSEM常用PLS-PM方法,支持复杂模型
  .resample_method = "bootstrap",  # bootstrap抽样计算显著性
  .resample_iter = 1000  # 抽样次数,可根据需求调整
)

3. 模型结果输出与评估

3.1 查看模型摘要

注意csem包中使用summary()而非summarize(),执行以下代码获取测量模型信效度、结构路径系数等结果:

summary(out)

3.2 模型拟合度评估

使用assess()函数评估模型的拟合指数、信度与效度:

# 可选评估内容:fit_indices(拟合指数)、reliability(信度)、validity(效度)
assess(out, .what = c("fit_indices", "reliability", "validity"))

常见问题排查

  • "object 'out' not found"报错:未执行csem()拟合步骤,先确保生成out对象。
  • 交互项报错:若直接使用orgSupport:jobSatisfaction报错,可手动中心化潜变量并生成交互项:
    # 提取潜变量得分
    lv_scores <- get_scores(out)
    # 中心化潜变量(避免多重共线性)
    lv_scores$c_orgSupport <- scale(lv_scores$orgSupport, center = TRUE, scale = FALSE)
    lv_scores$c_jobSatisfaction <- scale(lv_scores$jobSatisfaction, center = TRUE, scale = FALSE)
    # 生成交互项
    lv_scores$int_org_job <- lv_scores$c_orgSupport * lv_scores$c_jobSatisfaction
    # 合并回原数据集
    dat <- cbind(dat, lv_scores[, c("c_orgSupport", "c_jobSatisfaction", "int_org_job")])
    # 重新定义结构模型部分:performance ~ orgSupport + jobSatisfaction + int_org_job
    
  • 缺失值问题:必须先处理缺失值,否则模型无法正常拟合。

内容的提问来源于stack exchange,提问作者yaret de la nuez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:02:09