查看原文
其他

Stata:RDD-DID-断点回归与倍分法完美结合

连享会 连享会 2022-12-31

👇 连享会 · 推文导航 | www.lianxh.cn

作者: 张超 (中山大学)
邮箱: zhangchaooor@163.com


目录

  • 1. RDD-DID 简介

    • 1.1 RDD 简介

    • 1.2 DID 简介

    • 1.3 RD+DID 简介

  • 2. RDD-DID 分析

  • 3. stata实例

  • 4. 参考资料

  • 5. 相关推文



温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

Angrist 和 Pischke 在《精通计量:从原因到结果的探寻之旅》一书中指出计量经济学研究因果推断的 “盖世五侠” 为随机实验、回归、工具变量 (IV) 、回归断点设计 (RD) 以及双重差分 (DID) 。

上述因果识别方法的单个使用就可以帮助我们实现有效的因果识别,但是有些情况下,需要将其组合使用,如 DID-RDD, 下文首先简单介绍 DID 与 RDD 在不同研究场景下的使用,在此基础上介绍 RDD-DID。

1. RDD-DID 简介

1.1 RDD 简介

RDD 可以用来识别自然实验或结构性政策变化附近的局部处理效应。Thistlethwaite 和 Campbell (1960) 首次提出使用断点回归设计研究处理效应。他们的研究问题是奖学金对于未来学业的影响, 而学生是否获得奖学金取决于考试的分数。由于奖学金由学习成绩决定,故成绩刚好达到获奖标准与差一点达到的学生具有可比性。如果考试分数大于获奖标准分数, 则进入处理组;如果考试分数小于获奖标准分数, 则进入控制组。即获奖标准分数处形成了一个断点, 利用靠近这一断点附近的样本来有效估计处理效应,判断奖学金对未来学业的影响。

后续学者关于 RDD 的研究设计场景大开脑洞,在地理、时间等维度构造断点。地理断点方面,如 Dell (2010) 则通过比较殖民时期的强迫劳动制度—— mita 边界两侧的村庄,即一个属于 mita 的范围 (处理组) ,另一个不一个属于 mita 的范围 (对照组) ,观测 mita 对现代的影响。研究发现当年在 mita 范围内的村庄 (处理组) 在现在仍然比较贫穷。国内关于地理断点的研究场景如利用地表水水质监测站点带来的空间断点,估计了环境监管对企业生产率的影响 (He et al., 2020)  , 根据淮河南北采取不同的取暖政策 (淮河以北集中供暖、淮河以南不集中供暖) 来识别长期暴露于空气污染对居民预期寿命的的影响 (Chen et al., 2013) 。

时间断点方面,如中国所有火电厂在同一天的同一个时刻装上某一种除硫设施,这样就能够通过比较在这一时间点前后空气质量的差异来衡量这一政策对空气质量的影响;Chen 等 (2019)  则利用 2017 年 8 月济南市政府取消了买房面积超过90平方米可以落户的规定,进而估算户口的价值。

1.2 DID 简介

一般的 DID 设计是基于个体—时间这两个维度差异构建进行因果识别,以国内场景为例,如农业税改革 (陈晓光,2016) 、省直管县 (李广众和贾凡胜,2020) 、环保法庭的设立 (范子英和赵仁杰,2019) 等。

但是也有基于其他维度,如 Shihe Fu and Yizhen Gu (2017) 则基于年度-月 (日) 度双重时间差异测算国庆节高速免费对空气污染的影响。2012 年 7 月中国政府宣布节假日小轿车免费通行,因此作者以 2012 年 9 月 30 日- 10 月 7 日全国 98 个城市国庆免费通行的准自然实验,以去年国庆节同期作为参考组,评价了取消收费政策对空气质量的影响。

1.3 RD+DID 简介

当 RD+DID 时,则是利用年度和月度两个维度的差异 (当然也可以脑洞其他两个维度的组合) , 识别假设允许核心解释变量之外的其他协变量在改革日期前后出现跳跃。如 Persson 和 Rossin-Slater (2019) 在识别父亲的工作灵活性是否可以显著改善母亲的产后健康,则是依据 2012 年 1 月 1 日瑞典政府出台的父亲间歇性的育儿假  (‘Double Day’) 这一政策。

