当前位置:首页>java>基本有用的Stata代码:中介效应检验

基本有用的Stata代码:中介效应检验

  • 2026-08-28 10:03:46
基本有用的Stata代码:中介效应检验

      假设数据为面板数据,id为个体标识,year为时间变量,industry为行业变量,m为中介变量,控制时间和行业固定效应。

1.两步法
* 第一步:检验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*)

回归结果以下图为例:

  • 三种检验方法均显示间接效应显著(P 值 < 0.05)

  • a:X 对 M 的影响(即 X → M)

  • 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,表明中介变量在自变量和因变量之间的中介作用显著。
直接效应(_bs_2):观测系数(Observed coefficient)=0.0087861,Bootstrap 标准误差(std. err.):0.0006508,P值=0.000,95% 置信区间[0.0075106, 0.0100616]不含0,表明自变量对因变量的直接影响也显著。

注意⚠️ :sobel检验法和Bootstrap法不支持i.变量的形式,根据研究需要,先生成个体、时间或行业虚拟变量。后面就可以用通配符*来表示个体、时间或行业虚拟变量,如year_dum*、industry_dum*。

tab id, gen(id_dum)tab year, gen(year_dum)tab industry, gen(industry_dum)

✦点击下方关注南博吉吉✦

最新文章

随机文章