作者:李鑫 (云南大学)

连享会 - 与君分享 lianxh.cn

Stata连享会   主页 || 视频 || 知乎

扫码查看连享会最新专题、公开课视频和 100 多个码云计量仓库链接。

连享会 RDD 专题文章: 这里

文章目录

    • 连享会 - 与君分享 [lianxh.cn](https://www.lianxh.cn)
  • 1. 背景
  • 2. 检验工具
    • 2.1 使用 histogram 命令
      • 连享会计量方法专题……
    • 2.2 使用 McGrary 方法
      • 2.3 使用 rdcont 命令
  • 3. 结语
  • 4. 参考资料
  • 附:本文涉及的 Stata 代码
    • 关于我们

1. 背景

断点回归 ( RDD ) 已经成为当前微观计量经济学分析政策效果的重要手段,而样本的随机分配被认为是该项工作的黄金律。因为只有样本在临界值 ( cut-point ) 的领域范围内是随机分布的,那么模型估计在临界值处的平均因果效应 ( ATE ) 才是政策实施对于处理组和控制组之间的差异的无偏估计值。

然而,在现实经验研究中,样本的随机分配往往难以得到满足,经常出现样本分配机制人为干预现象。

例如,学校开展对于期末考试分数低于某一值的学生进行强制的暑期培训,如果学生们提前知道这个分数值 ( 如 60 分 ),那么原本考试成绩在这个分数值附近的学生就会加倍努力或与老师套近乎 (寻租) 而通过考试,避免参加暑期培训项目。这意味着通过考试的学生数量会在断点 ( 60 分 ) 右侧有一个数量上的明显上升,致使评价参加暑期培训是否能够提高学生的考试成绩的平均因果效应 ( ATE ) 存在偏差。

下面,我们通过模拟数据的形式来展现样本在临界值处有人为干预的现象。

人为干预的情形")

在 figure1(a) 中,样本分配不存在人为干预,即学生事前并不知道低于 60 分将参加学校组织的暑期培训班项目,那么在分配变量 (考试分数) 的直方图中不存在明显的样本数量在临界值 (60 分) 处任意一侧样本数量的出现巨大的波动。

在 figure1(b) 中,我们通过人为改变样本数,模拟样本的认为干预现象,即学生事前知道低
于 60 分将必须参加学校组织的暑期培训项目,那么分配变量 (考试分数) 的直方图中在临界值 (60 分) 右侧将出现较高的学生数,而在临界值 (60 分) 左侧的学生数大幅度下降,出现明显的跳跃现象。

连享会计量方法专题……

2. 检验工具

因此,在断点回归中,检验样本是否随机分配,即分配变量密度函数的连续性,将有助于判断政策效应估计的有效性。

下面,我们通过使用 David S. Lee (2007,[PDF]) 关于参议院选举的样本数据,分析三种不同的工具检验样本是否存在人为干预的现象。其中,该数据中民主党获胜的票数差 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 "https://gitee.com/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 listscalars:r(bandwidth) =  25.84938346120713r(binsize) =  1.841330210610218r(se) =  .117145040900551r(theta) =  -.1007456257891786

从 figure3 中可以看到,尽管在临界值两侧的密度函数存在跳跃,但置信区间在此处重叠,表明在临界值两侧的分配变量 (民主党获胜票数差) 密度函数是连续函数。并且临界值处估计的对数样本数差 [r(theta)] 不显著,证明不存分配变量 (民主党获胜票数差) 的人为干预。

2.3 使用 rdcont 命令

相对于前文介绍的命令,rdcont 能够有效地克服由于断点处局部小样本的因素所导致对于密度函数连续性检验的影响。 rdcont 通过构造一个 g 阶的统计量来实现检验,其易于实现,较其他方法使用能够在更弱的条件下渐近有效,在比其渐近有效性所需的条件更强的条件下显示出有效样本。

优点: (1) 操作简单,对于样本数量没有限制;(2) 在估计过程中,不涉及核密度函数、局部多项式、偏差修正、密度函数最优带宽的选择等问题。

rdcont 命令的基本语法格式如下:

 rdcont running_var [if] [in], [options]

其中:

  • running_var: 分配变量
  • alpha(): 指定用于计算最佳带宽的临界值
  • threshold(): 指定测试的临界值
  • 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 =   94Number of obs |       640         750
Eff. number of obs |        46          48Eff. neighborhood |    -1.743       1.824
-------------------+----------------------p-value |     0.918

原假设 H 0 H_0 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.[pdf]

(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.[pdf]

(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.[pdf]

附:本文涉及的 Stata 代码

*-------驱动变量不连续图形figure1--------
*----生成模拟数据---clearset obs 5000set seed 123gen z = rnormal()*0.5       save simu1.dta, replace*----生成干预数据----   gen z0 = z if (z>=-0.15)&(z<0)gen z1 = z if (z>=0)&(z<0.15)    gen z2 = zreplace z2 = . if z2 == z0stack z2 z1, into(z3) cleardrop if z3 == . *-stack命令会将z变量删除,该命令将z变量添加进来merge 1:1 _n using simu1.dta, nogeneratedrop if z3 == .*-为了图形显示更加直观,进行轻微调整gen zNo  = z3 + 0.1gen zYes =  z - 0.1     #d ;twoway (histogram zYes,frequency lcolor(gs12) fcolor(gs12)) (histogram zNo, frequency lcolor(black) fcolor(none)),xline(0, lpattern(dash) lcolor(green) lwidth(*1.5))xtitle("Score")xlabel(-2 "40" -1 "50" 0 "60" 1 "80" 2 "90")legend(label(1 "figure1(a) 无人为干预")label(2 "figure1(b) 人为干预"))note("figure1")scheme(burd);#d cr*----------使用直方图显示分配变量的连续性figure2------* use "rdrobust_senate.dta", clearuse https://gitee.com/arlionn/data/raw/master/data01/rdrobust_rdsenate.dta, clear#d ;histogram margin, lcolor(brown) fcolor(gs16) title("Senate_selection")  xtitle("margin") note("figure2");#d cr*----------使用McGray(2006)命令figure3----------------DCdensity margin, breakpoint(0) gen(Xj Yj r0 fhat se_fhat)return list*----------使用rdcont命令table1----------------------rdcont margin, threshold(0)

连享会计量方法专题……


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 你的颈椎还好吗? 您将 ::连享会-主页:: 和 ::连享会-知乎专栏:: 收藏起来,以便随时在电脑上查看往期推文。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:
    • 课程, 直播, 视频, 客服, 模型设定, 研究设计,
    • stata, plus,Profile, 手册, SJ, 外部命令, profile, mata, 绘图, 编程, 数据, 可视化
    • DID,RDD, PSM,IV,DID, DDD, 合成控制法,内生性, 事件研究
    • 交乘, 平方项, 缺失值, 离群值, 缩尾, R2, 乱码, 结果
    • Probit, Logit, tobit, MLE, GMM, DEA, Bootstrap, bs, MC, TFP
    • 面板, 直击面板数据, 动态面板, VAR, 生存分析, 分位数
    • 空间, 空间计量, 连老师, 直播, 爬虫, 文本, 正则, python
    • Markdown, Markdown幻灯片, marp, 工具, 软件, Sai2, gInk, Annotator, 手写批注
    • 盈余管理, 特斯拉, 甲壳虫, 论文重现
    • 易懂教程, 码云, 教程, 知乎

Stata: 断点回归 (RDD) 中的平滑性检验相关推荐

  1. Stata: 断点回归 (RDD) 教程

      作者:张子楠 (浙江财经大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN | StataChina公众号 Stata连享会   计量专题 || 精品课程 || 简书推文 || ...

  2. Stata:时间断点回归RDD的几个要点

    原文链接:https://www.lianxh.cn/news/56cc4fa415482.html 目录 1. 时间断点的特点 2. 三个可能陷阱 2.1 样本量问题 2.2 时序特征 2.3 假设 ...

  3. Stata:断点回归RDD简明教程

    原文链接:https://www.lianxh.cn/news/789f031b0c110.html 目录 1. RDD基本原理 2. 图形观察 2.1 生成模拟数据 2.2 断点效应的图形观察 3. ...

  4. 断点回归RDD:样本少时如何做?

    编译:李琼琼 (山东大学) Email: lqqflora@163.com Source: Cattaneo, Matias, D, et al. Inference in regression di ...

  5. lecture 13:断点回归RDD

    断点回归RDD 参考文献: 16 - Regression Discontinuity Design

  6. Stata+R:一文读懂精确断点回归-RDD

    全文阅读:https://www.lianxh.cn/news/96fb6b7e847e1.html 作者: 曹昊煜 (兰州大学) 邮箱: caohy19@lzu.edu.cn 编者按:本文部分内容摘 ...

  7. Stata: 断点回归分析 (RDD) 文献和命令

  8. RDD断点回归-handbook

    一.RDD原理分析 原理部分的说明可以参考陈强<高级计量经济学及stata应用> !!注:搞清楚原理非常重要 重要概念辨析: 1 结果变量,因变量(Y, outcome variable; ...

  9. 断点回归(regression discontinuity design)学习笔记

    本篇博文主要是对断点回归的一些学习和总结~ 学习材料如下: 1 断点回归设计RDD分类与操作案例 2 RDD断点回归, Stata程序百科全书式的宝典 3 断点回归设计的前沿研究现状, RDD 4 让 ...

最新文章

  1. 面试题--特别是字节对齐
  2. 2020年社招面试技巧总结!
  3. SpringBoot(六)_AOP统一处理请求
  4. BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)
  5. 重用CL_CRM_QUERYAUI_RUN_BTIL实现order search
  6. JavaWeb学习总结(二)——JSP中的九个内置对象
  7. JavaScript 精粹 基础 进阶(5)数组
  8. Facebook 中国程序员之死
  9. 框架使用SpringBoot + Spring Security Oauth2 +PostMan
  10. java 盘符 系统_001-Java再回首开篇-入门基础
  11. Struts 拦截器
  12. 3399元起!120Hz瞳孔屏+65W超级闪充,一加 8T今日发布
  13. airtestide 下载后打不开_惠普打印机驱动怎么下载 惠普打印机驱动安装方法【步骤】...
  14. VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 public: void __thiscall
  15. (Photo Metadata Remover)Android App 一键去除照片 EXIF 隐私信息
  16. MRP里如何预测lead time :Approaches for the Prediction of Lead Times in an Engineer to Order Environment
  17. CCF CSP刷题—小中大
  18. 高德地图——货车导航
  19. 深入了解一下C语言scanf()库函数
  20. video在iPhone浏览器上播放没有声音

热门文章

  1. 【python】实现一次指数平滑
  2. PAT Basic 1014
  3. 微信小程序授权登录获取用户名和昵称
  4. 基于node.js完成电竞平台项目
  5. et200sp系统服务器模块,et200sp系统指导书.pdf
  6. java excel导入兼容性,使用poi导入Excel文件兼容性问题
  7. Excel 2019 插入图片缩放后模糊解决办法
  8. iZotope Ozone 8 Advanced for Mac(臭氧8 mac版)
  9. python的几个有趣点
  10. [Codewar训练]Conway's Game of Life - Unlimited Edition(康威生命游戏)