从 RDD 研究设计的视角看,可以类比上文提到的 Chen 等 (2019) 关于估算户口价值的论文,可以通过估计 2012 年 1 月 1 日前后三个月 ( RDD 的带宽) 的产子的母亲的心理健康差异,识别这一问题。但是如果前三个月 (10-12月) 的季节是冬天,而后三个月的季节 (1-3月) 是春天,而假设人们在冬天心情不好而在春天心情好,那么这一系统系差异则会影响仅仅根据 RDD 估计的处理效应。(Note: 此处,有关「冬天心情遭,春天心情好」的假设是推文作者自己为了解释系统性差异而引入的,论文原文中并没有这个表述)

从 DID 研究设计的视角看,这种全国一刀切的政策,可以类比上文提到的 Shihe Fu and Yizhen Gu  (2017) 基于年度-月(日)度双重时间差异测算国庆节高速免费对空气污染的影响。但是会受到遗漏变量的影响,传统的基于个体-时间两个维度的 DID 可能也不适用。

作者则将 RDD 和 DID 结合,通过比较估计 2012 年 1 月 1 日前后三个月 (处理组) 的产子的母亲的心理健康差异 (RD1),并通过与之前年份相同时间区间 (对照组组) 的心理健康差异 (RD2) 的差异 (DID),消除协变量在改革日期前后也出现跳跃的系统性差异。

梁平汉等 (2020) 在估算出口退税无纸化申报改革对企业出口行为的影响也采用了 RDD-DID 这一方法。由于论文中样本企业所在地区的无纸化改革的实施时间是  2017 年 9 月,因此可以观察这一时点前后企业出口的跳跃情况进而识别政策的经济效应。但是由于企业的月度出口受国外需求周期的影响,具有较强季节性,因此在一年中遵循一定周期性。而对于同一家企业, 可以将自己上一年的月度数据作为对照组,通过量化无纸化改革对同期月度出口绩效的影响准确识别其经济效应。

2. RDD-DID 分析

为了方便读者们理解和翻阅论文原文,我们在此以 梁平汉等 (2020) 的论文场景为例讲解 RDD-DID 。论文中出口退税的无纸化改革的实施时间是 2017 年 9 月,并选择 3 个月的带宽, 因此样本期间是 2017 年 6-11 月 (处理组),2016 年 6-11 月及 2015 年 6-11 月 (对照组)时间段。

具体的识别如下图所示 (此处处理组简化为 2016 年一年) 。

从图中可以看出,其实 RDD-DID 本质上就是相当于把 DID 中个体在冲击前后的差异由利用差分变为利用 RDD 估计 (第一个 Dif) , 然后用处理组的 RDD 估计得到的处理效应 (对应图 1 中的 RDD 处理效应 1 ) 减去对照组 RDD 估计得到的处理效应 (对应图 2 中的 RDD 处理效应 2 ) ,得到 Dif-in-Dif, 即真实的处理效应。

具体而言,模型设定如下

其中,

  • 表示企业 itd 月的出口额。
  • d 为企业出口额申报时间,是 RDD 的驱动变量。c 表示改革的月份 9 月。  为标记变量,如果申报时间在 9-11 月,则为 1 ;如果申报时间在 6-8 月,则为 0 。
  • 为处理组和对照组的识别变量,如果是 2017 年,则赋值为 1 ,否则赋值为 0 。
  • 是关于驱动变量的局部多项式函数。
  • 固定效应方面。 表示企业固定效应, 表示年份固定效应, 表示月度固定效应, 表示企业-年份份固定效应, 表示企业-月份固定效应。

我们关注的系数是,代表双重差异,第一重差异是 2017 年 9-11 月的出口额与 2017 年 6-8 月出口额的差异,第二重是处理组和对照组的差异,即 2017 年和其他年份的差异。

需要注意的是,此处 RDD-DID 设计要求是所有接受无纸化退税的企业 (才会在断点处跳跃) ,尽管梁老师论文中存在不享受无纸化退税的样本,但是这部分样本是不纳入 RDD-DID 分析的。

3. stata实例

由于梁老师的数据难以获取,我们生成一份模拟数据,数据存在一定的简化。具体数据结构为 60 个体 * 3 年 * 6 个月, 共 1080 个观测值的平衡面板数据,其中我们遵循原文设定,以 2017 年的 9 月为政策冲击年份

首先生成样本

// 设定 60 个观测值,设定随机数种子
clear all
brow
set obs 60
set seed 10101
gen id = _n

//每一个数值的数量扩大 3 倍,生成 60*3 = 180,为 60 个个体 3 年的面板数据
expand 3
sort id
count
bys id: gen year = _n+2014

//由于 RDD 的带宽为 3 个月,因此每个样本每年需要扩大 6 倍,即 180*6 = 1080 ,为 60 个个体 3 年 6 个月份的数据
expand 6
sort id year
count
bys id year: gen month= _n+5

