Stata:中介效应分析新命令-sgmediation2

发布时间:2022-06-09 阅读 2619

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:李坤 (华南师范大学)
邮箱kunli1001@163.com

编者按: 本文主要摘译自下文,特此致谢!
Source: Sobel Goodman Tests of Mediation in Stata-sgmediation2 -Link-


目录


1. 引言

本文主要介绍一个新的中介效应分析命令——sgmediation2。关于中介效应、调节效应、调节中介效应和中介调节效应的相关定义和解释,大家可以阅读连享会推文「Stata:调节中介效应检验」。本文的主要目的是帮助大家掌握一个新的中介效应命令,以便不时之需。关于中介效应存在的问题,大家可以参考连享会推文「中介效应分析:三段式中介效应模型真的适用于经济学研究吗?」。

2. 统计检验背景

Baron 和 Kenny (1986) 认为中介变量是指介于自变量与因变量之间,能够在一定程度上传递自变量对因变量影响的变量。在这种解释下,我们认为出现以下四种情况,则可以说明存在中介效应:

  • 自变量对中介变量有显著影响;
  • 自变量在没有中介效应存在的情况下显著影响因变量;
  • 中介变量对因变量具有显著的影响;
  • 当在模型中加入中介变量时,自变量对因变量的影响减小。

但 Preacher 和 Hayes (2004) 则认为只需要满足两个条件便可以说明存在中介效应:

  • 在将中介变量加入到模型中之前,自变量对因变量具有显著的影响效果;
  • 自变量对因变量的影响效果会随着中介变量的加入而减小。

现在,人们对中介效应存在的条件进一步简化,如 Zhao 等 (2010) 认为只需要满足在模型中加入中介变量时,自变量对因变量的影响减小即可。因为即使没有自变量的直接影响,中介效应也可能发生。

sgmediation2 命令可以对上述各种可能的条件进行测试。但该命令的开发者 Trenton D.Mize 认为,在模型中添加中介变量 (即间接效应) 后,自变量对因变量影响减小的测试最重要。

2.1 中介检验

下图说明了中介变量的基本逻辑。其中,中介变量 (MV) 在理论上至少部分是自变量 (IV) 对因变量 (DV) 产生影响的原因/机制。所以当存在中介效应时,自变量对因变量的影响 (c) 应当小于模型中没有中介变量时的影响 (c)。

上述路径中的字母分别对应下述模型前的系数:

  • 模型一:Y=cX+e1
  • 模型二:M=aX+e2
  • 模型三:Y=cX+bM+e3

其中 Y 代表因变量 (DV),X 代表自变量 (IV),M 代表中介变量 (MV)。检验机制如下:

  • 首先,将因变量对自变量和所有控制变量进行回归。此时自变量的系数为 c,它代表了自变量对因变量的总效应 (即不包含中介变量进行解释的总效应);
  • 其次,将中介变量对自变量和所有控制变量进行回归,此时自变量的系数为 a
  • 最后,将因变量对自变量、中介变量和所有控制变量进行回归。此时中介变量的系数为 b,自变量的系数为 c

一般来说,我们习惯将未加入中介变量时,自变量的对因变量产生的效应 c 称为总效应;将考虑中介效应之后自变量因变量产生的影响 c 称为直接效应;总效应和直接效应之间的差值称为间接效应,即中介变量代替自变量对因变量进行解释的部分效应量。

2.2 间接效应

为了确定自变量的效应有多少是由中介变量解释的 (即确定间接效应),我们可以计算 a×b (系数的乘积) 或者 cc (系数的差),并且只要上述三个模型使用的是相同的样本,则 a×b 和 cc 的大小就应该相同。sgmediation2 命令计算的三个检验都使用了系数乘积的方法,不过这些检验在计算 a×b 的标准误方面有所不同:

Sobel Test:

Aroian Test:

Goodman Test:

Aroian 和 Goodman 版本的检验与 Sobel 版本不同,它们虽然都包括系数 a 和 b 方差估计值的乘积,但方式不同。由于方差的乘积往往较小,所以三者的结果都趋于相似。

有一些证据表明,Aroian 检验比其他两种检验要好 (MacKinnon 等 2002)。但也有观点认为这三种方法都是存在缺陷的,因此有人提出了使用自举法来作为计算标准误差的替代方法,因为该方法即使在小样本中使用也可以得到很好的效果(Preacher 和 Hayes 2004)。对于每个测试的详尽讨论和比较,可以参考 MacKinnon 等 (2002)。

2.3 效应大小

a×b (相当于 cc) 有时可以直接理解为由中介变量代替自变量所解释的部分效应量,或解释为中介变量在自变量与因变量之间的 “间接效应”。此外,a×b (或 cc) 还可以理解为加入中介变量之后,自变量对因变量效果的减少比例。其中,因为加入中介变量导致的自变量效果减少的比例为:

3. sgmediation2 命令

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) 为中介变量。关于 sgmediation2 命令更多详细介绍,请查看帮助文档。

接下来我们通过一个例子来进一步了解 sgmediation2 命令。假设受过高等教育的人 (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)

