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

如何比较同一中介模型中两个竞争中介的效应系数及显著性?

竞争中介变量的效应显著性判断与比较问题

我有两个竞争中介变量M1和M2,均可能介导自变量RD(X)与因变量Perf(Y)之间的关系。我使用R语言的lavaan包结合Bootstrap自助法,针对同一数据集分别开展了两项中介分析:一项以M1为中介变量,另一项以M2为中介变量。结果显示,M2的间接效应(即a1*b1)标准化系数估计值为0.199,高于M1的0.170。

我想明确两个核心问题:

  • 如何判断这两个中介效应是否具备统计显著性?
  • 若二者均显著,能否直接得出M2对X与Y关系的中介效应强于M1的结论?

注:我的模型为有调节的中介模型,但当前仅关注中介效应的比较,暂不涉及有调节的中介效应。此前查找资料仅找到自变量系数比较的方法,未找到中介变量效应比较的相关内容。

附上我的分析代码:

# 中介变量M1的模型
ModMediation1 <- ' M1 ~ a1*RD + a2*PD + a3*RDXPD + a4*FA +
              a5*FS + a6*FG + a7*T
              
              Perf ~ b1*M1 + b2*FA + b3*FS + b4*FG + b5*T +
              c2*PD + c3*RDXPD
              
              # 间接效应定义
              IndEff := a1*b1
              
              # 有调节的中介指数
              IndModMed := a3*b1
              
            '

ModMediation1_fit <- lavaan::sem(ModMediation1, data = p2_df, se = "bootstrap", bootstrap = 10000)

summary(ModMediation1_fit, fit.measures = TRUE, rsq = TRUE, standardized = TRUE, ci = TRUE)

parameterestimates(ModMediation1_fit, boot.ci.type = "bca.simple", standardized = TRUE, level = 0.95)

# 中介变量M2的模型
ModMediation2 <- ' M2 ~ a1*RD + a2*PD + a3*RDXPD + a4*FA +
              a5*FS + a6*FG + a7*T
              
              Perf ~ b1*M2 + b2*FA + b3*FS + b4*FG + b5*T +
              c2*PD + c3*RDXPD
              
              # 间接效应定义
              IndEff := a1*b1
              
              # 有调节的中介指数
              IndModMed := a3*b1
              
            '


ModMediation2_fit <- lavaan::sem(ModMediation2, data = p2_df, se = "bootstrap", bootstrap = 10000)

summary(ModMediation2_fit, fit.measures = TRUE, rsq = TRUE, standardized = TRUE, ci = TRUE)

parameterestimates(ModMediation2_fit, boot.ci.type = "bca.simple", standardized = TRUE, level = 0.95)

问题解答

一、判断单个中介效应的统计显著性

你已经采用了Bootstrap方法,直接通过**间接效应的95%置信区间(CI)**即可判断:

  • 从parameterestimates()输出中找到IndEff对应的行,查看ci.lower和ci.upper值
  • 若该区间不包含0,说明该中介效应在0.05显著性水平上具备统计显著性
  • summary()输出中也会提供标准化效应值及对应CI,结果与上述一致

二、比较两个中介效应的强弱(是否存在显著差异)

不能仅凭系数大小直接下结论——系数差异可能由抽样误差导致,必须通过构建包含两个中介变量的单一模型,并用Bootstrap检验效应差异的显著性,步骤如下:

1. 构建联合中介模型

将M1和M2放入同一个SEM模型中,同时估计二者的间接效应,并定义效应差异:

# 包含M1和M2的联合中介模型
JointModMediation <- ' 
  # M1的预测方程
  M1 ~ a1*RD + a2*PD + a3*RDXPD + a4*FA + a5*FS + a6*FG + a7*T
  # M2的预测方程
  M2 ~ a1_2*RD + a2_2*PD + a3_2*RDXPD + a4_2*FA + a5_2*FS + a6_2*FG + a7_2*T
  # 因变量Perf的预测方程(同时纳入M1和M2)
  Perf ~ b1*M1 + b1_2*M2 + b2*FA + b3*FS + b4*FG + b5*T + c2*PD + c3*RDXPD
  
  # 定义两个中介的间接效应
  IndEff_M1 := a1*b1
  IndEff_M2 := a1_2*b1_2
  # 定义两个间接效应的差异(M2 - M1)
  IndEff_Diff := IndEff_M2 - IndEff_M1
'

# 拟合模型,使用Bootstrap估计标准误和置信区间
Joint_fit <- lavaan::sem(JointModMediation, data = p2_df, se = "bootstrap", bootstrap = 10000)

# 查看结果,重点关注IndEff_Diff的置信区间
summary(Joint_fit, fit.measures = TRUE, rsq = TRUE, standardized = TRUE, ci = TRUE)
parameterestimates(Joint_fit, boot.ci.type = "bca.simple", standardized = TRUE, level = 0.95)

2. 解读效应差异的显著性

  • 查看IndEff_Diff对应的95%置信区间:
    • 若区间不包含0,说明M2与M1的中介效应存在显著差异,此时可得出M2的中介效应更强的结论
    • 若区间包含0,说明二者的效应差异无统计显著性,不能判定M2效应更强

关键提醒

  • 分开建模时,两个效应的估计相互独立,无法准确比较;联合模型能控制M1与M2的共变关系,得到更严谨的效应差异估计
  • 你之前的分开模型未控制两个中介变量的关联,可能导致效应估计存在偏差,联合模型是更合理的选择

内容的提问来源于stack exchange,提问作者Mel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:25:26