// 生成协变量 x1,x2
gen x1 = rnormal(1,7)
gen x2 = rnormal(2,5)

// 生成固定效应
* 个体固定效应
sort year month id
bys year month: gen ID = _n
sort ID
* 年份固定效应
sort id month year
bys id month: gen Y = _n
sort Y
* 月份固定效应
sort id year month
bys id year: gen M = _n
sort M

// 生成 YPost MPost变量,以 2017 年 9 月为政策冲击年份,
* 月份跳跃前后的识别,即跳跃前 (6-8月) MPost为 0,跳跃后 (9-11月) MPost为 1
gen MPost = 0
replace MPost = 1 if month >= 9
tab month MPost //从下表可以看出,我们的月份和MPost的关系设定正确

| MPost
month | 0 1 | Total
-----------+----------------------+----------
6 | 180 0 | 180
7 | 180 0 | 180
8 | 180 0 | 180
9 | 0 180 | 180
10 | 0 180 | 180
11 | 0 180 | 180
-----------+----------------------+----------
Total | 540 540 | 1,080

* 年份识别变量,政策于 2017 年出台,出台前 YPost 为 0,出台当年 YPost 为 1
gen YPost = 0
replace YPost = 1 if year == 2017
tab year YPost //从下表可以看出,我们的年份和YPost的关系设定正确

| YPost
year | 0 1 | Total
-----------+----------------------+----------
2015 | 360 0 | 360
2016 | 360 0 | 360
2017 | 0 360 | 360
-----------+----------------------+----------
Total | 720 360 | 1,080

save RD_DID_sample.dta //我们将这些基础信息保存为一个数据文件

我们首先观察处理组 ( 2017 年) 和对照组 ( 2015 年、 2016 年) ,在 9 月前后的跳跃变化(即上文中提到第一个 Dif ),由于 RDD-DID 允许出现协变量引发的变化 (系统性差异的存在),因此我们在此允许 x1x2 在 9 月前后发生变化。

首先,我们观察对照组 ( 2015年、 2016 年)在断点 ( 9 月)  前后的变换。

use RD_DID_sample.dta, clear

// 生成被解释变量
// 由于 RDD-DID 允许出现协变量引发的变化,因此我们在此允许 x1 在 9 月后增加 1 个单位,x2 在 9 月后增加 2 个单位。

bys id year: gen y0 = 10 + 5*x1 +3*x2 + rnormal() if MPost==0 & YPost==0
bys id year: replace y0 = 10 + 5*(x1+1) +3*(x2+2) + rnormal() if MPost==1 & YPost==0

save RD_DID_sample.dta,replace

从上述 y0 的设定可以看出,我们应该观测到 9 月前后跳跃了 11 个单位(5 * 1 + 3 * 2 = 11),其中包括 x1 增加一个单位引发的变化 5 和 x2 增加一个单位引发的变化 6 。

use RD_DID_sample.dta, clear
areg y0 MPost x1 x2 i.M i.year if YPost==0, ab(ID ) vce(robust)
//从回归结果可以看出,MPost的系数为10.848,接近11

note: 6.M omitted because of collinearity

Linear regression, absorbing indicators Number of obs = 720
Absorbed variable: ID No. of categories = 60
F(8, 652) = 138753.76
Prob > F = 0.0000
R-squared = 0.9994
Adj R-squared = 0.9994
Root MSE = 0.9851
---------------------------------------------------------------------
| Robust
y0 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------+-------------------------------------------------------------
MPost | 10.84842 .1233064 87.98 0.000 10.6063 11.09055
x1 | 5.007873 .0051366 974.94 0.000 4.997787 5.017959
x2 | 2.993566 .0075459 396.72 0.000 2.978748 3.008383
|
M |
2 | -.1385908 .1215393 -1.14 0.255 -.3772466 .100065
3 | -.1391771 .1374009 -1.01 0.311 -.4089787 .1306246
4 | .0192871 .125654 0.15 0.878 -.2274483 .2660225
5 | .0274213 .1198433 0.23 0.819 -.2079042 .2627467
6 | 0 (omitted)
|
year |
2016 | -.098825 .0734967 -1.34 0.179 -.2431439 .0454938
|
_cons | 10.17572 .0990673 102.72 0.000 9.981186 10.37025
---------------------------------------------------------------------

其次,我们观察处理组  (2017 年) 在断点  (9 月)  前后的变换。

