中介效应分析-方法和模型发展 – 潘登同学的论文精读


考虑自变量X对因变量Y的影响, 如果X通过影响变量M而对Y产生影响, 则称M为中介变量。

Y = c X + e 1 ( 1 ) M = a X + e 2 ( 2 ) Y = c ′ X + b M + e 3 ( 3 ) Y = cX + e_1 \quad (1)\\ M = aX + e_2 \quad (2)\\ Y = c'X + bM + e_3 \quad (3) Y=cX+e1(1)M=aX+e2(2)Y=cX+bM+e3(3)

在这里插入图片描述

检验中介效应流程

  1. 检验方程(1)的系数c, 如果显著, 按中介效应立论, 否则按遮掩效应立论。但无论是否显著, 都进行后续检验。
  2. 依次检验方程(2)的系数a和方程(3) 的系数b, 如果两个都显著, 则间接效应显著, 转到第四步; 如果至少有一个不显著, 进行第三步。
  3. 用Bootstrap法直接检验 H 0 : a b = 0 H_0 : ab = 0 H0:ab=0。 如果显著, 则间接效应显著, 进行第四步; 否则 间接效应不显著, 停止分析。
  4. 检验方程(3)的系数 c ′ c' c, 如果不显著, 即直接效应不显著, 说明只有中介效应。如果显著, 即直接效应显著, 进行第五步。
  5. 比较ab和 c ′ c' c的符号, 如果同号, 属 于部分中介效应, 报告中介效应占总效应的比例 a b c \frac{ab}{c} cab。如果异号, 属于遮掩效应, 报告间接效应与 直接效应的比例的绝对值 ∣ a b c ′ ∣ |\frac{ab}{c'}| cab

在这里插入图片描述

直接效应、间接效应与总效应

  1. 直接效应: 系数 c ′ c' c是在控制了中介变量M的影响后, 自变量X对因变量Y的直接效应;
  2. 间接效应: 中介效应等于间接效应 (indirect effect), 即等于系数乘积ab;
  3. 总效应 = 直接效应 + 间接效应
    c = c ′ + a b c = c' + ab c=c+ab

两个问题:

  1. 要不要检验系数c?

当然,因为研究者 肯定会关心X是否显著影响Y。对于特定的两个变量X和Y, 如果根据理论、经验或者与他们关系密切的第三个变量M, 都无法设想X和Y之间有关系的话, 还会去研究X如何影响Y吗?文章将如何立论?所以说, 研究者肯定会关心X和Y之间关系。

  1. 中介效应要不要以系数c显著为前提条件?

按Baron和Kenny (1986)定义, 中介效应是 以系数c显著为前提, 即X显著影响Y为前提。 在这个定义下, 分析中介效应可以解释“X如何影 响Y”, 中介过程提供了“X对Y的作用机制”.如果系数c不 显著, 就说明X对Y的影响不显著, 如果还问“X 如何影响Y”或者“X对Y的作用机制是什么”, 不合常理。

由问题2引出的系数c不显著的情形,有可能是间接效应和直接效应符号相反, 总效应就出现了被遮掩的情况, 称之为遮掩效应

这样说来, 我们不用去争论中介效应要不要 以系数c显著为前提, 而是应当根据实际情况进行立论, 合理地提出相应的问题, 建立模型进行分析, 并作出相应的解释。虽然系数c不显著还 是可以继续分析, 但应当明白, 系数c显著与否, 是不同的事情, 用不同的名称区分开来是明智的做法。

完全中介与部分中介

通过检验方程(3)的系数 c ′ c' c来区分区分完全中介还是部分中介。如果系数 c ′ c' c不显著, 属于完全中介(James & Brett,1984)。 Baron和Kenny (1986)认为完全中介是中介效应 存在的最强有力的证明。

Stata代码

代码来自连玉君老师团队的文章

sgmediation2 命令安装:

net install sgmediation2, from("https://tdmize.github.io/data/sgmediation2")

sgmediation2 命令语法:

sgmediation2 depvar [if exp] [in range] , iv(focal_iv) mv(mediator_var) [options]

其中,depvar 为因变量,iv(focus_iv) 为自变量,mv(mediator_var) 为中介变量。

实例:

  • 假设受过高等教育的人 (edyrs) 会拥有更好的健康状况 (health),其中存在一个可能的中介解释是:高教育往往伴随着高收入,而收入越高的人往往会更加在意自己的身体健康,进而拥有更好的健康状况。三者理论上的因果如下:
    在这里插入图片描述

在这个例子中,我们控制了受访者的年龄 age、性别 gender 和种族 race 等变量,同时使用 Sobel-Goodman 中介测试来检验上述解释。

use "https://tdmize.github.io/data/data/cda_ah4", clear
drop if missing(health, edyrs, income, race, woman, age)
sgmediation2 health, iv(edyrs) mv(income) cv(i.race i.woman age)

结果中输出了三个回归表,以及一个检验表和一个描述效应的表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来将进一步介绍如何使用自举法 (Bootstrap) 获得间接效应 ( a ∗ b a*b ab) 的标准误差和置信区间。通常来说,上述默认的 Sobel-Goodman 测试统计能力较低。一个常见的解决方案是使用自举法来获得标准误差和/或置信区间 (Preacher 和 Hayes,2004;Zhao 等,2010),且重复抽样次数需要在 1000 次及以上 (Preacher 和 Hayes,2008)。

return list
bootstrap r(ind_eff) r(dir_eff) r(tot_eff), reps(1000): sgmediation2 health, ///
         iv(edyrs) mv(income) cv(i.race i.woman age)
estat bootstrap, bc percentile  // 用百分位数表示和偏差修正的置信区间

在这里插入图片描述

用百分位数表示和偏差修正的置信区间:
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