假设数据为面板数据,id为个体标识,year为时间变量,industry为行业变量,m为中介变量,控制时间和行业固定效应。
* 第一步:检验x对y的总效应(控制时间和行业固定效应)reghdfe y x 控制变量, absorb(year industry) vce(cluster id)est store model1* 第二步:检验x对m的效应reghdfe m x 控制变量, absorb(year industry) vce(cluster id)est store model2*导出结果esttab m1 m2 using "中介效应检验.rtf", /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) /// star(* 0.10 ** 0.05 *** 0.01) /// stats(year_fe indu_fe r2_a N, /// fmt(%9.3f %9.3f %9.3f %9.0f ) /// labels("Year""Industry""Adj. R²""N")) /// title("表 中介效应检验") /// replace /// nogap /// compress /// note("注:括号内为稳健标准误;* p<0.10, ** p<0.05, *** p<0.01")
2.三步法
* 第一步:检验x对y的总效应(控制时间和行业固定效应)reghdfe y x 控制变量, absorb(year industry) vce(cluster id)est store model1* 第二步:检验x对m的效应reghdfe m x 控制变量, absorb(year industry) vce(cluster id)est store model2* 第三步:检验x和m对y的共同效应reghdfe y x m 控制变量, absorb(year industry) vce(cluster id)est store model3*导出结果esttab m1 m2 m3 using "中介效应检验.rtf", /// cells(b(star fmt(%9.3f)) se(par fmt(%9.3f))) /// star(* 0.10 ** 0.05 *** 0.01) /// stats(year_fe indu_fe r2_a N, /// fmt(%9.3f %9.3f %9.3f %9.0f ) /// labels("Year" "Industry" "Adj. R²" "N")) /// title("表 中介效应检验") /// replace /// nogap /// compress /// note("注:括号内为稳健标准误;* p<0.10, ** p<0.05, *** p<0.01")
3.sobel检验法
* 安装sgmediation命令(若未安装)findit sgmediation* 使用sgmediation进行Sobel检验sgmediation 因变量, mv(中介变量) iv(自变量) cv(控制变量 year_dum* industry_dum*)
回归结果以下图为例:
b:M 对 Y 的影响(控制 X 后,即 M → Y | X)- 间接效应(Indirect Effect)= a × b(即通过 M 传递的影响)
- 直接效应(Direct Effect):X 对 Y 的直接影响(控制 M 后)
- 总效应(Total Effect)= 直接效应 + 间接效应
4.Bootstrap法
* 设置随机种子(可选,确保结果可重复)set seed 123* 执行Bootstrap(1000次抽样)bootstrap r(ind_eff) r(dir_eff), reps(1000): sgmediation 因变量, mv(中介变量) iv(自变量) cv(控制变量 year_dum* industry_dum*)
回归结果以下图为例:
间接效应(_bs_1):观测系数(Observed coefficient)=0.0001521,Bootstrap 标准误差(std. err.)=0.0000528,P值=0.004,95% 置信区间[0.0000487, 0.0002556]不含0,表明中介变量在自变量和因变量之间的中介作用显著。