Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:张迪 (中南财经政法大学)
邮箱:zhangdi_16@126.com
编者按:本文主要摘译自下文,特此致谢!
Source:Cattaneo M D, Frandsen B R, Titiunik R. Randomization inference in the regression discontinuity design: An application to party advantages in the US Senate[J]. Journal of Causal Inference, 2015, 3(1): 1-24. -PDF- -Replication1- -Replication2- -Replication3-
目录
作者认为,断点回归 (Regression Discontinuity,RD) 是一种局部随机实验。它的一个重要假设是协变量在断点周围保持连续变化,在此基础上,断点处接受干预的概率跳跃即为处理效应。该结论是在局部随机假设成立的情况下得出,但是尚未有研究证明局部连续性的存在。本文贡献如下:
RDD 模型需要三个要件:
RDD 又分为精确 RDD 和模糊 RDD。精确 RDD (Sharp Regression Discontinuity,SRD) 是指在断点值附近,个体受到干预的概率由
文章中各个数学符号含义如下:
符号 | Description | 案例中的含义 |
---|---|---|
第 |
||
样本 |
民主党在 |
|
集合 |
- | |
断点值。 | - | |
样本 |
- | |
样本 |
- | |
干预状态指标,有 |
政党选举是否受到在任的影响。 |
假设 1 局部随机假设:存在一个邻域
其中,
假设 1 的数学含义:
假设 1 在本案例中的解释:在断点周围的一个小窗口中,只有在
假设 1 存在的问题:大多数情况下,假设 1 只在断点附近的小窗口范围内适用,即适合于只有少量的观测样本。为了解决该问题,本文进一步提出了精确 RDD 的随机化方法。
根据假设 1,首先需要确定干预指标
伯努利随机分配机制:干预变量
伯努利随机分配机制的存在问题:一是随机分布取决于参数
固定边际随机机制:固定边际随机机制 (fixed-margins randomization) ,即窗口内处理组的样本数固定为
检验统计量需要确定原假设和检验统计量的分布。
在选择随机机制后,可以在假设 1 下检验零处理效应的精确 RDD 原假设 (原假设 H0:分组变量的概率密度函数在断点初处连续),这意味着无论干预指标
可使用的检验统计量包括均值差异检验、K-S 检验和分位差检验等。一般情况下,大样本的不同的检验统计量的结果相近,假设 1 成立的情况下,小样本的不同检验统计量的结果也相近,这后面的分析中会用到这一点。检验统计量
置信区间和处理效应的点估计需要另外的假设。
假设 2 局部稳健假设:对于满足
假设 2 的数学含义:
确定的置信区间用
分位数处理效应为
假设 3 局部不变的处理效应模型:对于满足
假设 3 的数学含义:结合假设 1、假设 2,并假设
设检验统计量为
假设 1 中涉及到窗口
检验协变量在断点处是否存在跳跃,若是存在跳跃,说明该协变量的条件密度函数在断点处不是连续的,需要剔除。如果协变量在断点处连续,则可以用于 RDD。假设 1 成立的窗口
假设样本
如果在给定的窗口中,精确 RDD 原假设被拒绝,则该窗口严格大于
从最大的窗口开始,对协变量的连续性做检验,然后依次缩小窗口大小,直至无法拒原假设,使得窗口内的协变量都是连续的。
设协变量的集合为
假设 4 协变量的零处理效应假设:对于满足
假设 4 的数学含义:对于
接下来需要证明窗口
假设 5
假设 5 的数学含义:
具体的窗口选择过程总结如下:选择一个统计量
实施上面提出的程序需要三个部分:检验统计量、最小样本量
选择检验统计量:零处理效应的精确 RDD 原假设可以使用不同的检验统计量,如均值差异检验、Wilcoxon秩和检验、K-S检验,因为它们中的随机分布是已知的。本文采用均值差异检验统计量。
选择最小样本量:设定最小样本量的主要目标是防止在最小可能的窗口中进行假设检验时,观测值过少。本文建议设置
检验方法和显著性水平
美国参议院的任期是 6 年,有 100 个席位。参议院席位被划分为大致相同规模的三类 (第 I 类、第 II 类和第 III 类),每两年只有一类中的席位进行选举。每个州选举两名不同阶级的参议员。由于两名参议员属于不同阶级,每个州的参议院选举间隔为 2 年和 4 年。在两党制下,当一个政党在前一次选举中获得 50% 以上的选票时,享有执政地位,否则就失去了执政地位。这意味着:
结合上述背景,定义:
选举时间 | A 席位 | B 席位 | 设计和结果 |
---|---|---|---|
举行选举,P 政党的 C 候选人当选 | 不举行选举 | - | |
不举行选举 | 举行选举,C 不参与 | 设计 II:P 在 |
|
举行选举,C 是或不是 P 政党的候选人 | 不举行选举 | 设计 I:P 在 |
研究问题:先前在任地位是否可以转化为选举的在任优势。模型设定如下:
设定 | 计量符号 | |
---|---|---|
样本 | ||
样本值 | 在选举 |
|
断点值 | 50% | |
干预状态 | 在 |
|
潜在结果 | 政党在接下来选举中的选票率 |
根据上面的模型设定,本研究将勉强赢得席位的州和勉强输掉席位的州作为实验组和对照组 (使用 “勉强” 这个词是因为在断点的领域内研究小样本),对比实验组和对照组在接下来的某次选举的情况,计算实验组选票率和对照组选票率之差 (即胜出的政党高于输了的政党的选票数),即本文的处理效应。
选用 1914 年至 2010 年的美国参议院选举数据。因为议员任期内离职,该空缺职位会被州长任命,直至下次选举时选出新议员,而且被任命的议员与离职的议员大多数情况下不同属于同一个政党,因此,研究中删除在 6 年任期内离职的议员数据。共有 1390 个观测值。
* 需要注意的是,在正式运行前,需要安装最新的命令
net install rdrobust, from(https://raw.githubusercontent.com/rdpackages/rdrobust/master/stata) replace
net install rdlocrand, from(https://raw.githubusercontent.com/rdpackages/rdlocrand/master/stata) replace
net install rddensity, from(https://raw.githubusercontent.com/rdpackages/rddensity/master/stata) replace
net install rdpower, from(https://raw.githubusercontent.com/rdpackages/rdpower/master/stata) replace
net install lpdensity, from(http://fmwww.bc.edu/RePEc/bocode/l) replace
. clear all
. set more off
. set linesize 200
. use senate.dta, clear // 链接:https://file.lianxh.cn/data/t/T_2021_PPRN-main.zip
. global x demmv
. global y2 demvoteshfor2
. global y1 demvoteshfor1
. global c = 0
. global cov presdemvoteshlag1 demvoteshlag1 demvoteshlag2 demwinprv1 demwinprv2 dmidterm dpresdem dopen
. gen T=. // T 干预变量
. replace T=0 if $x<0 & $x!=.
. replace T=1 if $x>=0 & $x!=.
. label var T "Democratic Win at t"
. order $x $y2 $y1 T
. sum $y2 $y1 $x $cov
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
demvoteshf~2 | 1,297 52.66627 18.12219 0 100
demvoteshf~1 | 1,341 52.41856 18.36641 0 100
demmv | 1,390 7.171159 34.32488 -100 100
presdemvot~1 | 1,387 46.11975 14.31701 0 97.03408
demvoteshl~1 | 1,349 52.69048 18.2706 0 100
-------------+---------------------------------------------------------
demvoteshl~2 | 1,308 52.86918 18.23913 0 100
demwinprv1 | 1,349 .5441067 .4982355 0 1
demwinprv2 | 1,308 .543578 .4982879 0 1
dmidterm | 1,390 .5136691 .499993 0 1
dpresdem | 1,390 .3884892 .4875822 0 1
-------------+---------------------------------------------------------
dopen | 1,380 .2471014 .4314826 0 1
. ttest $y2, by(T)
Two-sample t test with equal variances
------------------------------------------------------------------------------
Group | Obs Mean Std. err. Std. dev. [95% conf. interval]
---------+--------------------------------------------------------------------
0 | 595 40.92053 .4989536 12.17079 39.9406 41.90045
1 | 702 62.6217 .6147484 16.28793 61.41474 63.82867
---------+--------------------------------------------------------------------
Combined | 1,297 52.66627 .5032002 18.12219 51.67909 53.65344
---------+--------------------------------------------------------------------
diff | -21.70118 .810499 -23.29121 -20.11114
------------------------------------------------------------------------------
diff = mean(0) - mean(1) t = -26.7751
H0: diff = 0 Degrees of freedom = 1295
Ha: diff < 0 Ha: diff != 0 Ha: diff > 0
Pr(T < t) = 0.0000 Pr(|T| > |t|) = 0.0000 Pr(T > t) = 1.0000
. ttest $y1, by(T)
Two-sample t test with equal variances
------------------------------------------------------------------------------
Group | Obs Mean Std. err. Std. dev. [95% conf. interval]
---------+--------------------------------------------------------------------
0 | 610 44.59452 .5748448 14.19762 43.4656 45.72344
1 | 731 58.94751 .6990316 18.89973 57.57516 60.31986
---------+--------------------------------------------------------------------
Combined | 1,341 52.41856 .5015448 18.36641 51.43466 53.40246
---------+--------------------------------------------------------------------
diff | -14.35299 .9280913 -16.17366 -12.53232
------------------------------------------------------------------------------
diff = mean(0) - mean(1) t = -15.4651
H0: diff = 0 Degrees of freedom = 1339
Ha: diff < 0 Ha: diff != 0 Ha: diff > 0
Pr(T < t) = 0.0000 Pr(|T| > |t|) = 0.0000 Pr(T > t) = 1.0000
对被解释变量 y1、 y2 做 rdplot $y1 $x, c($c) p(1)
。
根据前文所说的协变量选择法进行窗口选择。步骤如下:
第一,窗口设置。 根据描述性统计结果,所有的样本值最大为 100,最小为 -100,因此设最大的窗口为
第二,窗口增量设置和协变量。 以 0.125% 的增量,在
变量 | 解释 |
---|---|
presdemvoteshlag1 | |
demvoteshlag1 | |
demvoteshlag2 | |
demwinprv1 | |
demwinprv2 | |
dopen | |
dmidterm | |
dpresdem |
第三,显著性水平设置、检验统计量的选择和随机分配机制。
. rdwinselect $x $cov, cutoff($c) wmin(0.5) wstep(0.125) reps(10000) nwin(797) ///
> approximate plot // 797 是从 [-0.05,0.05] 到 [-100,100] 的 0.125 增量的所有窗口
Window selection for RD under local randomization
Cutoff c = 0.00 | Left of c Right of c Number of obs = 1390
------------------+----------------------- Order of poly = 0
Number of obs | 640 750 Kernel type = uniform
1st percentile | 6 7 Reps = .
5th percentile | 32 37 Testing method = approximate
10th percentile | 64 75 Balance test = diffmeans
20th percentile | 128 150
| Bal. test Var. name Bin. test
Window | p-value (min p-value) p-value Obs<c Obs>=c
------------------+-------------------------------------------------------------
-0.500| 0.500 | 0.205 dopen 0.230 9 16
-0.625| 0.625 | 0.306 dopen 0.377 13 19
-0.750| 0.750 | 0.260 dopen 0.200 15 24
...
-99.750| 99.750 | 0.000 demwinprv2 0.113 597 654
-99.875| 99.875 | 0.000 demwinprv2 0.107 598 656
-100.000| 100.000 | 0.000 demwinprv2 0.007 600 698
Variable used in binomial test (running variable): demmv
Covariates used in balance test: presdemvoteshlag1 demvoteshlag1 demvoteshlag2 d
> emwinprv1 demwinprv2 dmidterm dpresdem dopen
Recommended window is [-0.750; 0.750] with 39 observations (15 below, 24 above).
根据前面的设定,协变量检验从最小窗口 rdwinselect
命令画出图 1,并推荐了窗口
图 1 是窗口选择的结果。x 轴为
前面设定 rdwinselect
命令推荐的窗口一致。
窗口选择过程表明,假设 1 在窗口
由于篇幅限制,此处只给出了
. * 局部多项式
. * 参数估计:四阶局部多项式点估计
. rdrobust $y1 $x, c($c) p(4) h(abs(-100) 100) kernel(uniform) // t+1时
. rdrobust $y2 $x, c($c) p(4) h(abs(-100) 100) kernel(uniform) // t+2时
Sharp RD estimates using local polynomial regression.
Cutoff c = 0 | Left of c Right of c Number of obs = 1297
-------------------+---------------------- BW type = Manual
Number of obs | 595 702 Kernel = Uniform
Eff. Number of obs | 595 702 VCE method = NN
Order est. (p) | 4 4
Order bias (q) | 5 5
BW est. (h) | 100.000 100.000
BW bias (b) | 100.000 100.000
rho (h/b) | 1.000 1.000
Outcome: demvoteshfor2. Running variable: demmv.
--------------------------------------------------------------------------------
Method | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------------+------------------------------------------------------------
Conventional | 9.4071 1.6928 5.5570 0.000 6.08916 12.725
Robust | - - 4.0211 0.000 4.07894 11.8365
--------------------------------------------------------------------------------
. * 非参数估计:局部多项式非参数点估计
. rdrobust $y1 $x, c($c) kernel(triangular) bwselect(mserd) all // t+1时
. rdrobust $y2 $x, c($c) kernel(triangular) bwselect(mserd) all // t+2时
Sharp RD estimates using local polynomial regression.
Cutoff c = 0 | Left of c Right of c Number of obs = 1297
-------------------+---------------------- BW type = mserd
Number of obs | 595 702 Kernel = Triangular
Eff. Number of obs | 360 323 VCE method = NN
Order est. (p) | 1 1
Order bias (q) | 2 2
BW est. (h) | 17.754 17.754
BW bias (b) | 28.028 28.028
rho (h/b) | 0.633 0.633
Outcome: demvoteshfor2. Running variable: demmv.
--------------------------------------------------------------------------------
Method | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------------+------------------------------------------------------------
Conventional | 7.4141 1.4587 5.0826 0.000 4.5551 10.2732
Bias-corrected | 7.5065 1.4587 5.1460 0.000 4.64747 10.3655
Robust | 7.5065 1.7413 4.3110 0.000 4.0937 10.9193
--------------------------------------------------------------------------------
. * 随机化方法
. * 最优带宽选择
. rdwinselect $x $cov, cutoff($c) wmin(0.5) wstep(0.125) reps(10000) nwin(797) ///
> approximate plot // 797 是从 [-0.05,0.05] 到 [-100,100] 的 0.125 增量的所有窗口
. * 基于所选带宽的随机化估计
. global window = 0.75
. rdrandinf $y1 $x, cutoff($c) wl(-$window) wr($window) reps(10000) interfci(0.15) ci(0.05) // t+1时
. rdrandinf $y2 $x, cutoff($c) wl(-$window) wr($window) reps(10000) interfci(0.15) ci(0.05) // t+2时
Selected window = [-.75 ; .75]
Running randomization-based test...
Randomization-based test complete.
Inference for sharp design
Cutoff c = 0.00 | Left of c Right of c Number of obs = 1297
------------------+----------------------- Order of poly = 0
Number of obs| 595 702 Kernel type = uniform
Eff. Number of obs| 15 22 Reps = 10000
Mean of outcome| 42.808 52.497 Window = set by user
S.D. of outcome| 7.042 7.742 H0: tau = 0.000
Window| -0.750 0.750 Randomization = fixed margins
Outcome: demvoteshfor2. Running variable: demmv.
--------------------------------------------------------------------------------
| Finite sample Large sample
| --------------- -------------------------------
Statistic| T P>|T| P>|T| Power vs d = 3.52
------------------+-------------------------------------------------------------
Diff. in means| 9.689 0.000 0.000 0.300
--------------------------------------------------------------------------------
Calculating confidence interval...
Confidence interval for w = [ -0.750 , 0.750]
------------------------------------------
Statistic| [95% Conf. Interval]
------------------+-----------------------
Diff. in means| 4.790 14.590
------------------------------------------
表 3 对比了我们的随机化方法的结果和两种经典方法获得的结果。列 (1) 报告了四参数拟合的回归结果;列 (2) 报告了三角核函数的非参数局部线性回归结果,用均方差误 (MSE) 选择最优带宽;列 (3) 报告了本研究提出地随机化方法的政党优势估计和检验,其中,选择的窗口是前文所分析的
面板 A 展示了设计 I 中在任党优势的结果,被解释变量是民主党在
面板 A 的第一行中的点估计值显示,标准 RD 方法认为在任党优势效应约为 7 至 9 个百分点,而随机化方法认为有 9 个百分点,而且三种方法的
面板 B 的结果也表明反对党优势效应约为 0.35-0.64,较小而且均不显著,因此无法拒绝零处理效应的假设,认为美国参议院选举中不存在反对党优势。而随机化方法的点估计为负数,也不显著,表明反对党优势或许不存在。
回归分析结果表明,标准 RDD 方法使用远离断点的数百个观测值进行局部或全局估计,估计的结果与随机化方法分析所使用的 38 个小样本估计结果基本一致。结论通过图 2 进一步得到证明。
图 2 设计 I 的两图是在
图 2 设计 II 的两图是在