1. 首页
  2. > 商标注册 >

双重差分模型(双重差分模型stata命令)

最近在学习因果推断的相关知识,同事推荐了一篇文章Casual inference in economics and marketing,刚好边学习边形成自己的学习笔记,加深理解。


因果推断学习笔记1:线性回归能够真实描述因果关系吗?


因果推断学习笔记2:怎么排除混杂变量干扰?此外还有什么问题?


https://www.pnas.org/content/113/27/7310


怎样处理counterfactual?

通过历史数据预测


常用的机器学习、时间序列等方法都可以用来预测counterfactual。


TTTC(train-test-treat-compare)是其中一种估计counterfactual的通用方法。但需要注意的是,我们不能使用对影响治疗结果的因素来预测counterfactual。例如,节假日通常广告花费和销售收入都会大幅增长,因此,节假日就是一个混杂变量,正确的做法是:把节假日从误差项中取出,构建一个额外的模型来预测节假日期间的情况。



如上图所示,红色线为预测的counterfactual,黑色的线是实际的效果。在treat期间,黑色的线比红色的线高出的部分就是治疗的效果,这样我们就排除了counterfactual因素的干扰。


除了预测之外,还有哪些方法?


断点回归 Regression Discontinuity


选择实验组去构建模型其中一个很重要的因素就是理解数据生成过程,一个常见的选择方法是使用阈值。方法是将刚刚超过阈值的作为一组,将刚刚不到阈值的作为另一组。



其原理是某个特定主题最终属于哪边的阈值本质上是随机的,因此该策略已经与随机分配策略非常接近了。


if(scores e > threshold), do treatment.


一个例子:


RD的目的是选取其他特征相似的组,考察临界值区间上下不同


例如,考察进入清华与否对于收入的影响。 考试成绩为687的人无法上清华大学,而考试分数为689的人课可以进去。仅仅2分之差,这两类人的基本能力其实没什么差别。 两组人,围绕着688分的分界线,对于研究工资差异都具有较高的内部效度,因为两者之间的唯一区别是是否进入清华。其他一切都是不变的。


把这个理念延伸一下 控制其他变量,数据分为1)688以下, 2)688以上两组。 回归拟合线应该斜率相近, 但是截距有明显差别,截距项可以理解为入学带来收入差异。


链接:https://www.zhihu.com/question/39613256/answer/1041477180


自然实验 Natural Experiments


有的时候,也会有一些实验其分配效果和随机几乎一样好。


一个例子:


美国的超级碗比赛举行有两个前提:


1)主场队伍观众的规模一般会比客场队伍多出10-15%


2)广告公司在购买广告位的时候一般会提前好几个月,这个时候他们还不知道哪个队伍会在这个场地比赛(也就是说购买行为是非常随机的)


那么,当一个电影宣传广告是有效的时候,我们就可以通过比较用户在实验组(购买广告的场地)和对照组(没有购买广告的场地)的兴趣来观察投放广告是否真的会提升观众对电影的兴趣。


兴趣可以通过电影名称的检索数量和上映第一周的票房收入来衡量,同时增长部分要剔除主场比客场多出10-15%的观众规模。


工具变量 Instrumental Variables


上文提到,y = bx e,e里边有混杂变量的干扰,但实际上混杂变量只是e的其中一部分,另外一部分和x是独立的。


如果一个变量仅仅通过影响x来影响y,那么这个变量称之为工具变量。换句话说,这个变量只和x相关,与误差项e相互独立。


用公式表示话的就是:y=bx e,x=az d, z就是工具变量。


推导过程如下:


b^iv=cov(z, y)/cov(z, x) = cov(z,bx e)/cov(z,x) = [bcov(z,x) cov(z,e)]/cov(z,x)=b cov(z,e)/cov(z,x)


z和e相互独立,因此cov(z,e)=0,所以b^iv=b 0=b.


双重差分模型 Difference in Differences


假设:如果没有treatment,对照组和实验组的变化应该相同,即



treatment的影响可以通过比较实际的效果和counterfactual而得出,即



例如在广告的例子中:





更容易理解的方式实际上就是实验组效果的提升减去控制组效果的提升,即:



DID的目的是比较两组存在差异的群体,但是该差异的影响必须是随着时间变化是恒定的


比如处理前A2010 ,处理后A2020; 处理前 B2010,处理后 B2020.


所以(A2010 - B2010 )=m 就是所谓的first difference. 这里m就是A和B组预先存在的差别。 然后( A2020 - B2020)=n , 这里就是second difference, 其中n包含了处理的效应Treatment 和预先差别m,最后, n-m= treatment效果。 这就是difference in difference.


链接:https://www.zhihu.com/question/39613256/answer/1041477180


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息