Model with dv regressed on iv (path c)
 regress health edyrs i.race i.woman age, vce() 
----------------------------------------------------------------------------------
          health | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-----------------+----------------------------------------------------------------
           edyrs |      0.093      0.005    16.98   0.000        0.083       0.104
            race |
          Black  |     -0.111      0.030    -3.75   0.000       -0.169      -0.053
Native American  |     -0.171      0.145    -1.18   0.238       -0.454       0.113
          Asian  |     -0.201      0.073    -2.73   0.006       -0.345      -0.057
           woman |
          Woman  |     -0.172      0.025    -6.76   0.000       -0.222      -0.122
             age |     -0.013      0.007    -1.83   0.068       -0.026       0.001
           _cons |      2.817      0.214    13.18   0.000        2.398       3.236
----------------------------------------------------------------------------------

Model with mediator regressed on iv (path a)
 regress income edyrs i.race i.woman age, vce() 
----------------------------------------------------------------------------------
          income | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-----------------+----------------------------------------------------------------
           edyrs |      3.836      0.152    25.25   0.000        3.538       4.134
            race |
          Black  |     -5.922      0.821    -7.21   0.000       -7.531      -4.313
Native American  |      0.113      3.997     0.03   0.977       -7.723       7.949
          Asian  |      4.917      2.030     2.42   0.015        0.937       8.897
           woman |
          Woman  |    -13.135      0.704   -18.66   0.000      -14.515     -11.755
             age |      1.167      0.192     6.09   0.000        0.791       1.543
           _cons |    -47.033      5.906    -7.96   0.000      -58.612     -35.454
----------------------------------------------------------------------------------

