R:断点回归分析设计

计量经济学服务中心专辑汇总!计量百科·资源·干货:

Stata |Python  |Matlab |Eviews  |R
Geoda  |ArcGis  |GeodaSpace  |SPSS 
一文读懂   |数据资源   |回归方法  |网络爬虫                                                               
门限回归   |工具变量   |内生性   |空间计量
因果推断   |合成控制法   |倾向匹配得分   |断点回归   |双重差分   
面板数据  | 动态面板数据

断点回归的基本命令是rd,另外,还有一些其他命令,例如rdrobust、rdlocrand、rddensity等等。本文主要介绍R语言中的rdrobust。

rdrobust有两个配套命令:rdbwselect用于带宽选择,rdplot用于RD绘图(详细信息请参见Calonico、Cattaneo和Titiunik [2015a])。

1、rdbwselect

下载安装方法为:

install.packages('rdrobust')

library(rdrobust)

rdrobust语法格式为:

rdbwselect(y, x, c = NULL,  fuzzy = NULL,               deriv = NULL, p = NULL, q = NULL,               covs = NULL, covs_drop = TRUE,              kernel = 'tri', weights = NULL, bwselect = 'mserd',               vce = 'nn',  cluster = NULL, nnmatch = 3,               scaleregul = 1, sharpbw = FALSE,               all = NULL, subset = NULL,               masspoints = 'adjust', bwcheck = NULL,              bwrestrict = TRUE, stdvars = FALSE)

选项含义为:

y表示因变量。

x表示驱动变量(又称使动变量)。

c指定RD中断点位置;默认值是c = 0。

fuzzy指定用于实现模糊RD估计的处理状态变量,默认是Sharp RD设计,因此不使用此选项。

cov表示指定用于估计和推断的附加协变量。

kernel是用来构造局部多项式估计器的核函数。选项有三角形(默认选项)、epanechnikov和uniform。

weights是用于估计过程的可选加权的变量。单位权重乘以核函数。

bwselect指定要使用的带宽选择过程。

2、rdrobust

语法含义为:

rdrobust(y, x, c = NULL,  fuzzy = NULL, 
          deriv = NULL, p = NULL, q = NULL, 
          h = NULL, b = NULL, rho = NULL, covs = NULL,  covs_drop = TRUE,
          kernel = 'tri', weights = NULL, bwselect = 'mserd', 
          vce = 'nn', cluster = NULL, 
          nnmatch = 3, level = 95, scalepar = 1, scaleregul = 1, 
          sharpbw = FALSE, all = NULL, subset = NULL,
          masspoints = 'adjust', bwcheck = NULL,
          bwrestrict = TRUE, stdvars = FALSE)

选项含义为:

y表示因变量。

x表示驱动变量(又称使动变量)。

c指定RD中断点位置;默认值是c = 0。

fuzzy指定用于实现模糊RD估计的处理状态变量,默认是Sharp RD设计,因此不使用此选项。

covs表示指定用于估计和推断的附加协变量。

p指定用于构造点估计器的局部多项式的阶数;默认值是p = 1(本地线性回归)。

q指定用于构造偏差校正的局部多项式的顺序;默认值是q = 2(局部二次回归)。

h指定用于构造RD点估计器的主要带宽。如果没有指定,带宽h将由同伴命令rdbwselect计算。如果指定了两个带宽,第一个带宽用于低于截止值的数据,第二个带宽用于高于截止值的数据。

b指定用于构造偏差校正估计器的偏差带宽。如果没有指定,带宽b将由同伴命令rdbwselect计算。如果指定了两个带宽,第一个带宽用于低于截止值的数据,第二个带宽用于高于截止值的数据。

3、rdplot

语法含义为

rdplot(y, x, c = 0, p = 4, nbins = NULL, binselect = 'esmv',            scale = NULL, kernel = 'uni', weights = NULL, h = NULL,           covs = NULL, covs_eval = 0, covs_drop = TRUE,           support = NULL, subset = NULL,           hide = FALSE, ci = NULL, shade = FALSE, title = NULL,           x.label = NULL, y.label = NULL, x.lim = NULL, y.lim = NULL,           col.dots = NULL, col.lines = NULL)

选项含义为

rdplot函数可用于RD结果的可视化,其语法与rdrobust或者rdrobust相同

y表示因变量。

x表示驱动变量(又称使动变量)。

c指定RD中断点位置;默认值是c = 0。

p指定用于近似控制单元和处理单元的总体条件平均函数的全局多项式的阶数;默认值是p = 4。

binselect指定选择容器数量的过程。

4、案例

rdrobust采用Calonico, Cattaneo和Titiunik (2014a)、Calonico, Cattaneo和Farrell(2018)、Calonico, Cattaneo, Farrell和Titiunik(2019)和Calonico, Cattaneo和Farrell(2020)开发的鲁棒偏差校正置信区间和推理程序,实现了局部多项式回归不连续(RD)点估计。它还计算可供选择的估计和推理程序,在文献中。

配套命令有:rdbwselect用于数据驱动带宽选择,rdplot用于数据驱动RD图(详见Calonico, Cattaneo and Titiunik (2015a))。

这个命令的详细介绍在Calonico, Cattaneo和Titiunik (2015b)和Calonico, Cattaneo, Farrell和Titiunik(2017)中给出。配套的Stata包在Calonico, Cattaneo和Titiunik (2014b)中有描述。

有关更多细节,以及用于分析RD设计的相关Stata和R包,请访问https://sites.google.com/site/rdpackages/