use RD_DID_sample.dta, clear
// 生成被解释变量
// 由于 RDD-DID 允许出现协变量引发的变化,因此我们在此允许 x1 在 9 月后增加 1 个单位,x2 在 9 月后增加 2 个单位。此外,政策冲击导致 Y 增加 5 个单位,
bys id year: gen y1 = 10 + 5*x1 +3*x2 +rnormal() if MPost==0 & YPost==1
bys id year: replace y1 = 10 + 5 + 5*(x1+1) +3*(x2+2) +rnormal() if MPost==1 & YPost==1

save RD_DID_sample.dta,replace

从上述 y0 的设定可以看出,我们应该观测到 9 月前后跳跃了 11 个单位(5 * 1 + 3 * 2 + 5 = 16),其中包括 x1 增加一个单位引发的变化 5 和 x2 增加一个单位引发的变化 6 ,以及政策冲击导致的 5 。


areg y1 MPost x1 x2 i.M if YPost==1, ab(ID ) vce(r)
//下表可以看出,MPost的系数为15.914,接近16

note: 6.M omitted because of collinearity

Linear regression, absorbing indicators Number of obs = 360
Absorbed variable: ID No. of categories = 60
F( 7, 293) = 57048.35
Prob > F = 0.0000
R-squared = 0.9994
Adj R-squared = 0.9993
Root MSE = 1.0256

---------------------------------------------------------------------
| Robust
y1 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------+-------------------------------------------------------------
MPost | 15.91433 .1878629 84.71 0.000 15.5446 16.28406
x1 | 5.010561 .0086649 578.26 0.000 4.993508 5.027614
x2 | 2.996086 .0114469 261.74 0.000 2.973557 3.018614
|
M |
2 | -.0627951 .2038922 -0.31 0.758 -.464074 .3384838
3 | .0912909 .2006643 0.45 0.649 -.3036352 .4862169
4 | -.1209243 .1728636 -0.70 0.485 -.4611359 .2192873
5 | .2545042 .1729513 1.47 0.142 -.0858801 .5948885
6 | 0 (omitted)
|
_cons | 9.947508 .147951 67.24 0.000 9.656327 10.23869
---------------------------------------------------------------------

我们知道,政策真实的处理效应为 5 , 但是如果仅仅针对政策当年使用断点识别,我们估计的处理效应为 16, 这是由于冲击时点前后 y 存在系统性差异 (11 =5 * 1 + 3 * 2  ) 导致的。

所以,我们可以通过用估计的处理效应 16 减去利用之前年份估计出的冲击前后的系统性差异 11 (  即 x1 增加一个单位引发的变化 5 和 x2 增加一个单位引发的变化 6 ,合计 11)得到真实的处理效应 5 ( 即 Dif-Dif ),这个可以通过构造交互项 YPost*MPost 实现 (类似于 DID 研究设定中的 Treat*Post ,其中 YPost 类比为 TreatMPost 类比为 Post,但是时间前后的差异是利用断点方法识别而非差分方法) 。

use RD_DID_sample.dta, clear
gen y = y0 if YPost==0
replace y = y1 if YPost==1

gen YPost_MPost = YPost*MPost
areg y MPost YPost_MPost x1 x2 c.x1#i.MPost c.x2#i.MPost i.M i.Y , ab(ID ) vce(r)
// YPost_MPost系数是我们关注的核心,类似于 DID 研究中的 Treat*Post,约等于 5 ,说明捕捉到了真实的改革处理效果

note: 6.M omitted because of collinearity

Linear regression, absorbing indicators Number of obs = 1,080
Absorbed variable: ID No. of categories = 60
F( 12, 1008) = 131182.72
Prob > F = 0.0000
R-squared = 0.9994
Adj R-squared = 0.9993
Root MSE = 0.9956

---------------------------------------------------------------------------
| Robust
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+-------------------------------------------------------------
MPost | 10.90144 .1133312 96.19 0.000 10.67905 11.12383
YPost_MPost | 5.01466 .1302858 38.49 0.000 4.758997 5.270322
x1 | 5.016943 .006198 809.45 0.000 5.00478 5.029105
x2 | 2.998538 .0092015 325.88 0.000 2.980482 3.016594
|
MPost#c.x1 |
1 | -.0229563 .0088027 -2.61 0.009 -.04023 -.0056827
|
MPost#c.x2 |
1 | -.004164 .0119499 -0.35 0.728 -.0276135 .0192855
|
M |
2 | -.1182666 .1045555 -1.13 0.258 -.323438 .0869048
3 | -.0688265 .1112079 -0.62 0.536 -.287052 .149399
4 | -.0321119 .1033496 -0.31 0.756 -.2349169 .1706931
5 | .0923329 .0985065 0.94 0.349 -.1009684 .2856342
6 | 0 (omitted)
|
Y |
2 | -.0941455 .0734446 -1.28 0.200 -.2382673 .0499764
3 | -.1257474 .1056452 -1.19 0.234 -.333057 .0815623
|
_cons | 10.12667 .090287 112.16 0.000 9.949501 10.30384
---------------------------------------------------------------------------

