可有偿投稿计量经济圈,计量相关则可
邮箱:econometrics666@sina.cn
所有关于因果推断方法的do文件都放在社群里,可以直接取出使用运行,也欢迎到因果推断研究小组交流访问.
计量经济圈推荐
PSM-DID, DID, RDD, Stata程序百科全书式的宝典
RDD断点回归, Stata程序百科全书式的宝典
Generalized分位数回归, 新的前沿因果推断方法
Heckman模型out了,内生转换模型掌控大局
PSM倾向匹配Stata操作详细步骤和代码,干货
我们已经知道,匹配作为一种因果识别方法,可以通过构建“反事实场景”来减轻混淆因素。在二值处理效应中,我们有控制组与处理组,但我们并不能直接用控制组的结果变量减去处理组的结果变量,从而得到所谓的处理效应。
因为我们无法有效地排除掉其他obsevable(可见的)因素会同时影响处理变量和结果变量,从而导致我们不能够有效地识别出这个结果变量在两组之间的变动是否应归因于处理效应,毕竟其他因素也可以影响结果变量的变动。
我们的解决办法就是构建反事实框架,Matching方法是其中之一,而其中的倾向值得分匹配PSM最大的优势在于,他可以把多维的那些协变量(混淆变量)转化为一个一维的倾向概率值,这大大减轻了我们的匹配工作,尤其是那些连续协变量的匹配问题。
今天我们因果推断研究小组,想要引荐一个“广义倾向值得分匹配”方法,因为他能够处理连续处理变量。比如,你想要研究在因果推断研究小组学习的时长,是否能够影响你将来文章发表的数量。这里作为处理效用的学习时长就是连续的,但我们也能够把他放在反事实框架下进行因果识别。
在我们平时的回归中,我们倾向于直接做一个OLS回归,里面放置一些会影响你将来文章发表数量的协变量。但那并不是一个非常值得推荐的方式,因为里面实际上存在着太多混淆因素影响两者的关系。我们最好采用广义PSM来进行因果识别,毕竟广义PSM与PSM一样也需要检验协变量在各区间的平衡性。
在操作广义PSM的时候,原理也很简单,因为我们计量经济圈的圈友已经很熟悉PSM的操作了。第一,先用pretreatment variables估计连续处理变量;第二,检验匹配后的这些协变量是否在各组(区间)是否平衡;第三,用得到广义倾向得分预测平均处理效应。注:这里省略了很多具体步骤,下面这个具体操作示例,可以让你清楚地知道如何开展广义PSM。
我们需要研究,是否在某年获得彩票奖金的数量,与奖金获得后第六年个人的收入之间的关系。这里的处理变量奖金的数量(prize)是连续的,结果变量是第六年个人的收入(year6)。
do文件和程序都会放在社群,可以直接进群领取。
*把这个连续处理变量prize分割成三个区间
qui generate cut = 23 if prize<=23
qui replace cut = 80 if prize>23 & prize<=80
qui replace cut = 485 if prize>80
现在我们来看看这三个区间的频率分布表
注意,此时我们使用的是log转换的这个连续政策处理变量(prize),因为原始的prize是不具有正态性的,存在严重的偏倚。
接下来,我们借鉴平时使用到的PSM操作思路,先行用pretreatment variable(i.e., 就是这些变量在没有政策出现的时候就已经存在了)来估计倾向得分值。这里用到的混淆变量包括,年龄、性别、获奖之前的工作状态、获奖之前第1-6年的收入、上了几年高中和大学和获奖的年份。这里与我们的binary处理变量的预测是不相同的,那边使用的是probit或者logit,但这里只能使用ols来进行预测,因为处理变量prize是连续的。
这个是我们用reg做的ols回归结果,看看与上面的结果是不是几乎一模一样的。
我们假设这个经过log转化的连续处理变量prize服从正态分布,从而根据他的极大似然估计值来估计其参数。现在我们就需要用KS正态分布检验来检测我们之前的假设是不是成立的,如果不成立我们就需要用其他分布来进行拟合。这个结果显示,回归后的disturbances符合正态分布假定,因此我们通过正态分布构建的极大似然函数是合适的。
我们通过回归得到了预测的倾向值,这里我们叫做GPS,广义倾向得分。我们可以看出他的最小值为0.0003053,最大值为0.4501086。后面我们就需要用这些倾向得分去进行计算在咱们之前分割的各个prize区间的平均处理效应。
我们通过柱状图来看看估计的GPS。
下面就是检验那些预测连续处理变量lnprize的协变量是不是在经过GPS匹配后会在各个处理组区间里变得没有系统性差异。只有显示没有在各个区间出现系统的差异,那么代表我们的匹配至少在某种程度减轻了confounding bias。由于我们有三个处理组区间,所以会出现三个表格的检验,与咱们的Table 1的显著区间进行对比,我们得出的结论:协变量满足平衡性要求。实际上,你压根不用去与这个Table 1对比,因为结果自然会显示或支持或不支持平衡性要求的。
接下来,我们主要是估计剂量反应函数——dose response function(DRF),然后通过这个函数去得到在我们想要的每个处理点的边际处理效应,把这些点连接起来就是我们这个DRF。
matrix define tp = (10\20\30\40\50\60\70\80\90\100) //这个表示,我们想要在连续处理变量prize=10、20到100这10个点处的平均处理效应。
我们估计结果变量year6的条件期望值——获奖后第6年的收入,这里是通过如下这种2次方和交叉项形式来得到year6的条件期望值。注意:这里Ti是咱们的连续处理变量prize,Ri是咱们的广义倾向得分GPS。
下面这个表格就是最终的平均处理效应的结果(他被单独放在你的directory)。我们可以看到在prize=10的时候,这个prize的处理效应为-1157.582,而当prize=100的时候,这个prize的处理效应为-66.023。这意味着,prize的处理效应下降得非常快,在这个人获得小奖的时候,他六年后的收入期望值为16933,可在这个人获得大奖的时候,他六年后的收入期望值为9298。那些收入低的人对收入的变动显得非常敏感,而那些收入高的人对收入变动就显得不那么敏感了。