断点回归设计RDD分类与操作案例
可有偿投稿计量经济圈,计量相关则可
邮箱:econometrics666@sina.cn
编辑:计量经济圈; 来源:经济模型 公众号; 作者:Jie Xie.
所有计量经济圈方法论丛的do文件, 微观数据库和各种软件都放在社群里.欢迎到研究小组交流访问.
今天,我们“因果推断研究小组”再次为计量经济圈的圈友们引荐一篇关于RDD的因果推断解读文章。之前,我们计量经济圈因果推断研究小组编写了一份RDD的Stata实证do file:RDD断点回归, Stata程序百科全书式的宝典。那份do file基本足够用来在实证研究中检验causal effect,不过,我们仍然希望圈友们能够更好地理解RDD的推断思路。当下,基于物理空间距离的RDD操作很多,比如,根据距离淮河距离南北的远近来检验取暖的环境效应。如果你对RDD比较感兴趣,那还可以看看以下文章。
断点回归设计RDD
断点回归由Thistlewaite and Campbell(1960)首次使用,但直到1990年代末才引起经济学家的重视。Hahn et al(2001)提供了断点回归在计量经济学理论基础。目前,断点回归在教育经济学、劳动经济学、健康经济学、政治经济学以及区域经济学的应用仍方兴未艾。参见Imbens and Lemieux(2008),Van Der Klaauw(2008)以及Lee and Lemieux(2010)的文献综述。
例1: Thistlewaite and Campbell(1960)使用断点回归研究奖学金对于未来学业成就的影响。由于奖学金由学习成绩决定,故成绩刚好达到获奖标准与差一点达到的学生具有可比性。
例2: Angrist and Lavy(1999)在研究班级规模对成绩的影响时,利用以色列教育系统的一项制度进行断点回归;该制度限定班级规模的上限为40名学生,一旦超过40名学生(比如41名学生),则该班级被一分为二。
断点回归可以分为两种类型:
精确断点回归(Sharp Regression Discontinuity,SRD),其特征是断点x=c处,个体得到处理的概率从0跳跃到1。
模糊断点回归(Fuzzy Regression Discontinuity,FRD),其特征是断点x=c处,个体得到处理的概率从a跳跃到b,其中0<a<b<1。
1.精确断点回归
考察上大学对工资收入的影响。假设上大学与否(Di)完全取决于由高考成绩xi是否超过500分:
由于此回归存在一个断点,故称为“断点回归”(Regression Discontinuity)或称“断点回归设计”(Regression Discontinuity Design)。由于在断点附近仿佛存在随机分组,故一般认为断点回归是内部有效性比较强的一种准实验。
断点回归可视为“局部随机试验”(Local randomized experiment);可通过考察协变量在断点两侧的分布是否有差异来检验随机性。但断点回归仅推断在断点处的因果关系,不能推广到其他样本值,故外部有效性受局限。
精确断点回归:
考察带宽的选择:
由于断点回归在操作上存在不同的选择,实践中一般建议同时汇报以下各种情况,以保证稳健性。
Ø分别汇报三角核和矩形核的局部线性回归结果(后者等价于线性参数回归)。
Ø分别汇报使用不同带宽的结果(比如,最优带宽及其二分之一或两倍带宽)。
Ø分别汇报包含协变量与不包含协变量的情形。
Ø进行模型设定检验,包括检验分组变量与协变量的条件密度是否在断点处连续。
2.模糊断点回归
例3: 高考成绩上线并不能完全保证上大学,能否上大学还取决于填报志愿,甚至有些上线考生放弃上大学 的机会;而即使成绩未上线,但也可能因某种特长而得到加分,从而得到上大学的机会。上大学的概率确实在分数线的位置上有一个不连续的跳跃。
在模糊断点的情况下,处理变量D不完全由分组变量x所决定。
断点回归的Stata实例
断点回归可通过非官方Stata命令rd来实现,基本句式:
rd D x , z0(real) strineq mbw(numlist) graph bdep oxline kernel(rectangle) cov(varlist) /// x(varlist)
其中,“y”为结果变量,“D”为处理变量,而“x”为分组变量。
选择项“z0(real)”用来指定断点位置,默认值为“z0(0)”,即断点为原点。
选择项“mbw(numlist)”用来指定带宽,默认值为“mbw(50 100 200)”。
选择项“graph”表示根据所选的每一 带宽,画出其局部现行回归图。
选择项“bdep”表示通过画图来考察断点回归估计量对带宽 的依赖性。
选择项“oxline”表示在此图的默认带宽上画一条直线,以便识别。
选择项“Kernel(rectangle)”表示使用矩形核,默认使用三角核。
选择项“cov(varlist)”用来指定加入局部线性回归的协变量。
选择项“x(varlist)”表示检验这些协变量是否在断点处有跳跃(估计其跳跃值和显著性):
例4:考察美国国会选区(如果有)一名民主党众议员对该选区联邦支出的影响。
传统上,民主党倾向于大政府,故一个选区如果有民主党众议员,则该议员可能为该选区争取更多的联邦支出。然而,直接对二者进行回归可能存在遗漏变量问题或双向因果问题。为此,使用民主党候选人的得票率作为分组变量,以0.5作为断点(在两党政治中,得票率大于或等于0.5则当选,反之落选),进行断点回归。数据集votex.dta,其中结果变量为lne(选区联邦开支的对数)、分组变量为d(民主党候选人得票率减去0.5)、处理变量win(民主党候选人当选),以及一系列协变量。
先来做一个一般的lne对win的OLS回归,可以与断点回归作比较。
Stata命令:reg lne win i votpop black blucllr famer fedwrkr forborn ///
manufunemplyd union urban verterans
可以看出,虚拟变量win 的系数是正的0.39,却不显著,而且调整后的R2是0.2814,只能解释总体样本的28.14%。
首先,使用最优带宽及默认的三角核进行精确断点回归,并画图。
Stata命令:rd lne d, gr mbw(100)
其次,加入协变量.重复上面的估计。
Stata命令:rd lne d, mbw(100) cov(i votpop black blucllr famer fedwrkr forborn manuf unemplyd union urban verterans)
再次,去掉协变量,同时估计三种带宽,并画出估计值对带宽的依赖性。
Stata命令:rd lne d , gr bdep oxline
进行断点回归后,还需要对其设定进行检验。先检验协变量在断点处的条件密度是否存在跳跃。
Stata命令:rd lne d , mbw(100) x(i votpop black blucllr farmer fedwrkr forborn manuf unemplyd union urban veterans)
McCrary检验可以通过非官方Stata命令Dcdensity来实现,ado文件下载地址为http://emlab.berkeley.edu/~jmccrary/DCdensity/。将“Dcdensity.ado”文件下载到文件夹“\\ado\\plus”即可。
命令Dcdensity基本句式为:
Dcdensity assign_var,breakpoint(#) generate(Xj Yj r0 fhat se_fhat) graphname(filename)
其中“assign_var”为分组变量,必选项“breakpoint(#)”指定断点位置,必选项“generate(Xj Yj r0 fhat se_fhat)”用来指定输出变量名,而选择项“graphname(filename)”用来指定密度函数图的文件名。
运用Dcdensity命令检验数据集(votex.dta)的分组变量d是否连续。
Stata命令:DCdensityd, breakpoint(0) generate(Xj Yj r0 fhat se_fhat) /// graphname(rd.eps)
模糊断点回归:
根据模糊断点回归的定义,随机生成一个新的处理变量ranwin。变量ranwin不由分组变量d完全决定,但与原来的处理变量win高度相关(win完全由d决定)。
Stata命令如下:
Set seed 10101
gen ranwin = cond(uniform () < .1 , 1 – win , win)
其中,“uniform()”表示生成一个在[0 , 1)区间服从均匀分布的随机变量,命令“cond(uniform () < .1 , 1 – win , win)”表示,如果此随机变量小于0.1,则变量ranwin= 1 – win;否则,变量ranwin= win。因此,ranwin也是虚拟变量,且与win高度相关。
使用最有带宽与默认的三角核进行模糊断点回归。
Stata命令:rd lne ranwin d , mbw(100)
模拟断点回归:
假设断点c=140
结果变量 y = 100+80*T+2*x+rnormal(0,20)
其中,分组变量x是服从均值为100、方差为50的正态分布(小于0的用0替代,删除大于280的数)。处理变量T是x的函数。当x>140时,T=1,否则T=0。
没有处理变量T的情况,y对x是一条没有断点的直线:
有高次项的情况:
例5:
数据集:LMB Data.dta
分组变量:民主党的得票率(demvoteshare)。当得票率大于50%时,则民主党获胜。
结果变量:来自ADA的自由投票得分。
考察在得票率相近的选举中获胜的候选人是否较少了他们的国会得票。
画散点图:
scatter score demvoteshare, msize(small) xline(0.5)
xtitle("Democrat vote share") ytitle("ADA score")
scatter score demvoteshare, msize(small) xline(0.5) xtitle("Democrat vote share")
ytitle("ADA score") jitter(2)
在断点两端添加拟合曲线:
加入高次项再回归:
依次添加高次项的综合图:
添加高次项以及他们的交互项(democrat与demvoteshare):
用cmogram命令来画断点为0.5的断点回归图:
下列第一个图:断点为0.5的直线回归(flit)
下列第二个图:断点会0.5的局部光滑线性回归(lowess)
利用核函数做局部多项回归:
在断点0.5附近选择不同的带宽:
做精确断点回归:
论文:Evidence on the impact of sustained exposure to air pollution on life expectancy from China’s HuaiRiver policy 这篇文章由清华大学的李宏彬、北京大学的陈玉宇和另外两位作者共同完成。发表在《美国国家科学院院刊》(PNAS)的一篇论文,向已经逐渐意识到空气污染危害的中国民众再次展现了残酷的现实:以淮河为界,烧煤供暖的中国北方地区空气污染水平高于中国南方,北方5亿居民因严重的空气污染,平均每人失去5年寿命。使用的方法就是断点回归(RD)
而空气污染造成的结果,淮河两岸的人均寿命差异则是惊人的5年。
同时,不考虑空气污染,用其他变量预测出来的人均寿命则几乎没有差别。这说明了连续性假设是成立的,淮河两岸的两个十分接近的地区几乎拥有相同的特征。作者还发现,淮河以北的超额死亡率,正是由和空气污染相关的心肺疾病相关,并进而与空气总悬浮物相关,而与谋杀、自杀等因素无关。
作者给出结论:烧煤将使空气总悬浮物大幅度上升,并使中国北方地区的居民人均寿命降低5年。该文亦引起一些争论:
报告“科学性”的争论
亦有学者对该研究报告的科学性提出了质疑。
北京大学公共卫生学院教授潘小川指出,只有PM10以下的颗粒物能进入到人的呼吸道系统,对人体健康造成危害。而总悬浮颗粒物是很粗糙的颗粒物,其中有很大一部分是PM10到PM100之间的颗粒物的浓度,总悬浮颗粒物跟健康生物学联系比较弱。
潘小川认为,该研究报告得出的结果的生物学依据较差,是比较粗糙的生态学研究。同时,他指出,影响寿命的因素很多,其中最重要的因素是食物和营养因素,报告中这方面的数据是缺失的。
对此,陈玉宇解释称,研究之所以采用总悬浮颗粒物,是因为中国测控PM10、PM2.5是近十年来才开始的,上世纪八九十年代的中国缺乏这些颗粒物的测控数据。同样,营养方面的数据不充分,因此研究也没有采用。
但陈玉宇认为这并不影响研究的科学性,他们的研究在统计学上证明了空气污染对人体健康造成了伤害,至于具体伤害到什么部位,该项研究并不需要论证。
这样的质疑也正说明了一个问题,研究的困难在于获得更好的数据。
“中国很多数据零星地分散在各个不同的机构、管理者和政府部门手中,没有被充分利用起来。”陈玉宇说,该项研究在方法上借鉴了经济学方法,但还需更全面、更高质量的数据,这样研究者才能得出更好的估计和判断。
“研究并非针对供暖政策”
中国长期以来的供暖政策受到了不少环境学者的诟病,但陈玉宇指出,此项研究并非评价供暖政策本身。
“供暖是造成污染水平发生跳跃的一个因素。”陈玉宇表示,研究团队想要体现的是,目前的污染水平已带来相当大的健康成本。
李宏彬亦表示,供暖是造成空气污染的一个原因,其实背后还是燃煤效率问题。研究的目的在于给政府一个依据,加大环境治理的投入。比如,根据这项研究估计的空气污染对寿命的影响,一个简单的计算表明,每年整个社会愿意至少支付GDP的两个百分点的支出,会使得空气颗粒悬浮物的浓度降低100微克/立方米。
陈玉宇表示,治理空气污染不仅是中国面临的问题,也是世界上诸多国家需要解决的问题。
他指出,当前对空气和环境问题的研究应回答三大类问题。一,空气污染或环境污染带来的成本是什么?二,空气污染和环境污染产生的根源是什么?三,在前述两个问题解决的基础上,应通过什么样的办法和政策以最低成本去最有效率地治理好空气?
值得注意的是,这三大类问题在中国的研究还远远不够。陈玉宇希望借此次研究报告带动更多的研究者以更好的研究方法,收集更多更高质量的数据,更准确地评估出空气污染对健康的影响。
陈玉宇说,大气中的PM2.5、PM10和TSP(总悬浮颗粒物)大多来自化石燃料燃烧后排放的气体,政府应设计科学的用煤政策,提高燃煤效率,或通过税收方式抑制污染。
鉴于该文的作图并不是符合计量经济学规范,可能也让实证成分打了折扣,不过能在米国科学院院刊刊登,也是牛叉的事情,李宏彬教授在完成这篇大作后,以实际行动逃离了帝都,南下香江,着实给其大作打了个行动的注脚!
在因果关系分析实证方法中,最优选择为随机实验,但是随机实验的时间成本和经济成本都比较高,而在随机实验不可得的情况下,需要考虑使用其它方法。断点回归(Regression Discontinuity)是仅次于随机实验的,能够有效利用现实约束条件分析变量之间因果关系的实证方法之一。但断点回归仅推断断点处的因果关系,并不能推广到其他样本值,故外部有效性受局限。Abadie等(2009)提出合成控制法(Synthetic Control Methods,SCM)来构造处理组的合理对比对象,克服处理组和对照组之间的差异,还可克服RDD不能外推的缺陷。SCM、RDD、DID(双重差分)、DDD(三重差分)等是目前实证分析的流行工具。SCM与PSM(倾向得分匹配)在构造反事实状态(counter factual state)时各有特色,而RDD在政策分析时也具独特功能。
计量经济圈推荐
1.PSM-DID, DID, RDD, Stata程序百科全书式的宝典
2.RDD断点回归, Stata程序百科全书式的宝典
3.Generalized分位数回归, 新的前沿因果推断方法
4.Heckman模型out了,内生转换模型掌控大局
5.PSM倾向匹配Stata操作详细步骤和代码,干货
6.条件Logit绝对不输多项Logit,而混合模型最给力
7.广义PSM,连续政策变量因果识别的不二利器
8.自回归VAR模型操作指南针,为微观面板VAR铺基石
9.有限混合模型FMM,异质性分组分析的新筹码
10.政策评估中"中介效应"因果分析, 有趣的前沿方法
11.多期三重差分法和双重差分法的操作指南
12.多期双重差分法,政策实施时间不同的处理方法
13.随机前沿分析和包络数据分析 SFA,DEA 及操作
14.你的内生性解决方式out, ERM已一统天下而独领风骚
15.多期DID的经典文献big bad banks数据和do文件
16.面板数据里处理多重高维固定效应的神器
17.双栏模型Hurdle远超Tobit, 对于归并数据舍我其谁
18.面板数据计量方法全局脉络和程序使用指南篇
计量经济圈当前有几个阵地,他们分别是如下各个群和小组:
①计量经济圈社群——计量经管数据软件等资料中心,
②计量经济圈微信群——服务于计量经济圈社群群友,
③计量经济圈研究小组系列——因果推断研究小组、空间计量研究小组、面板数据库研究小组、微观计量研究小组、计量软件研究小组,
④计量经济圈QQ群——2000人大群服务于计量经济圈社群群友。
计量经济圈是中国计量第一大社区,我们致力于推动中国计量理论和实证技能的提升,圈子以海内外高校研究生和教师为主。计量经济圈六多精神:计量资料多,社会科学数据多,科研牛人多,名校人物多,热情互助多,前沿趋势多。如果你热爱计量并希望长见识,那欢迎你加入到咱们这个大家庭(戳这里),要不然你只能去其他那些Open access圈子了。注意:进去之后一定要看小鹅社群“群公告”,不然接收不了群息,也不知道怎么进入咱们独一无二的微信群和QQ群。
进去之后就能够看见这个群公告了