天鹰 (中南财大 博士研究生)
E-mail:yanbinglh@163.com
目录
- 背景
- 断点回归模型介绍
- 断点回归建模步骤
- 断点回归模型【Stata具体操作】
1. 背景
2018年, 四川省二本文科分数线: 492分。
对于高考成绩为489, 490, 491, 492, 493, 494的考生, 可认为他们在各方面((不) 可观测因素) 都没有系统差异。甚至可以认为, 他们的成绩具有一定的随机性, 有的考生发挥好的, 492, 493, 494达到了录取分数线( 处理组);有的考生运气差点, 489, 490, 491未达到录取分数线( 控制组) 。 ( 即, 选( 猜) 错一道选择题, 可能出现完全不同的结果。 )
一般地, 对于较小的 θ >0, 高考成绩落在[492 - θ, 492 + θ]之
间的考生, 好像是被随机分组了一般。
① 对于水平差不多的考生, 若蒙对一道选择题, 可能就考上了大学; 相反, 若蒙错一题, 可能就上不了本科。 好像是上天对考分在此区间的考生能否考上大学,进行掷硬币。
② 然而, 对于600以上或300分以下的考生, 他们的成绩一般很难用运气好坏来解释。故, 不予考虑。
由于是随机分组, 因此, 可一致估计在分数线492附近的局部平均处理效应(Local average treatment effect, 记为 LATE)
注意
① 样本分组是否具有随机性。 可通过检验协变量在断点两侧的分布是否存在显著性差异来实现。
② 断点回归, 是假设存在局部随机分组的。
③ 若分组变量为年龄(时间),地理区域,存在非随机断点设计。
④ 断点回归得到的结论, 一般不能推广至其他样本。
2. 断点回归模型介绍
断点回归分类2.1 精确断点回归模型
其中, X的取值范围为,为LATE的估计量。
注意
① 对于模型(1),由于未知,一般采用非参数的核回归的方法对参数进行估计。
② 在模型(1)中,可加入其它影响Yi 的影响因素Wi。
③ 若Wi 在处,也存在跳跃,此时,不宜将全部归功于上大学的处理效应。
④ 断点回归的前提假设:的条件密度在处连续。
⑤ 内生分组: 个体事先知道分组规则, 并可通过自身操作完全控制分组变量, 可自行选择进入控制组或处理组( 实验组),导致断点附近的内生分组而非随机分组,最终导致断点回归失效。
⑥ McCrary(2008)提出通过检验分组变量X在断点两侧的密度函数是否连续, 来判断是否存在内生分组。
建议
① 分别汇报三角核与矩形核的局部线性回归结果
② 分别汇报使用不同带宽的结果
③ 分别汇报(不) 包括协变量的情形
④ 进行模型设定检验, 包括检验分组变量、 协变量的条件密度在断
点处, 是否连续。
2.2 模糊断点回归模型
与精确断点回归不同之处
- 1.在模糊断点的情形下, 处理变量D 不完全由分组变量X 决定, 影响处理变量D 的其他因素也会影响Y,故, 对于模型(1)而言, OLS估计结果不一致。
- 2.例如, 影响上大学, 除了高考分数外, 还有加分项等。
模糊断点附近的局部平均处理效应(Local average treatment effect,记为LATE)
假定,给定,则
3. 断点回归建模步骤
- 输入数据
- 描述性分析
- 若是横截面数据, 请跳过此步。( 面板单位根检验( 一般T>=20,T较小,单位根检验方法功效低。) 若变量平稳,进行如下操作,)
-
分析样本是否满足断点回归的条件。
理论操作流程图
精确断点回归与模糊断点回归如何选择
- g newwin=(d>=0)
- tabulate newwin win
- 或者
- gen xw=newwin-win
- list xw
- 此处, 分组变量d的断点是0, 生成新虚拟变量newwin
- 因此, 若newwin与处理变量win完全相等(newwin-win全部为0) 则属于精确断点回归; 否则, 属于模糊断点回归。 见下图。
新变量匹配情况
精确断点回归的建议
① 分别汇报三角核与矩形核的局部线性回归结果
② 分别汇报使用不同带宽的结果
③ 分别汇报(不) 包括协变量的情形
④ 进行模型设定检验, 包括检验分组变量、 协变量的条件密度在断点处,是否连续。
4. 断点回归模型【Stata具体操作】
* ssc install rd, replace /----安装rd命令包------/
------------------------------rd------------------------------------
rd outcomevar [treatmentvar] assignmentvar [if] [in] [weight] [, options]
outcomevar :结果变量。
treatmentvar :处理变量。若忽略处理变量treatmentvar,则默认为【精确断点】回归,
且根据分组变量assignmentvar来计算处理变量,
若assignmentvar>=z0,则treatmentvar=1,反之等于0。
assignmentvar :分组变量 Z。
----选项----
mbw(numlist) :指定最优窗宽的倍数,默认为mbw(100,50,200),即最优窗宽的1,0.5,2倍
进行局部线性回归。
z0(real) :断点位置,默认为z0(0),即原点。
strineq :当assignmentvar严格大于z0时,treatmentvar=1,反之等于0。
covar(varlist) :指定加入局部线性回归的控制变量。
x(varlist) :检验这些控制变量在断点处是否存在跳跃。
ddens :要求计算分组变量Z密度的断点。
s(stubname) :要求估计结果保存为以stubname为开头的新变量。
graph :根据所选的每一窗宽,画出对应的局部线性回归图。
noscatter :不画散点图。
cluster(varlist) :方差协方差稳健估计。
scopt(string) :为散点图提供选项列表。
lineopt(string) :为多个重叠的直线提供选项列表。
n(real) :指定在计算局部线性回归的点的个数。
bwidth(real) :局部线性回归的窗宽。默认使用Imbens and Kalyanaraman (2009)给出的最优窗宽估计。
bdep :画断点回归估计量与窗宽的图形,分析断点回归估计量对窗宽的依赖程度。
oxline :在bdep画出的图的最优窗宽上画一条直线,方便识别。
bingraph :画箱图而非散点图。
binvar(varname) :指定变量取计算箱(binned means)。
kernel(rectangle) :使用矩形核(均匀核),默认使用三角核。
-----------------------------------------------------------------------------*/
McCrary(2008)检验分组变量的密度函数在断点处是否连续。
依此判断,是否为【内生分组】问题。
【注意】需要安装DCdensity命令包,
用sysdir找到系统位置,并复制到C:\ado\plus----
- 下载地址:https://eml.berkeley.edu/~jmccrary/DCdensity/
DCdensity d, breakpoint(0) generate(Xj Yj r0 fhat se_fhat) graphname(testrd.eps)
- 若不拒绝原假设,说明无内生分组,可以考虑进行断点回归;
- 否则,不可进行断点回归。
- 此处,检验不存在内生分组,故【继续】下面的操作。
- 4.1判断是【精确断点】回归还是【模糊断点】回归?
g newwin=(d>=0)
tabulate newwin win
*或者,等价于
gen xw=newwin-win
l xw
| Dem Won Race
newwin | 0 1 | Total
-----------+----------------------+----------
0 | 131 0 | 131
1 | 0 218 | 218
-----------+----------------------+----------
Total | 131 218 | 349
此处,分组变量d的断点是0,生成新虚拟变量newwin
因此,若newwin与处理变量win完全相等(即newwin-win全部等于0),则属于精确断点回归;否则,属于模糊断点回归。
此处,是【精确断点】回归,故【继续】下面的操作。
- 4.2选择最优窗宽:设置不同窗宽,通过图形选择
- 注意:选择最优窗宽时,可以考虑加协变量进行选择。大家自己尝试。从默认的3种窗宽mbw(100,50,200)中,选一个最优的。
rd lne d, gr bdep oxline
1倍带宽
0.5倍带宽
2倍带宽
最优带宽
- 4.3检验协变量是否在断点处,存在跳跃
rd lne d, mbw(105) x(i votpop black blucllr ///
farmer fedwrkr forborn manuf unemplyd union ///
urban veterans)
Two variables specified; treatment is
assumed to jump from zero to one at Z=0.
Assignment variable Z is d
Treatment variable X_T unspecified
Outcome variable y is lne
Estimating for bandwidth .29287775925349
Estimating for bandwidth .3075216472161645
------------------------------------------------------------------------------
lne | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
i | -.0044941 .1208008 -0.04 0.970 -.2412592 .2322711
votpop | -.0082128 .0062347 -1.32 0.188 -.0204326 .0040071
black | -.0036113 .020048 -0.18 0.857 -.0429046 .0356821
blucllr | .0026193 .0057316 0.46 0.648 -.0086144 .013853
farmer | -.0078737 .0037566 -2.10 0.036 -.0152366 -.0005109
fedwrkr | .0001617 .0037584 0.04 0.966 -.0072046 .0075281
forborn | -.015235 .0120682 -1.26 0.207 -.0388882 .0084183
manuf | .0147223 .0100352 1.47 0.142 -.0049463 .0343908
unemplyd | -.0007393 .0019069 -0.39 0.698 -.0044769 .0029982
union | -2.25e-06 3.66e-06 -0.61 0.540 -9.43e-06 4.94e-06
urban | .0370978 .0559882 0.66 0.508 -.072637 .1468326
veterans | .0015796 .0036205 0.44 0.663 -.0055164 .0086756
lwald | -.0773955 .1056062 -0.73 0.464 -.28438 .1295889
i105 | .0005436 .1182977 0.00 0.996 -.2313157 .2324029
votpop105 | -.0085126 .0061902 -1.38 0.169 -.0206451 .0036198
black105 | -.0062817 .0198615 -0.32 0.752 -.0452096 .0326461
blucllr105 | .0028461 .0056454 0.50 0.614 -.0082187 .0139109
farmer105 | -.007813 .0036862 -2.12 0.034 -.0150379 -.0005881
fedwrkr105 | .0002194 .0036927 0.06 0.953 -.0070181 .007457
forborn105 | -.0158846 .0120652 -1.32 0.188 -.039532 .0077628
manuf105 | .0152231 .0098664 1.54 0.123 -.0041146 .0345609
unemplyd105 | -.0007823 .0018752 -0.42 0.677 -.0044577 .0028931
union105 | -2.27e-06 3.62e-06 -0.63 0.529 -9.36e-06 4.81e-06
urban105 | .0363479 .0549041 0.66 0.508 -.0712622 .143958
veterans105 | .0017615 .0035538 0.50 0.620 -.0052038 .0087268
lwald105 | -.0764121 .1035813 -0.74 0.461 -.2794277 .1266035
------------------------------------------------------------------------------
- 检验结果表明,变量farmer的P值小于0.05,说明变量farmer在断点处存在跳跃,故剔除(注意内生性问题)。故,【继续】下面的操作。
rd lne d, mbw(25(5)300) cov(i votpop black blucllr ///
fedwrkr forborn manuf unemplyd union ///
urban veterans) bdep ox
加入协变量后最优带宽
此处,最优窗宽是105,选100也可以的。
- 4.4【含协变量】的断点回归
rd lne d, gr mbw(100) covar(i votpop black blucllr ///
fedwrkr forborn manuf unemplyd union ///
urban veterans)
Two variables specified; treatment is
assumed to jump from zero to one at Z=0.
Assignment variable Z is d
Treatment variable X_T unspecified
Outcome variable y is lne
Command used for graph: lpoly; Kernel used: triangle (default)
Bandwidth: .29287776; loc Wald Estimate: -.07739553
Estimating for bandwidth .29287775925349
------------------------------------------------------------------------------
lne | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lwald | .0253914 .0957051 0.27 0.791 -.1621871 .2129699
------------------------------------------------------------------------------
estimates store RD1
* 将窗宽mbw(100,105)对应的情形都估计一遍。默认三角核
rd lne d, mbw(105) covar(i votpop black blucllr ///
fedwrkr forborn manuf unemplyd union ///
urban veterans)
estimates store RD2
Two variables specified; treatment is
assumed to jump from zero to one at Z=0.
Assignment variable Z is d
Treatment variable X_T unspecified
Outcome variable y is lne
Estimating for bandwidth .29287775925349
Estimating for bandwidth .3075216472161645
------------------------------------------------------------------------------
lne | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lwald | .0253914 .0957051 0.27 0.791 -.1621871 .2129699
lwald105 | .0286942 .0941935 0.30 0.761 -.1559216 .2133101
------------------------------------------------------------------------------
* 将窗宽mbw(100,105)对应的情形都估计一遍。矩形核
rd lne d, mbw(105) covar(i votpop black blucllr ///
fedwrkr forborn manuf unemplyd union ///
urban veterans) kernel(rectangle)
estimates store RD3
Two variables specified; treatment is
assumed to jump from zero to one at Z=0.
Assignment variable Z is d
Treatment variable X_T unspecified
Outcome variable y is lne
Estimating for bandwidth .2300421672681958
Estimating for bandwidth .2415442756316056
------------------------------------------------------------------------------
lne | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
lwald | .0807209 .0965759 0.84 0.403 -.1085644 .2700063
lwald105 | .0801577 .094423 0.85 0.396 -.1049079 .2652233
------------------------------------------------------------------------------
三种情形回归结果汇总
esttab RD1 RD2 RD3 using testrd1.doc, ar2(%8.4f) se(%8.4f) nogap brackets aic bic mtitles replace
------------------------------------------------------------
(1) (2) (3)
RD1 RD2 RD3
------------------------------------------------------------
lwald 0.0254 0.0254 0.0807
[0.0957] [0.0957] [0.0966]
lwald105 0.0287 0.0802
[0.0942] [0.0944]
------------------------------------------------------------
N 349 349 349
adj. R-sq
AIC . . .
BIC . . .
------------------------------------------------------------
Standard errors in brackets
* p<0.05, ** p<0.01, *** p<0.001
网友评论