本文是温忠鳞和叶宝娟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} YMY=cX+e1=aX+e2=c′X+bM+e3
其中,模型(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 ab个单位。也就是说,自变量 X X X变化1个单位,对因变量 Y Y Y的总效应是 c ′ c^{\prime} c′个单位加上 a b ab ab个单位,即
c = c ′ + a b c = c^{\prime} + ab c=c′+ab
检验中介效应是否显著,就是检验系数的乘积 a b ab ab是否显著异于0,即检验 H 0 : a b = 0 H_0:ab=0 H0:ab=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 ab是否显著异于0。Sobel法就是通过构建系数乘积 a b ab ab的统计量 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^/sab,sab=a^2sb2+b^2sa2
三、Bootstrap法
bootstrap法是一种从样本中重复取样的方法,前提条件是样本能够代表总体。一般的取样方法是有放回地重复取样。例如,将一个样本量为500的样本当作Bootstrap总体,从中有放回地重复取样(有放回意味着同一个样本会在同一次取样中可以被抽取多次),可以得到一个Bootstrap样本(样本量还是500),然后进行回归得到系数 a a a和系数 b b b。类似地,可以重复有放回地抽样1000次,进而可以得到1000个系数 a a a和系数 b b b成绩的估计值。将系数乘积 a b ab ab按照数值大小排序,那么第2.5个百分位点和第97.5百分位点就构成了系数乘积 a b ab ab在95%统计水平下的置信区间,进而可以判断系数乘积 a b ab ab是否显著异于0。
Bootstrap法不涉及总体分布及其参数(因而不要求正态假设,优于sobel法),利用样本所推导的经验分布代替总体分布,属于非参数方法。前提条件是样本能够代表总体
在回归中,如果系数 c c c、 a a a、 b b b都显著,则逐步法
检验结果强于Bootstrap法
。因此,先进行逐步法检验,当出现 a a a或 b b b至少有一个不显著时,才需要利用Bootstrap法进行显著性判断,具体流程如下:
逐步法就是分三步回归,比较简单此处不再展示
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