Stata:断点回归分析设计
断点回归由Thistlewaite and Campbell(1960)首次使用,但直到1990年代末才引起经济学家的重视。
Thistlethwaite、Campbell于1960年首次提出使用断点回归设计研究处理效应, 在该文中他们的目的是研究奖学金对于未来学业的影响, 学生是否获得奖学金取决于考试的分数。由于奖学金由学习成绩决定,故成绩刚好达到获奖标准与差一点达到的学生具有可比性。如果考试分数大于获奖标准分数, 则进入处理组;如果考试分数小于获奖标准分数, 则进入控制组。因此处理变量在获奖标准分数处形成了一个断点, 该研究设计的主要思想是可以利用靠近这一断点附近的样本来有效估计处理效应。
Angrist and Lavy(1999)在研究班级规模对成绩的影响时,利用以色列教育系统的一项制度进行断点回归;该制度限定班级规模的上限为40名学生,一旦超过40名学生(比如41名学生),则该班级被一分为二。
此后30年, 该方法并未引起学术界的重视,直到1990年以后, 断点回归设计开始被应用于各种领域,并且近年来成为因果分析和政策评估领域最重要的研究方法。
Hahn et al(2001)提供了断点回归在计量经济学理论基础。目前,断点回归在教育经济学、劳动经济学、健康经济学、政治经济学以及区域经济学的应用仍方兴未艾。参见Imbens and Lemieux(2008),Van Der Klaauw(2008)以及Lee and Lemieux(2010)的文献综述。
断点回归相关中文综述和介绍详见断点回归:3篇中文综述和介绍,分别为
新“拟随机实验”方法的兴起——断点回归及其在经济学中的应用、
断点回归设计:基本逻辑、方法、应用述评、断点回归设计方法应用的研究综述
断点回归的基本命令是rd,首先我们输入如下命令进行安装,下载安装方法为:
ssc install rd, replace
rd y d x, z0 (real) strineq mbw (numlist) graph bdep oxline kernel (rectangle) cov (varlist) x(varlist)
语法含义为:
其中mbw(numlist) 用来指定最优带宽的倍数,默认值为mbw(50 100 200)
z0(real) 用来指定断点的位置,默认值为z0(0),即断点为原点,如果此处省去D,则为精确断点回归,并根据分组变量X来计算处理变量
graph 根据每一带宽,画出局部线性回归图
bdep 根据画图来考察断点回归估计量对带宽的依赖性
oxline表示在此图的默认带宽上画出一条直线,以便识别
kernel(rectangle)表示使用均匀核(矩阵核),默认使用三角核
covar(varlist) 表示用来指定加入局部线性回归的协变量
x(varlist) 表示检验这些协变量在断点处是否存在跳跃(估计跳跃值和显著性)
首先我们导入数据,输入命令如下:
use vote.dta, clear
在进行断点回归(RD)设计时,样本数据需要满足一定的前提条件,比如,断点两侧除断点(Cutoff)处理效应外,其他因素需保持平衡(滑)以及不存在Selective Sorting。
而断点回归的前提假设:Wi的条件密度在X=c0处连续。另外进行断点分析前,需要首先考察变量分组变量是否有内生分组的存在,意思就是样本个体事先知道分组原则等信息,然后通过自身选择来选择是否进入处理组,这样的内生分组将导致断点回归失效。即进行断点回归之后,我们还需要对其设定进行检验。具体来说,我们需要检验配置变量(assignment variable/running variable/forcing variable)是否被操纵。最直接的方法是绘制配置变量的直方图,观察频数在不同bin中的变化。由于bin的宽度要尽量小,这样来看,绘制密度函数曲线进行检验是更好的方法。McCrary (2008) 为判断密度函数是否存在断点提供了正规的检验。其基本句式是:
本文提供一种基于断点两侧样本分布密度来进行检验的方法:McCrary(2008)。它主要通过考察分布变量的密度函数在断点处是否连续进而实现检验样本是否存在选择性偏误,主要分为两步检验:第一步,将分组变量在断点处两侧尽量等距离细分,并计算每组的标准化频率;第二步,使用三角核估计进行局部线性回归,并计算密度函数估计值,然后检验密度函数在断点c处是否连续。
McCrary(2008)可以通过非官方命令DCdensity来实现,其中DC表示Discontinuity,可以来检验分组变量的密度函数在断点处是否连续。依此判断,是否存在内生分组问题。
该命令的下载地址为:https://eml.berkeley.edu/~jmccrary/DCdensity/
然后将该命令的DCdensity.ado下载安装或者复制到C:\ado\plus,Mac系统的需要自己sysdir查询外部命令安装路径,自行复制下载。命令语法格式为:
DCdensity assign_var,breakpoint(#) generate(Xj Yj r0 fhat se_fhat) graphname(filename)
其中,assign_var 为分组变量,必选项breakpoint(#)用来指定断点位置,generate(Xj Yj r0 fhat se_fhat)用来指定输出变量名,graphname用来命名指定密度函数图。
DCdensity d, breakpoint(0) generate(Xj Yj r0 fhat se_fhat) graphname (DCdensity_example.png)
可以看出断点两侧密度函数估计值的置信区间有很大部分重叠,所以断点两侧的密度函数不存在显著差异,检验结果为不存在内生分组,可以继续进行断点回归分析。
3.1、回归分析
首先直接进行线性回归
上述回归分析结果,虽然win表示当选了,会增加lne的支出,但是不显著
3.2、选择最优窗宽:设置不同带宽,并通过图形选择-
从默认的3种窗宽mbw(100,50,200)中,选一个最优的
rd lne d, gr bdep oxline
mbw(50),即最优窗宽的0.5倍
mbw(100),即最优窗宽的1倍
mbw(200),即最优窗宽的2倍
最优带宽
3.3、也可以直接选择默认的带宽以及三角核进行断点回归,命令为
rd lne d, gr mbw(100)
上面结果说明拥有民主党派候选人当选的选区,并不能显著的增加联邦政府开支
3.4、也可以加入变量进行断点回归,命令为
rd lne d, mbw(100) cov(i votpop black blucllr farmer fedwrkr forborn manuf unemplyd union urban veterans)
进行断点回归,还需要对其进行检验,检验协变量在断点处的条件密度是否存在跳跃
现在生成一个新的处理变量randwin,使得randwin不完全由分组变量d所决定。
set seed 20181203
g byte randwin=cond(uniform()<.1,1-win, win)
tabulate randwin win
结果显示randwin与win基本相同,但不完全相同,说明randwin不完全由分组变量d所决定。
下面使用最优带宽与默认的三角核进行模糊断点回归。
含协变量的断点回归
rd lne randwin d, gr mbw(100) covar(i votpop black blucllr farmer fedwrkr forborn manuf unemplyd union urban veterans)