Cattaneo, Frandsen和Titiunik构建的数据集(2015),其中包括1914-2010年期间美国参议院在任优势的衡量。

该数据包含以下两个变量的1390个观察值的数据框架。

其包含两个变量vote和margin,vote表示某次选举民主党在州参议院的席位占比,margin表示上次选举中获得相同参议院席位的边际收益,其中大于0表示民主党胜出,反之则为失败。

将vote作为被解释变量,margin作为解释变量,即可研究民主党赢得参议院席位对于在下次选举中获得相同席位的影响。具体操作代码如下

4.1导入数据

data(rdrobust_RDsenate)

4.2最优带宽

rdbwselect(y = rdrobust_RDsenate$vote, x = rdrobust_RDsenate$margin, all = TRUE) summary()

结果为:

> rdbwselect(y = rdrobust_RDsenate$vote, x = rdrobust_RDsenate$margin, all = TRUE) 
Call: rdbwselect

Number of Obs.                 1297
BW type                         All
Kernel                   Triangular
VCE method                       NN

Number of Obs.                 595         702
Order est. (p)                   1           1
Order bias  (q)                  2           2
Unique Obs.                    595         665

=======================================================
                  BW est. (h)    BW bias (b)
            Left of c Right of c  Left of c Right of c
=======================================================
     mserd    17.754     17.754     28.028     28.028
    msetwo    16.170     18.126     27.104     29.344
    msesum    18.365     18.365     31.319     31.319
  msecomb1    17.754     17.754     28.028     28.028
  msecomb2    17.754     18.126     28.028     29.344
     cerrd    12.407     12.407     28.028     28.028
    certwo    11.299     12.667     27.104     29.344
    cersum    12.834     12.834     31.319     31.319
  cercomb1    12.407     12.407     28.028     28.028
  cercomb2    12.407     12.667     28.028     29.344
=======================================================

4.3 参数估计

rdrobust(y = rdrobust_RDsenate$vote, x = rdrobust_RDsenate$margin) %>% summary()

Call: rdrobust

Number of Obs.                 1297BW type                       mserdKernel                   TriangularVCE method                       NN

Number of Obs.                 595         702Eff. Number of Obs.            360         323Order est. (p)                   1           1Order bias  (q)                  2           2BW est. (h)                 17.754      17.754BW bias (b)                 28.028      28.028rho (h/b)                    0.633       0.633Unique Obs.                    595         665

=============================================================================        Method     Coef. Std. Err.         z     P>|z|      [ 95% C.I. ]       =============================================================================  Conventional     7.414     1.459     5.083     0.000     [4.555 , 10.273]    Bias-Corrected     7.507     1.459     5.146     0.000     [4.647 , 10.366]            Robust     7.507     1.741     4.311     0.000     [4.094 , 10.919]    =============================================================================

4.4 绘图


rdplot(rdrobust_RDsenate$vote, rdrobust_RDsenate$margin, p = 3, x.label = 'Margin', y.label = 'Vote')

(0)

相关推荐

  • RDD:断点回归可以加入控制变量吗?

    RDD:断点回归可以加入控制变量吗?

  • 轻松学会C语言4基本类型

    https://m.toutiao.com/is/eEC6uBR/ 什么是基本数据类型? 答: 就是我们常见的字母a,b,c...,数字1,2,3... 计算机要存储一个字母或数字,如何存储? 答:使 ...

  • Stata:断点回归分析设计

              *========================================           *           高级计量经济学           *======= ...

  • 有源相控阵的天线设计的核心:T/R组件

    电子万花筒平台核心服务 电子元器件:价格比您现有供应商最少降低10% 射频微波天线新产品新技术发布平台:让更多优秀的国产射频微波产品得到最好的宣传!发布产品欢迎联系管理,专刊发布!强力曝光! 有源相控 ...

  • R | 教程 RDD断点有效性和稳健性分析

    "社会科学中的机器学习"第466篇推送 导言 以往推送介绍了如何利用rdrobust进行断点回归并呈现结果.但要利用RD进行研究设计首先需要证明断点的有效性,其次还需要对回归结果进 ...

  • 基于R语言实现LASSO回归分析

    原文链接:http://tecdat.cn/?p=10997 模拟假数据集  set.seed(0820) n         <- 50  p         <- 25  beta   ...

  • R语言区间数据回归分析

    原文链接http://tecdat.cn/?p=14850 回归分析是一种十分常见的数据分析方法,通过观测数据确定变量间的相互关系.传统回归分析以点数据为研究对象,预测结果也是点数据,而真实数据往往在 ...

  • 练习R:用lm.ridge()做岭回归分析,可惜无法输出R平方

    某医师希望通过B超下胎儿的身长.头围.体重来预测胎儿周龄,这些观测值均是连续性数值变量,所以很容易想到建立一个多重线性回归方程来解决问题. 数据:取自张文彤老师SPSS统计教程高级版 常规的线性回归显 ...

  • 练习R:rsm包设计响应面试验并做数据分析

    ‍‍ 有没有可能使用R替代Minitab或者Desigh-Expert做响应面试验呢?rsm包可以回答这个问题.今天小兵就来练习rsm包设计ccd响应面试验并做数据分析. 试验因素ABC,尝试做一个二 ...

  • R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析

    原文链接:http://tecdat.cn/?p=22702 摘要 贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lass ...

  • R语言实战——线性回归分析和相关矩阵可视化

    多元回归分析 多元回归分析预测法,是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测的方法.当自变量与因变量之间存在线性关系时,称为多元线性回归分析. 多元线性回归的适用条件 ...