4. 参考资料

参考文献:

  • 陈晓光.财政压力、税收征管与地区不平等[J].中国社会科学,2016(04):53-70+206. -PDF-

  • 范子英,赵仁杰.法治强化能够促进污染治理吗?——来自环保法庭设立的证据[J].经济研究,2019,54(03):21-37. -PDF-

  • 李广众,贾凡胜.财政层级改革与税收征管激励重构——以财政“省直管县”改革为自然实验的研究[J].管理世界,2020,36(08):32-50. -PDF-

  • 梁平汉,邹伟,胡超.时间就是金钱:退税无纸化改革、行政负担与企业出口[J].世界经济,2020,43(10):52-73. -PDF-

  • Chen Y , Shi S , Tang Y . Valuing the urban hukou in China: Evidence from a regression discontinuity design for housing prices[J]. Journal of Development Economics, 2019, 141. -PDF-

  • Dell, M. “The Persistent Effects of Peru's Mining Mita.” Econometrica 78, no. 6 (2010): 1863-1903. -PDF-

  • Ebenstein A ,  Fan M ,  Greenstone M , et al. New evidence on the impact of sustained exposure to air pollution on life expectancy from China's Huai River Policy[J]. Proceedings of the National Academy of Sciences of the United States of America, 2017, 114(39). -PDF-

  • Fu, S. and Gu, Y,. 2017, Highway Toll and Air Pollution: Evidence from Chinese Cities, Journal of Environmental Economics and Management 83, 32-49-PDF-

  • He G ,  Wang S ,  Zhang B . Watering Down Environmental Regulation in China*[J]. Quarterly Journal of Economics, 2020, 135(4):2135-2185. -PDF-

  • Persson P ,  Rossin-Slater M . When Dad Can Stay Home: Fathers' Workplace Flexibility and Maternal Health[J]. Social Science Electronic Publishing. -PDF-

  • Thistlethwaite, D. L., & Campbell, D. T. (1960). Regression-discontinuity analysis: An alternative to the ex post facto experiment. Journal of Educational Psychology, 51(6), 309–317. -PDF-

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh DID 差分
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:倍分法DID
    • Stata:平行趋势不满足?主成分DID来帮你!- pcdid
    • Stata:DID入门教程
    • 倍分法:交错DID与Stata操作
    • Stata倍分法新趋势:did2s-两阶段双重差分模型
    • Stata倍分法:全国一刀切的DID
    • Stata-DID:不同处理时点不同持久期的倍分法(flexpaneldid)
    • 队列DID:以知识青年“上山下乡”为例-T401
    • DID功效计算中的序列相关问题-T407
    • 多期DID文献解读:含铅汽油与死亡率和社会成本-L113
    • DID陷阱解析-L111
    • DIDM:多期多个体倍分法-did_multiplegt
    • 面板PSM+DID如何做匹配?
    • 倍分法:DID是否需要随机分组?
    • Fuzzy DID:模糊倍分法
    • DID:仅有几个实验组样本的倍分法 (双重差分)
    • 考虑溢出效应的倍分法:spillover-robust DID
    • tfdiff:多期DID的估计及图示
    • 长差分:Long Difference及Acemoglu AER论文推介
    • 倍分法DID:一组参考文献
    • Stata:双重差分的固定效应模型-(DID)
    • 倍分法(DID)的标准误:不能忽略空间相关性
    • Stata:三重差分 DDD 模型简介
    • 多期DID之安慰剂检验、平行趋势检验
    • DID边际分析:让政策评价结果更加丰满
    • Big Bad Banks:多期 DID 经典论文介绍
    • 多期DID:平行趋势检验图示
    • Stata:多期倍分法 (DID) 详解及其图示
    • Stata:三重差分模型简介
    • 倍分法DID详解 (二):多时点 DID (渐进DID)
    • 倍分法DID详解 (一):传统 DID
    • 倍分法DID详解 (三):多时点 DID (渐进DID) 的进一步分析
  • 专题:内生性-因果推断
    • Abadie新作:简明IV,DID,RDD教程和综述

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下:连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存