Model with dv regressed on mediator and iv (paths b and c')
 regress health income edyrs i.race i.woman age, vce() 
----------------------------------------------------------------------------------
          health | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-----------------+----------------------------------------------------------------
          income |      0.003      0.001     6.71   0.000        0.002       0.004
           edyrs |      0.080      0.006    13.80   0.000        0.069       0.092
            race |
          Black  |     -0.091      0.030    -3.06   0.002       -0.149      -0.033
Native American  |     -0.171      0.144    -1.19   0.235       -0.453       0.111
          Asian  |     -0.218      0.073    -2.98   0.003       -0.361      -0.074
           woman |
          Woman  |     -0.127      0.026    -4.84   0.000       -0.178      -0.076
             age |     -0.017      0.007    -2.41   0.016       -0.030      -0.003
           _cons |      2.978      0.214    13.91   0.000        2.558       3.398
----------------------------------------------------------------------------------

Sobel-Goodman Mediation Tests
                     |        Est     Std_err           z       P>|z| 
---------------------+------------------------------------------------
               Sobel |      0.013       0.002       6.481       0.000 
              Aroian |      0.013       0.002       6.476       0.000 
             Goodman |      0.013       0.002       6.485       0.000 

Indirect, Direct, and Total Effects
                     |        Est     Std_err           z       P>|z| 
---------------------+------------------------------------------------
       a_coefficient |      3.836       0.152      25.246       0.000 
       b_coefficient |      0.003       0.001       6.705       0.000 
 Indirect_effect_aXb |      0.013       0.002       6.481       0.000 
    Direct_effect_c' |      0.080       0.006      13.797       0.000 
      Total_effect_c |      0.093       0.005      16.979       0.000 

Proportion of total effect that is mediated:       0.141
Ratio of indirect to direct effect:                0.164
Ratio of total to direct effect:                   1.164

我们对结果进行一个简单的解释:首先,Sobel-Goodman Mediation Tests 表中显示三个 a×b (间接效应) 测试的 p 值都非常小 (p<0.001),这为将收入作为教育对健康影响的中介变量提供了支持。此外,在考虑到收入影响之后,教育的影响减少了大约 14.1%。

4. 自举法计算标准误和置信区间

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

默认情况下,Stata 的 bootstrap 命令会报告偏差修正的置信区间。Preacher 和 Haye (2004,2008) 建议使用百分位数的置信区间,因为 a×b 的抽样分布往往是非正态的。百分位数表示的偏差修正和置信区间可以通过后续估计命令 estat bootstrappercentile() 获得。下面的例子提供了用自举法估计得出的间接效应、直接效应和总效应。

. bootstrap r(ind_eff) r(dir_eff) r(tot_eff), reps(1000): sgmediation2 health, ///
>         iv(edyrs) mv(income) cv(i.race i.woman age)

Bootstrap results                                        Number of obs = 4,983
                                                         Replications  = 1,000
      Command: sgmediation2 health, iv(edyrs) mv(income) cv(i.race i.woman age)
        _bs_1: r(ind_eff)
        _bs_2: r(dir_eff)
        _bs_3: r(tot_eff)
------------------------------------------------------------------------------
             |   Observed   Bootstrap                         Normal-based
             | coefficient  std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
       _bs_1 |      0.013      0.002     6.40   0.000        0.009       0.017
       _bs_2 |      0.080      0.006    13.88   0.000        0.069       0.092
       _bs_3 |      0.093      0.005    17.12   0.000        0.083       0.104
------------------------------------------------------------------------------

. estat bootstrap, bc percentile  // 用百分位数表示和偏差修正的置信区间

Bootstrap results                               Number of obs     =      4,983
                                                Replications      =       1000
      Command: sgmediation2 health, iv(edyrs) mv(income) cv(i.race i.woman age)
        _bs_1: r(ind_eff)
        _bs_2: r(dir_eff)
        _bs_3: r(tot_eff)
------------------------------------------------------------------------------
             |    Observed               Bootstrap
             | coefficient       Bias    std. err.  [95% conf. interval]
-------------+----------------------------------------------------------------
       _bs_1 |   .01313674   .0000884   .00205331    .0093023   .0174167   (P)
             |                                       .0090962   .0171786  (BC)
       _bs_2 |   .08021862   .0000795    .0057813    .0691959   .0909556   (P)
             |                                       .0691754    .090924  (BC)
       _bs_3 |   .09335536   .0001678   .00545279    .0825975   .1037009   (P)
             |                                       .0822491   .1031032  (BC)
------------------------------------------------------------------------------
Key:  P: Percentile
     BC: Bias-corrected

5. sgmediation 与 sgmediation2 区别

sgmediation2 命令在 sgmediation 命令的基础上扩展了许多新的功能,详见 help sgmediation2。下面主要介绍几个比较明显的区别:

一是允许使用加权和多重插补的数据:首先,sgmediation2 命令允许使用使用调查权重和/或多重插补的数据。要实现这一点,只需要在 sgmediation2 命令的 prefix() 选项中指定使用的前缀即可。例如若在之前使用 svyset 命令设置过调查权重,则可以选择使用下面的命令:

. sgmediation2 health, iv(edyrs) mv(income) cv(i.race i.woman age) prefix(svy:)

此外,prefix(svy:) 选项还可以指定 mi est: 用于 mi set 中定义的多重插补估计。例如命令 mi est: svy: 代表用于调查权重和 mi svyset 命令中定义的多种插补估计。

二是改变方差估计:vce() 选项除了用于在 OLS 估计中获得默认的方差估计值外,还可以选择 vce(robust) 来获得稳健方差估计值,或者 vce(cluster clustvar) 估计聚类稳健方差估计值。例如,当我们使用调整职业类别内的聚类方差估计值时,可以使用以下命令:

. sgmediation2 health, iv(edyrs) mv(income) cv(i.race i.woman age) vce(cluster occcat)

三是控制变量的因子语法:如上例所示,控制变量可以使用因子语法。这意味着控制变量可以是连续变量或分类变量。但是自变量 (IV) 或中介变量 (MV) 不允许使用因子语法,这也反映了我们上述方法的一些局限性。因此使用这种方法,自变量和中介变量都仅限于连续变量或二元变量。

6. Sobel-Goodman 分析的局限性

利用系数乘积的方法对中介效应进行分析存在一些局限性,其中有几个事项应当引起足够的注意:

  • 只有当自变量和中介变量是连续型变量或二元变量时,才能使用该思路进行中介效应分析;
  • 当存在多个中介变量时,不易纳入到上述模型中进行研究;
  • 只能对单个中介变量的系数进行测试。如果在模型中同时包括 ageage^2 的系数,则没有明确的方法来检验 age 带来的影响是否是中介效应;
  • 该方法只适用于线性回归模型;
  • 该方法只适用于中介分析,而不适用于进行其他跨模型的比较。

7. 参考资料

  • Aroian, L. A. (1947). The probability function of the product of two normally distributed variables. Annals of Mathematical Statistics, 18, 265-271. -PDF-
  • Baron, R. M., & Kenny, D. A. (1986). The moderator–mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 51(6), 1173. -PDF-
  • Goodman, L. A. (1960). On the exact variance of products. Journal of the American Statistical Association, 55, 708–713. -PDF-
  • Keele, L. (2015). Causal mediation analysis: warning! Assumptions ahead. American Journal of Evaluation, 36(4), 500-513. -PDF--
  • MacKinnon, D. P., Lockwood, C. M., Hoffman, J. M., West, S. G., & Sheets, V. (2002). A comparison of methods to test mediation and other intervening variable effects. Psychological Methods, 7(1), 83. -PDF-
  • Preacher, K. J., & Hayes, A. F. (2004). SPSS and SAS procedures for estimating indirect effects in simple mediation models. Behavior research methods, instruments, & computers, 36(4), 717-731. -PDF-
  • Preacher, K. J., & Hayes, A. F. (2008). Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models. Behavior research methods, 40(3), 879-891. -PDF-
  • Sobel, M. E. (1982). Asymptotic confidence intervals for indirect effects in structural equation models. Sociological Methodology, 13, 290-312. -PDF-
  • Zhao, X., Lynch Jr, J. G., & Chen, Q. (2010). Reconsidering Baron and Kenny: Myths and truths about mediation analysis. Journal of consumer research, 37(2), 197-206. -PDF-

8. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 中介, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh