政策评估中"中介效应"因果分析, 有趣的前沿方法
作者:互联网
欢迎投稿(荐稿)计量经济圈,计量相关都行
邮箱:econometrics666@sina.cn
copyrights@计量经济圈因果推断研究小组, 欢迎加入交流学习, 值得青睐的博士研究群体组织。do文件也放在咱们的社群。
感谢各位,一旦成为圈子的一员,希望我们就珍惜缘分,互帮互助让彼此都有所进步。
今天,我们因果推断研究小组给圈友引荐一下“政策评估中中介效应的因果分析(causal mediation analysis)”。
在一般的政策评估框架下,我们只需要两个主要变量——结果变量和政策处理变量,再加上一些协变量。然后通过反事实的框架来理清政策效应,即通过准实验的方式来重新构建一个对照组和参与组样本。
在我们学习过程中,经常用到的例子是:参与政府的就业培训项目是否提高了我们找到工作的机率。因为这个例子里存在着严重的“自选择(self-selection)效应”——可能有更大几率找到工作的个体更愿意参与就业培训项目,因为他们还可以从中得到更多的技能提升。
我们为了推断出一个因果关系,然后通过使用匹配方法去修正样本里隐含的内生性问题。一般地,我们通过寻找那些会影响“是否参与就业培训”这个决策的pretreatment variables(比如,性别,教育等这些已经改变不了的个人特征变量),来获得一个倾向值,即这个人有多大几率会参与这个就业培训项目。再通过不同的匹配方式来寻找能够匹配得起来的参与组与对照组,这样就可以得到相对没有那么多混淆因素存在的因果关系。
现在,我们想要研究一下到底是什么机制导致参与就业培训项目的人更能够找到工作?而根据文献或者直觉判断,我们认为可能是参与就业培训项目会提高人的在找工作中的自信度,从而有了更高的几率去获得工作。所以,这里面的中介变量就是人在找工作过程中的自信度。
我们需要验证这个假设,那该怎么着手呢?传统地方法是如下方三个方程展示的那样,其中Y是因变量或结果变量,T是政策处理变量(虚拟变量),M是中介变量。我们依次做一个回归方程,前面两个方程的β1和β2系数都显著,那就需要着重看看第三个方程里β3和γ是不是显著了。如果γ显著,但β3不显著,那意味着M是咱们想要寻找到的中介变量;如果γ显著,但β3的系数下降很多,那也意味着M至少部分地成为了T到Y的中介变量。
那么,这种三步方程的形式是不是就能够形成一种前后因果的中介效应机制呢?答案是,需要满足几个条件:方程是线性的,处理变量T与中介变量M没有交互效应(下面这个表达形式),满足序列可忽略性(sequential ignorability)。
所以,一般而言这个sgmediation程序是不能用来处理结果变量Y或中介变量M是非连续性的方程。序列可忽略性是什么意思呢?第一,我们需要保证这个政策处理变量分配是随机的,就是说我们通过pretreatment variables预测的政策处理效应,需要与结果变量Y和中介变量M是彼此独立的。第二,这个中介变量在上面的最后一个方程中是需要满足外生性假定的,即通过第二式中政策处理变量T和pretreatment variables得到的中介效应M也满足随机性。
如果不满足上面的三个条件,即使我们开发了针对结果变量Y和中介变量M的logit/probit估计方程,那也不能说这是“中介因果效应”。比如,我们现在用得比较多的binary_mediation, ldecomp等针对二值虚拟变量的中介效应分析(要么Y,要么M是二值虚拟变量)。
现在,我们要介绍的这种能够识别中介因果效应的方法,最核心的优势在于他能够提供关于中介变量M是否是具有随机性的敏感性分析。这个敏感性分析能够告诉我们,一旦上面提到的一些关键性条件不再成立时,咱们的这些估计值会发生怎样的改变。
示例:
clear
*Create simulated data
set seed 312789
set obs 2000
*Draw realizations of error terms and pretreatment covariate x assuming no correlation
matrix m = (0,0,0)
matrix sd = (1,1,1)
drawnorm e1 e2 x, n(`n') means(m) sds(sd)
*Generate realizations of treatment (T), mediator (M), and outcome (Y)variables
generate T = round(runiform(), 1) // 政策处理虚拟变量
generate M = 0.25+0.25T+0.25x+e1 // 中介变量可以连续或二值
generate Y = 0.25 + 0.25T + 0.25M + 0.25*x + e2 // 结果变量可以连续或二指
*中介效应分析,两个方程不能同时为probit
medeff (regress M T x) (regress Y T M x), mediate(M) treat(T) sims(1000) seed(1)
ACME就是中介效应0.067,而这个政策的直接效应为0.297。
gen M1=1 if M>1 //生成一个虚拟变量为后面probit回归使用
replace M1=0 if M<=1
gen Y1=1 if Y>0 // 生成一个虚拟变量为后面probit回归使用
replace Y1=0 if Y<=0
medeff (probit M1 T x) (regress Y T M1 x), mediate(M1) treat(T) sims(1000) // M1是虚拟变量,Y是连续变量
medeff (regress M T x) (probit Y1 T M x), mediate(M) treat(T) sims(1000) // Y1是虚拟变量,M是连续变量
- 敏感性检验 // 检验咱们这个中介变量是不是满足随机性
medsens (regress M T x) (regress Y T M x), treat(T) mediate(M) sims(100)
The results show that for the point estimate of the ACME to be zero, the correlation between e2 and e3 must be approximately 0.24.
这个图是平均的因果中介效应与违反序列可忽略性假设的关系图。
可以参看这篇文章,再进行系统学习。需要do文件的,可以前往计量经济圈社群直接领取。
标签:变量,0.25,效应,M1,中介,前沿,因果 来源: https://blog.51cto.com/15057855/2679961