如何在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
相关产品推荐
相关产品推荐

