网易首页 > 网易号 > 正文 申请入驻

RDD断点回归, Stata程序百科全书式的宝典

0
分享至

欢迎投稿(荐稿)计量经济圈,计量相关都行

箱:econometrics666@sina.cn

Copyrights@计量经济圈(ID: econometrics666)

断点回归设计RDD是当前最热门的因果推断计量方法,最主要的原因在于它的透明性和强因果识别性,里面的每一步都可以成功运行出来,需要do文件和数据dta的请进入计量经济圈社群直接提取(文末)

gen y = outcome // 结果变量
gen d = running>0 // 处理变量(0/1种类)

gen v = running // 分配变量或参考变量
gen vd = v*d // 交互项

local i=1
forvalues i=2/4 {
gen v`i'=v^`i'
gen v`i'd=v`i'*d
} // 产生分配变量的三次方、四次方和他们与处理变量的交互项
qui tab year, gen(dyear) // 如果在面板数据中,想要控制年份可以产生虚拟变量
gen pop2 = pop^2 // 将来用在回归中作为协变量,pop的平方项

————————————————
*************************************
*图形识别,提供三种方式
*************************************

**1.结果变量是不是在断点处跳跃---------

global sizebin 0.2 //根据你的那个running variable选择箱体,这个你自己设定参数
gen bin=floor(v/$sizebin)
gen midbin=bin*$sizebin+0.5*$sizebin

bys bin: egen mean=mean(y)
reg y d v v2 vd v2d, robust
predict fit
predict fitsd, stdp
gen upfit=fit+1.645*fitsd // 产生置信区间的上边界
gen downfit=fit-1.645*fitsd // 产生置信区间的下边界

preserve // 第一种方式绘制断点回归图
twoway (rarea upfit downfit v, sort fcolor(gs12) lcolor(gs12)) ///
(line fit v if v<0, sort lcolor(green) lwidth(thick)) ///
(line fit v if v>0, sort lcolor(red) lwidth(thick)) ///
(scatter mean midbin, msize(large) mcolor(black) msymbol(circle_hollow)), ///
ytitle("") xtitle("treatment, X (cutoff: X=0)") xline(0, lcolor(black)) ///
legend(off) xlabel(-1(0.2)1) title("policy implementation")
graph copy all, replace
restore

cmogram y v,cut(0) scatter lineat(0) qfitci // 第二种方式绘制断点回归图形

rdplot y v, cut(0) nbins(10) // 第三种方式绘制断点回归图

/**通过图形识别,我们发现在断点处结果变量y发生了跳跃**/

———————————————

********************************
*估计结果,使用三种方式
***********************************

**1. 非参数估计--------------

rdrobust y v,c(0) kernel(uni) bwselect(mserd) all // 使用rdrobust进行的非参数估计
rdrobust y v, c(0) kernel(tri) bwselect(mserd) all // 这里使用的是triangular密度估计
rdrobust y v, c(0) kernel(epa) bwselect(mserd) all // 这里使用的是epanechnikov密度估计

**2. 非参数估计----------------------

rd y v, mbw(50 100 200) gr z0(0) kernel(tri) // 这个根据最优带宽计算了三个相应带宽,感觉比较方便
rd y v, mbw(50 100 200) gr z0(0) kernel(rec) // 这里使用的是rectangle密度估计

**3. 参数估计:局部线性回归------

rdbwselect y v, c(0) kernel(uni) bwselect(mserd) // 选择最优带宽

preserve
keep if v>= -0.216 & v<= 0.216 // 根据上式的结果显示带宽为0.216
eststo x1: reg y d, robust // 面板的话选择xtreg,如果是2sls选择xtivregre
eststo x2:reg y d##c.v, robust
eststo x3:reg y d##c.(v v2), robust // 局部线性回归法,选择2阶多项式
eststo x4:reg y d##c.(v v2 v3), robust // 局部线性回归法,选择3阶多项式
eststo x5:reg y d##c.(v v2 v3 v4), robust // 局部线性回归法,选择4阶多项式
esttab x1 x2 x3 x4 x5 using y.rtf, star(* .1 ** .05 * .01) nogap nonumber replace ///
se(%5.4f) ar2 aic(%10.4f) bic(%10.4f) //输出结果到rtf格式
restore

********************************
*稳健性检验
*********************************

**1. 加入协变量后看看回归结果是不是依然显著-----

