实证分析 | 中介效应检验原理与Stata代码实现

前言

本文是温忠鳞和叶宝娟2014年刊载于《心理科学进展》的论文《中介效应分析:方法和模型发展》的简要笔记与拓展。

温忠麟、叶宝娟:《中介效应分析:方法和模型发展》,《心理科学进展》,2014年第5期

中介效应检验

要了解中介效应,首先要引入中介变量的概念。考虑自变量X X X对Y Y Y的影响,如果X X X通过影响变量M M M而对Y Y Y产生影响,则称M M M为中介变量。

在回归模型的体现
Y = c X + e 1 M = a X + e 2 Y = c ′ X + b M + e 3 \begin{aligned} Y &= cX + e_1 \ M &= aX + e_2 \ Y &= c^{\prime}X + bM + e_3 \end{aligned}Y M Y ​=c X +e 1 ​=a X +e 2 ​=c ′X +b M +e 3 ​​
其中,模型(1)的系数c c c是自变量X X X对因变量的Y Y Y的总效应,模型(2)的系数a a a为自变量X X X对中介变量M M M的效应,模型(3)的系数b b b是控制了自变量X X X的影响后,中介变量M M M对因变量Y Y Y的效应,系数c ′ c^{\prime}c ′是在控制了中介变量M M M的影响后,自变量X X X对因变量Y Y Y的直接效应。

直观理解,自变量X X X变化1个单位,通过直接效应影响因变量Y Y Y c ′ c^{\prime}c ′个单位,通过间接效应影响中介变量M M M a a a个单位,进而通过中介变量M M M影响因变量Y Y Y a b ab a b个单位。也就是说,自变量X X X变化1个单位,对因变量Y Y Y的总效应是c ′ c^{\prime}c ′个单位加上a b ab a b个单位,即
c = c ′ + a b c = c^{\prime} + ab c =c ′+a b
检验中介效应是否显著,就是检验系数的乘积a b ab a b是否显著异于0,即检验H 0 : a b = 0 H_0:ab=0 H 0 ​:a b =0

中介效应检验方法的演进

一、逐步法

分三步,首先检验自变量X X X对因变量的Y Y Y的总效应是否显著,然后检验自变量X X X对中介变量M M M的效应是否显著,最后检验控制自变量X X X后,中介变量M M M对因变量Y Y Y的效应是否显著。本质上就是对模型(1)-(3)依次进行回归,若上述都得到显著结果,则可以说明中介效应显著。但是逐步法的缺陷是,当系数a a a或者系数b b b其中有一个不显著时,无法判断中介效应是否显著。

二、Sobel法

当发现系数a a a或者系数b b b其中有一个不显著时,可以利用统计检验的方法检验系数乘积a b ab a b是否显著异于0。Sobel法就是通过构建系数乘积a b ab a b的统计量z z z来估计其置信区间,判断其是否显著异于0。但是Sobel法构建的统计量的推导需要假设a ^ b ^ \hat{a}\hat{b}a ^b ^服从正态分布,假设要求较高。
z = a ^ b ^ / s a b , s a b = a ^ 2 s b 2 + b ^ 2 s a 2 z=\hat{a}\hat{b}/s_{ab},\,s_{ab}=\sqrt{\hat{a}^2s_b^2+\hat{b}^2s_a^2}z =a ^b ^/s a b ​,s a b ​=a ^2 s b 2 ​+b ^2 s a 2 ​​
三、Bootstrap法

bootstrap法是一种从样本中重复取样的方法,前提条件是样本能够代表总体。一般的取样方法是有放回地重复取样。例如,将一个样本量为500的样本当作Bootstrap总体,从中有放回地重复取样(有放回意味着同一个样本会在同一次取样中可以被抽取多次),可以得到一个Bootstrap样本(样本量还是500),然后进行回归得到系数a a a和系数b b b。类似地,可以重复有放回地抽样1000次,进而可以得到1000个系数a a a和系数b b b成绩的估计值。将系数乘积a b ab a b按照数值大小排序,那么第2.5个百分位点和第97.5百分位点就构成了系数乘积a b ab a b在95%统计水平下的置信区间,进而可以判断系数乘积a b ab a b是否显著异于0。

Bootstrap法不涉及总体分布及其参数(因而不要求正态假设,优于sobel法),利用样本所推导的经验分布代替总体分布,属于非参数方法。 前提条件是样本能够代表总体

检验流程

在回归中,如果系数c c c、a a a、b b b都显著,则 逐步法检验结果强于 Bootstrap法。因此,先进行逐步法检验,当出现a a a或b b b至少有一个不显著时,才需要利用Bootstrap法进行显著性判断,具体流程如下:

实证分析 | 中介效应检验原理与Stata代码实现

; Stata实现

逐步法就是分三步回归,比较简单此处不再展示

bootstrap检验代码

*--- bootstrap重复取样1000次 ---*

* 参考文献:罗勇根,杨金玉,陈世强.空气污染、人力资本流动与创新活力——基于个体专利发明的经验证据[J].中国工业经济,2019(10):99-117.

bootstrap r(ind_eff) r(dir_eff), reps(1000): sgmediation Patent, mv(Health) iv(AQI) cv(L_Patent Team Tenure Size Firm_age lnsale GDP CPI CitySewage)

* ind_eff表示间接效应
* dir_eff表示直接效应
* Patent为因变量
* Health为中介变量
* AQI为自变量
* cv为控制变量

特别针对利用stata进行中介效应Bootstrap检验时,出现以下错误

'r(ind_eff)' evaluated to missing in full sample
r(322);

主要原因是sgmediation这个ado包里面没有计算r(ind_eff)和r(dir_eff)。因此,在进行中介效应检验时,需要保证下载了一个正确的sgmediation的ado文件包

然而,据反映直接在stata中用findit 和help或者ssc install已经无法下载到sgmediation的ado文件包

我们在经管之家找到了大佬手动修正的sgmediation的ado文件包,可以在后台回复”sgmediation”获得,下载后放在 ado\\base\s文件路径下(注意查看是否有重名的文件包),即可运行成功

参考资料

[1]温忠麟,叶宝娟.中介效应分析:方法和模型发展[J].心理科学进展,2014,22(05):731-745.

[2]罗勇根,杨金玉,陈世强.空气污染、人力资本流动与创新活力——基于个体专利发明的经验证据[J].中国工业经济,2019(10):99-117.

[3] https://bbs.pinggu.org/thread-7280176-1-1.html

Original: https://blog.csdn.net/weixin_47172744/article/details/119857915
Author: AccountingCoder
Title: 实证分析 | 中介效应检验原理与Stata代码实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/668746/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球