Stata:断点回归(RDD)中的平滑性检验
作者:李鑫 (云南⼤学)
连享会 - 与君分享
Stata连享会  || ||
扫码查看连享会最新专题、公开课视频和 100 多个码云计量仓库链接。
连享会 RDD 专题⽂章:
⽂章⽬录
1. 背景
断点回归 ( RDD ) 已经成为当前微观计量经济学分析政策效果的重要⼿段,⽽样本的随机分配被认为是该项⼯作的黄⾦律。因为只有样本在临界值 ( cut-point ) 的领域范围内是随机分布的,那么模型估计在临界值处的平均因果效应 ( ATE ) 才是政策实施对于处理组和控制组之间的差异的⽆偏估计值。
然⽽,在现实经验研究中,样本的随机分配往往难以得到满⾜,经常出现样本分配机制⼈为⼲预现象。
例如,学校开展对于期末考试分数低于某⼀值的学⽣进⾏强制的暑期培训,如果学⽣们提前知道这个分数值 ( 如 60 分 ),那么原本考试成绩在这个分数值附近的学⽣就会加倍努⼒或与⽼师套近乎 (寻租) ⽽通过考试,避免参加暑期培训项⽬。这意味着通过考试的学⽣数量会在断点 ( 60 分 ) 右侧有⼀个数量上的明显上升,致使评价参加暑期培训是否能够提⾼学⽣的考试成绩的平均因果效应 ( ATE ) 存在偏差。
下⾯,我们通过模拟数据的形式来展现样本在临界值处有⼈为⼲预的现象。
在 figure1(a) 中,样本分配不存在⼈为⼲预,即学⽣事前并不知道低于 60 分将参加学校组织的暑期培
训班项⽬,那么在分配变量 (考试分数) 的直⽅图中不存在明显的样本数量在临界值 (60 分) 处任意⼀侧样本数量的出现巨⼤的波动。
在 figure1(b) 中,我们通过⼈为改变样本数,模拟样本的认为⼲预现象,即学⽣事前知道低
于 60 分将必须参加学校组织的暑期培训项⽬,那么分配变量 (考试分数) 的直⽅图中在临界值 (60 分) 右侧将出现较⾼的学⽣数,⽽在临界值 (60 分) 左侧的学⽣数⼤幅度下降,出现明显的跳跃现象。
2. 检验⼯具
因此,在断点回归中,检验样本是否随机分配,即分配变量密度函数的连续性,将有助于判断政策效应估计的有效性。
下⾯,我们通过使⽤ David S. Lee (2007,) 关于参议院选举的样本数据,分析三种不同的⼯具检验样本是否存在⼈为⼲预的现象。其中,该数据中民主党获胜的票数差 margin 为分配变量,临界值为 margin=0。
Note: 后⾯分析需要使⽤ rdrobust 命令对应的相关程序和数据,请执⾏如下两条命令下载外部命令 (默认存储于 …\ado\plus ⽂件夹下) 和相关数据 (默认存储于当前⼯作路径下,下载完成后输⼊ cd 可以查看当前路径地址;输⼊ dir 可以查看当前⼯作路径下的⽂件):
. net install st0366_1.pkg, replace //rdrobust外部命令
. net get    st0366_1.pkg, replace //rdrobust相关数据
2.1 使⽤ histogram 命令
最简单直接的⽅法便是使⽤ histogram 命令绘制分配变量的直⽅图,以图⽰观测断点处的频数变动和断点两侧的变动情况。
优点: 其操作简单、直观。
缺点: 直⽅图在不同组间距中的样本数量的不同,使得很难直观上观测到连续性。
*----------使⽤直⽅图显⽰分配变量的连续性 figure2 ------
*-使⽤ David S.Lee (2007) 参议院选举的数据
use "gitee/arlionn/data/raw/master/data01/rdrobust_rdsenate.dta", clear
*use "rdrobust_senate.dta", clear
#d ;
histogram margin,
lcolor(brown) fcolor(gs16)
title("Senate_selection")
xtitle("margin")
note("figure2");
#d cr
从 figure2 中可以看出,分配变量 (民主党获胜票数差) 在临界值 (margin=0) 处两侧没有明显的数量波动,表明分配变量密度函数在临界值处是连续函数。
2.2 使⽤ McGrary ⽅法
DCdensity 命令是由 McCrary (2006) 提出来⽤于检验分配变量在临界值处是否连续,即样本在临界值处是否存在⼈为⼲预现象。主要⽅法如下:
(1) ⽣成分配变量的密度直⽅图,确保临界值不会被直⽅图所覆盖;
(2) 在临界值左右两侧,分别进⾏局部的线性回归。其中因变量是组内频数,⾃变量是组间距的中间值;
(3) 检验临界值两侧的拟合值的差的对数值是否显著不为零。
优点:
该命令相对于绘制直⽅图,绘制出较为平滑的核密度曲线图以及置信区间,能够直观的现实分配变量在断点处的连续性。
缺点:
(1) 该命令所使⽤的核密度函数的带宽 (bandwith) 并不是使⽤交互验证或者是插⼊法确定的最优带宽选择,⽽是由其编写的默认公式
所确定,因此在整体断点回归中使⽤不同带宽⽆法有效地证明其分配变量的连续性。
(2) 如果存在某种⼲预模式使得⾼于临界值点和低于临界值点处的样本数量相同,那么该命令⽆法有效识别该类分配变量的跳跃。
(3) 图形⽆法进⾏注释修饰。
McGrary (2006) 分配变量密度函数连续检验的基本命令为 DCdensity , 其基本语法格式如下:
DCdensity varlist [if] [in] [weight] [, options]
其中,主要选项如下
varlist: 分配变量
breakpoint(): 分配变量临界值处
b(): 指定特定带宽值
generate(): ⽣成新的参数变量
graphname(): 保存图形
举例
*----------使⽤ McGray (2006) 命令 figure3 ----------------
. DCdensity margin, breakpoint(0) gen(Xj Yj r0 fhat se_fhat)
Discontinuity estimate (log difference in height): -.100745626
(.117145041)
. return list
scalars:
r(bandwidth) =  25.84938346120713
r(binsize) =  1.841330210610218
r(se) =  .117145040900551
r(theta) =  -.1007456257891786
从 figure3 中可以看到,尽管在临界值两侧的密度函数存在跳跃,但置信区间在此处重叠,表明在临界值两侧的分配变量 (民主党获胜票数差) 密度函数是连续函数。并且临界值处估计的对数样本数差 [r(theta)] 不显著,证明不存分配变量 (民主党获胜票数差) 的⼈为⼲预。
2.3 使⽤ rdcont 命令
相对于前⽂介绍的命令,rdcont 能够有效地克服由于断点处局部⼩样本的因素所导致对于密度函数连续性检验的影响。 rdcont 通过构造⼀个 g 阶的统计量来实现检验,其易于实现,较其他⽅法使⽤能够在更弱的条件下渐近有效,在⽐其渐近有效性所需的条件更强的条件下显⽰出有效样本。
优点: (1) 操作简单,对于样本数量没有限制;(2) 在估计过程中,不涉及核密度函数、局部多项式、偏差修正、密度函数最优带宽的选择等问题。
rdcont 命令的基本语法格式如下:
rdcont running_var [if] [in], [options]
其中:
running_var: 分配变量
alpha(): 指定⽤于计算最佳带宽的临界值
threshold(): 指定测试的临界值
bootstrap检验方法qband(): 指定特定的带宽值
Stata 范例:
*----------使⽤ rdcont 命令 table1 ----------------------
. rdcont margin, threshold(0)
RDD non-randomized approximate sign test
Running variable: margin
Cutoff c =      0 | Left of c  Right of c    Number of obverse = 1390
-------------------+----------------------                    q =  94
Number of obs |      640        750
Eff. number of obs |        46          48
Eff. neighborhood |    -1.743      1.824
-------------------+----------------------
p-value |    0.918
H0
原假设 :分配变量密度函数在临界值处是连续函数。
如上所⽰,断点回归在临界值处的样本⾮随机检验的 p-value 为 0.918 ,不能拒绝原假设,表明分配变量 (民主党获胜票数差) 密度函数在临界值处是连续函数,不存在⼈为⼲预。
3. 结语
这篇推⽂主要介绍了如何在 RDD 实证分析中进⾏平滑性检验,主要介绍了三种不同的检验⽅法。三种⽅法各有利弊,因此,在实际操作中分别使⽤进⽽实现相互验证。
4. 参考资料
(1) Lee D S. Randomized experiments from non-random selection in US House elections[J]. Journal of Econometrics, 2008, 142(2): 675-697.
(2) McCrary J. Manipulation of the running variable in the regression discontinuity design: A density test[J]. Journal of econometrics, 2008, 142(2): 698-714.
(3) Bugni F A, Canay I A. Testing Continuity of a Density via g-order statistics in the Regression Discontinuity Design[J]. arXiv preprint arXiv:1803.07951, 2018.
附:本⽂涉及的 Stata 代码