*1.1 非参估计加入协变量
rd y v, cov(pop pop2) mbw(50 100 200) z0(0) kernel(tri) // 加入协变量pop和pop2

*1.2 参数估计加入协变量

preserve
eststo x11: reg y d pop pop2, robust // 加入协变量pop和它的平方项
eststo x21:reg y d##c.v pop pop2, robust
eststo x31:reg y d##c.(v v2) pop pop2, robust
eststo x41:reg y d##c.(v v2 v3)pop pop2, robust
eststo x51:reg y d##c.(v v2 v3 v4) pop pop2, robust
esttab x11 x21 x31 x41 x51 using y1.rtf, star(* .1 ** .05 * .01) nogap nonumber replace ///
se(%5.4f) ar2 aic(%10.4f) bic(%10.4f) //输出加入协变量后的结果到rtf格式
restore

————————————————

**2.检验其中的协变量是不是在断点处连续-------

**2.1 绘制图形检验一下协变量pop是不是连续的
cmogram pop v,cut(0) scatter lineat(0) qfitci // 第二种方式绘制断点回归图形

rdplot pop v, cut(0) nbins(10) // 第三种方式绘制断点回归图

**2.2 使用估计方法估计出来具体系数看显著不

** 非参数估计-----------------
rdrobust pop v,c(0) kernel(uni) bwselect(mserd) all // 使用rdrobust进行的非参数估计

** 参数估计:局部线性回归------
rdbwselect pop v, c(0) kernel(uni) bwselect(mserd) // 最优带宽的选择

preserve
keep if v>= -0.175 & v<= 0.175 // 根据上式选择的最优带宽为0.175
eststo xa:reg pop d, robust
eststo xb:reg pop d##c.v, robust // 用协变量作为伪结果变量,进行断点回归,选择1阶多项式
eststo xb:reg pop d##c.(v v2), robust // 用协变量作为伪结果变量,进行断点回归,选择2阶多项式
eststo xc:reg pop d##c.(v v2 v3), robust // 用协变量作为伪结果变量,进行断点回归,选择3阶多项式
eststo xd:reg pop d##c.(v v2 v3 v4), robust // 用协变量作为伪结果变量,进行断点回归,选择4阶多项式
restore

esttab x11 x21 x31 x41 x51 using m.rtf, star(* .1 ** .05 * .01) nogap nonumber replace ///
se(%5.4f) ar2 aic(%10.4f) bic(%10.4f) //输出加入协变量后的结果到rtf格式

/**结果显示pop回归方程不是显著的,所以rdd是适用于此的**/

————————————————
**3.Mccracy检验:操纵running variable检验---

net install DCdensity, from("http://www.czxa.top/DCdensity") // 安装McCrary检验命令

*注意:以下这个关于分配变量在断点处跳跃的操纵检验会随着下面的binsize和bandwidth设置而不同的

preserve
DCdensity v, breakpoint(0) generate(Xj Yj r0 fhat se_fhat) b(0.2) h(0.216) // McCracy test
gen upfhat=fhat+1.645*se_fhat
gen lowfhat=fhat-1.645*se_fhat

twoway (rarea upfhat lowfhat r0 if r0<0, sort fcolor(gs12) lcolor(gs12)) ///
(rarea upfhat lowfhat r0 if r0>0, sort fcolor(gs12) lcolor(gs12)) ///
(line fhat r0 if r0<0, lcolor(red)) (line fhat r0 if r0>0, lcolor(blue)) ///
(scatter Yj Xj if Yj>0, mcolor(gs4) msymbol(circle_hollow)), ///
ytitle("Density") xtitle("") xline(0) legend(off)

restore

gen t= .079111002/.143889525 // 产生t值,这个需要你根据系数提取出来


display 2*ttail(2651, t) // 得到p值,2651是自由度

/**可以看出在5%显著性水平下实际上Mccrary检验是通不过的,证明没有操纵**/

** 把邻近断点处的那些密度分布放大一些看,这样可以更能清楚地看见是不是有操纵—-
preserve

DCdensity v, breakpoint(0) generate(Xj Yj r0 fhat se_fhat) b(0.2) h(0.216) // McCracy test
local breakpoint 0
local cellmpname Xj
local cellvalname Yj
local evalname r0
local cellsmname fhat
local cellsmsename se_fhat
drop if `cellmpname' < -1 | `cellmpname' > 0.5 // 把小于-1和大于0.5的部分都去掉
drop if `evalname' < -1 | `evalname' > 0.5
tempvar hi
quietly gen `hi' = `cellsmname' + 1.96*`cellsmsename'
tempvar lo
quietly gen `lo' = `cellsmname' - 1.96*`cellsmsename'
gr twoway (scatter `cellvalname' `cellmpname', msymbol(circle_hollow) mcolor(gray)) ///
(line `cellsmname' `evalname' if `evalname' < `breakpoint', lcolor(black) lwidth(medthick)) ///
(line `cellsmname' `evalname' if `evalname' > `breakpoint', lcolor(black) lwidth(medthick)) ///
(line `hi' `evalname' if `evalname' < `breakpoint', lcolor(black) lwidth(vthin)) ///
(line `lo' `evalname' if `evalname' < `breakpoint', lcolor(black) lwidth(vthin)) ///
(line `hi' `evalname' if `evalname' > `breakpoint', lcolor(black) lwidth(vthin)) ///
(line `lo' `evalname' if `evalname' > `breakpoint', lcolor(black) lwidth(vthin)), ///
xline(`breakpoint', lcolor(black)) legend(off)

restore

——————————————

** 4.安慰剂检验-----------------------

**4.1 改变断点的位置-----------------

rdplot y v if v<0, c(-0.25) // 将原来的断点0改变为新的断点-0.25

rdplot y v if v>0, c(0.25) // 将原来的断点0改变为新的断点0.25

rdrobust y v,c(-0.25) kernel(uni) bwselect(mserd) all // 新断点处使用rdrobust进行的非参数估计
rdrobust y v,c(0.25) kernel(uni) bwselect(mserd) all // 新断点处使用rdrobust进行的非参数估计

/** 通过以上发现改变断点后不显著了,所以我们的断点选择是有道理的**/

**4.2 改变带宽-----------------

rdrobust y v,c(0) kernel(uni) h(0.1) all // 改变带宽为0.1
rdrobust y v,c(0) kernel(uni) h(0.4) all // 改变带宽为0.4

/** 通过以上发现改变带宽并没有影响其显著性,因此我们识别的因果效应很稳健**/

计量经济圈是中国计量第一大社区,我们致力于推动中国计量理论和实证技能的提升,圈子以海内外高校研究生和教师为主。计量经济圈六多精神:计量资料多,社会科学数据多,科研牛人多,名校人物多,热情互助多,前沿趋势多。如果你热爱计量并希望长见识,那欢迎你加入到咱们这个大家庭戳这里,要不然你只能去其他那些Open access圈子了。注意:进去之后一定要看“群公告”,不然接收不了群息,也不知道怎么进入咱们的微信群和计量论坛。


帮点击一下下面的小广告,谢谢支持!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
香港演员施明去世,终年74岁,曾出演《倚天屠龙记》紫衫龙王,精通武术曾做史泰龙保镖

香港演员施明去世,终年74岁,曾出演《倚天屠龙记》紫衫龙王,精通武术曾做史泰龙保镖

大象新闻
2026-03-31 14:49:05
地铁吐血女孩,银行账户暂时被封

地铁吐血女孩,银行账户暂时被封

海峡网
2026-03-31 09:04:03
1月提车3月就迭代!2026款问界M7无法升级激光雷达引老车主不满,官方回应:正积极寻找解决方案

1月提车3月就迭代!2026款问界M7无法升级激光雷达引老车主不满,官方回应:正积极寻找解决方案

每日经济新闻
2026-04-01 08:51:25
善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

有范又有料
2025-12-17 14:54:06
拒绝退役,国家队会召全红婵吗?正式发声,官宣决定,周继红欣慰

拒绝退役,国家队会召全红婵吗?正式发声,官宣决定,周继红欣慰

懂球社
2026-03-31 11:40:36
郑丽文访问大陆,又获得一国民党要员支持,比蒋万安赵少康更给力

郑丽文访问大陆,又获得一国民党要员支持,比蒋万安赵少康更给力

小陆搞笑日常
2026-03-31 12:06:16
利物浦6100万镑敲定德甲中卫!皇马酝酿突袭安菲尔德,挖红军神锋

利物浦6100万镑敲定德甲中卫!皇马酝酿突袭安菲尔德,挖红军神锋

夜白侃球
2026-04-01 13:54:39
《五哈6》官宣明星阵容,网友:该来的不来,不该来的全来了!

《五哈6》官宣明星阵容,网友:该来的不来,不该来的全来了!

阿纂看事
2026-03-31 16:36:14
“跳成这样,还好意思当老师?”15年舞蹈教师被全网嘲笑:快退费

“跳成这样,还好意思当老师?”15年舞蹈教师被全网嘲笑:快退费

妍妍教育日记
2026-03-31 09:50:03
陶喆再一次证明,娶妻要娶年轻的,即使你老了,她还美得心旷神怡

陶喆再一次证明,娶妻要娶年轻的,即使你老了,她还美得心旷神怡

许三岁
2026-03-16 10:18:04
战功赫赫的红军军团长,整编时竟无人愿收,主席震怒直言纯属瞎胡闹

战功赫赫的红军军团长,整编时竟无人愿收,主席震怒直言纯属瞎胡闹

磊子讲史
2026-03-30 15:41:41
女子花上万元办卡,却被按摩到癌细胞扩散!这类硬块千万别揉

女子花上万元办卡,却被按摩到癌细胞扩散!这类硬块千万别揉

扬子晚报
2026-03-31 07:04:33
网贷十年血色史,一场以金融科技为名的狂欢与崩塌

网贷十年血色史,一场以金融科技为名的狂欢与崩塌

资本董事局
2026-03-31 19:34:32
唯一被灭亡的世界级宗教,曾在中国盛极一时,不少人知道它的名字

唯一被灭亡的世界级宗教,曾在中国盛极一时,不少人知道它的名字

凡人侃史
2026-03-31 12:20:37
心内科主任:心脏病最危险信号,不是嘴唇发紫,是频繁出现7异常

心内科主任:心脏病最危险信号,不是嘴唇发紫,是频繁出现7异常

健康科普365
2026-04-01 09:49:11
一场被谎言掩盖的胜利:谁在刻意制造“美军困境”?

一场被谎言掩盖的胜利:谁在刻意制造“美军困境”?

斌闻天下
2026-03-31 07:15:03
我哥去超市买菜,结账时老板说:昨天你和你女友买菜忘付钱了吧

我哥去超市买菜,结账时老板说:昨天你和你女友买菜忘付钱了吧

小秋情感说
2026-04-01 09:20:36
韩国网友偷广州街头美景图,配文:这就是首尔!浏览破百万,照片中公交车尾清晰印有“广州公交”4个字,发现“闹大”后删除博文

韩国网友偷广州街头美景图,配文:这就是首尔!浏览破百万,照片中公交车尾清晰印有“广州公交”4个字,发现“闹大”后删除博文

大风新闻
2026-03-29 21:59:02
为啥说准备考公不宜到处说?网友:我妈也是,气得我快要冒烟

为啥说准备考公不宜到处说?网友:我妈也是,气得我快要冒烟

带你感受人间冷暖
2026-03-30 00:10:09
老年人的性需求可能比年轻人更旺盛!

老年人的性需求可能比年轻人更旺盛!

黯泉
2026-03-30 13:58:50
2026-04-01 15:59:00
计量经济圈
计量经济圈
经济、金融等相关问题
338文章数 155关注度
往期回顾 全部

头条要闻

美国务卿:哪天美国决定从欧洲撤军 北约将就此终结

头条要闻

美国务卿:哪天美国决定从欧洲撤军 北约将就此终结

体育要闻

NBA扩军,和篮球无关?

娱乐要闻

宋宁峰人设崩塌!带娃偷情+反向索赔

财经要闻

电商售械三水光针 机构倒货or假货猖獗?

科技要闻

营收翻倍、巨亏31亿!中国大模型太烧钱了

汽车要闻

2026年3月小米汽车交付超2万台 新SU7上市即交付

态度原创

艺术
健康
教育
时尚
本地

艺术要闻

Alexandra Manukyan油画选刊(二)

干细胞抗衰4大误区,90%的人都中招

教育要闻

黄冈师范学院2026考研调剂工作办法、调剂专业信息发布

“灰色阔腿裤"今年春天火爆了,怎么搭都时髦高级!

本地新闻

从学徒到世界冠军,为什么说张雪的底气在重庆?

无障碍浏览 进入关怀版