RDD断点回归:多个断点多个分配变量如何处理

文摘   2024-11-17 22:01   中国  

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

🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)

课程特色 · 2024机器学习与因果推断

  • 懂原理、会应用。本次课程邀请了两位老师合作讲授,目的在于最大限度地实现理论与应用的有机结合。为期四天的课程,分成两个部分:第一部分讲解常用的机器学习算法和适用条件,以及文本分析和大语言模型;第二部分通过精讲 4-6 篇发表于 Top 期刊的论文,帮助大家理解各类机器学习算法的应用场景,以及它们与传统因果推断方法的巧妙结合。
  • 以 Top 期刊论文为范例。目前多数人的困惑是不清楚如何将传统因果推断方法与机器学习结合起来。事实上,即便是 MIT 和 Harvard 的大牛们也都在「摸着石头过河」。为此,通过论文精讲和复现来学习这部分内容或许是目前最有效的方式了。张宏亮老师此前在浙江大学按照这一模式教授了「因果推断和机器学习」课程,效果甚佳:学生们能够逐渐建立起研究设计的理念,并在构造识别策略时适当地嵌入机器学习方法。

   

作者:林育莉 (中山大学)
邮箱:linyuliyx@163.com

编者按:本文摘译自下文,特此致谢!
Source:Cattaneo M D, Titiunik R, Vazquez-Bare G. Analysis of regression-discontinuity designs with multiple cutoffs or multiple scores[J]. The Stata Journal, 2020, 20(4): 866-891. -PDF-


目录[

  • 1. 简介

  • 2. 方法介绍

    • 2.1 非累积多断点

    • 2.2 累积多断点

    • 2.3 多分配变量

  • 3. 命令介绍

  • 4. Stata 实操

    • 4.1 非累积多断点

    • 4.2 累积多断点

    • 4.3 多分配变量

  • 5. 参考文献

  • 6. 相关推文


1. 简介

在经济学、政治学、公共学等学科中,学者通常会遇到具有多断点或多分配变量的断点回归问题。在本文中,我们将介绍 Stata 的 rdmulti 命令,它由 rdmcrdmcplotrdms 三个命令组成,并可用于分析具有多断点和多分配变量问题。同时,本文也将使用模拟数据来展示 rdmulti 命令涵盖的所有三个情形设定:非累积多断点、累积多断点和多分配变量。

  • 非累积多断点 (Noncumulative multiple cutoffffs):数据中每个单位都面临一个断点且不同单位的断点不相同;
  • 累积多断点 (Cumulative multiple cutoffffs):单位有一个分配变量和一系列有序的断点;
  • 多分配变量 (Multiple scores):政策处理由两个或者多个分配变量 (比如经度和纬度) 各自的断点决定。

2. 方法介绍

2.1 非累积多断点

在这种情况下,模型中有且只有一个分配变量 ,结果变量为向量 。每一个单位有一个断点 ,其中 。例如,Chay 等 (2005) 研究了智利政府于 1990 年提出的一项学校改善计划的效果。在这项计划中,表现不佳的学校可获得用于改善基础设施额和师资培训等项目的公共资金。该项目的分配是基于学校水平的测试分配变量是否低于断点值。在智利的 13 个行政区中,断点值是不同的。在该例中, 代表每所学校的行政区域。

与标准单断点 RD 方法不同, 是随机变量。当个体的分配变量超过相应的临界值时,将接受处理,即 。该设计的关键特征是变量 对总体进行划分,即每个单位面对有一个 值。从标记看,无论他或她所面临的具体临界值是多少,每个人的潜在结果都是相同的(Cattaneo 等,2020)。这里仅考虑有限多断点,因为这是实证中最自然的设置。在实践中,连续截断被离散用于估计和推断,具体如下:

在规则条件下,即包括了条件期望的平滑性,具体的断点处理效应为:


更为规范地定义为:


混合 RD 估计 (Pooled RD estimate) 是通过对分配变量去断点化实现,,从而使断点值归零。


其中,


所有这些参数都可以很容易通过使用局部多项式方法来估计,并可以在适当的情况下对断点进行调整。即除了汇集数据外,RD 方法还可以单独应用于每个截止值。因此,rdmulti 使用 Calonico 等 (2017) 的 rdrobust 命令,以实现基于局部多项式方法的带宽选择、估计和推理。

混合参数 的权重是通过 来进行估计的,详情可参见 Cattaneo 等 (2016)。如果给定带宽为


当用户没有指定时,rdmc 命令在估计混合效应时可使用 rdrobust 选择的带宽来估计权重。

2.2 累积多断点

在具有累积多断点模型中,个体对分配变量的不同范围接受不同的处理 (或不同的处理程度)。在这种设定下,如果 小于 则接受处理 1,如果 小于 且大于或等于 则接受处理 2,以此类推,直到最后的处理值满足 不小于 。例如,Brollo 等 (2013) 审查联邦转移金额对巴西各城市政治腐败的影响时,市政府获得的联邦转移金额取决于市政当局的人口,并在特定的断点上发生离散变化。比如,人口少于 10189 的城市获得一定数额,人口在 10189 到 13585 之间的城市获得较大数额,以此类推。

将这些处理的值记为 ,则处理变量为 。在标准的规律性条件下,有:


与非累积多断点的情况不同,人口是不分区的,每个观察值可以用来估计两个不同的 (但在分配变量维度上是连续的) 处理效果。例如,接受处理 的单位,在估计 时作为 “处理组” (即在断点 之上),在估计 时作为 “控制组” (即在断点 之下)。因此,特定断点的估计量可能不是独立的,尽管只要每个断点周围的带宽随样本量减小,这种依赖就会逐渐消失。另一方面,带宽可以选择为不重叠,以确保观察值只使用一次。

一旦数据被分配到每个被分析的断点,局部多项式方法也可以应用于累积多断点情况下的断点。

2.3 多分配变量

在多核心 RD 方法中,其处理时基于多个分配变量和一些确定处理 “部位” 或 “区域” 的函数来分配的。我们重点讨论了两个分配变量 的情况,这是迄今为止实证工作中最常见的情况。例如,Matsudaira (2008) 估计了一项强制性的暑期学校计划的效果,该计划指定给那些在数学和语言考试中得分都不超过预设断点值的学生。多个分配变量的另一个常见情况发生在根据地理位置 (例如纬度和经度) 进行处理的时候。例如,Keele 和 Titiunik (2015) 通过比较相邻媒体市场的选民来讨论政治竞选广告对选民投票率和政治态度的影响。

这种类型的赋值定义了处理区域边界上的连续处理效应,用 表示。例如,如果将处理分配给在语言和数学上得分低于 50 的学生,则处理边界为 ,该点的处理效应为:


且在规则条件下,


其中 分别代表了控制区域和处理区域, 是一个度量标准。

由于估计整个处理效应曲线在实践中可能是不可行的,因此通常定义一组感兴趣的边界点来估计 RD 处理效果。例如,在前面的例子中,边界确定处理分配的三个断点可以是 。另一方面,混合 RD 估计需要定义到断点的某种距离度量,例如垂直 (欧几里德) 距离。这个距离可以看作是最近的分配变量 ,它允许定义混合估计。

3. 命令介绍

rdmulti 命令包的三个命令 rdmcrdmcplotrdms,安装命令如下:

net install st0620, from(http://www.stata-journal.com/software/sj20-4)

rdmc 命令具有如下特征:

  • 适用于非累积和累积多断点方法;
  • 可计算混合或特定断点的 RD 处理效应;
  • 使用局部多项式估计和提供稳健的 robust 偏差校正推理过程;
  • 允许事后估计和推断。

rdmc 命令的语法结构为:

rdmc depvar runvar [if] [in], cvar(cutoff_var) [fuzzy(string)
derivvar(string) pooled_opt(string) verbose pvar(string)
qvar(string) hvar(string) hrightvar(string) bvar(string)
brightvar(string) rhovar(string) covsvar(string)
covsdropvar(string) kernelvar(string) weightsvar(string)
bwselectvar(string) scaleparvar(string) scaleregulvar(string)
masspointsvar(string) bwcheckvar(string) bwrestrictvar(string)
stdvarsvar(string) vcevar(string) level(#) plot graph_opt(string)]
  • depvar: 被解释变量;
  • runvar:分配变量。

rdmcplotrdmc 的配套命令,也可进行多断点回归,提供 RD 图形。rdmcplot 命令的语法结构为:

rdmcplot depvar runvar [if] [in], cvar(cutoff_var) [nbinsvar(string)
nbinsrightvar(string) binselectvar(string) scalevar(string)
scalerightvar(string) supportvar(string)
supportrightvar(string) pvar(string) hvar(string)
hrightvar(string) kernelvar(string) weightsvar(string)
covsvar(string) covsevalvar(string) covsdropvar(string)
binsoptvar(string) lineoptvar(string) xlineoptvar(string)
ci(cilevel) nobins nopoly noxline nodraw genvars]

rdms 命令具有如下特征:

  • 适用于多分配变量 RDD,特别是累积断点和两个分配变量的设定;
  • 它基于局部多项式方法计算混合和特定断点的 RD 处理效应,并允许事后估计和推断。

其语法结构为:

rdms depvar runvar1 [runvar2 treatvar] [if] [in], cvar(cutoff_var1
[cutoff_var2]) [range(range1 [range2]) xnorm(string) fuzzy(string)
derivvar(string) pooled_opt(string) pvar(string) qvar(string)
hvar(string) hrightvar(string) bvar(string) brightvar(string)
rhovar(string) covsvar(string) covsdropvar(string)
kernelvar(string) weightsvar(string) bwselectvar(string)
scaleparvar(string) scaleregulvar(string) masspointsvar(string)
bwcheckvar(string) bwrestrictvar(string) stdvarsvar(string)
vcevar(string) level(#) plot graph_opt(string)]
  • depvar:被解释变量;
  • runvar1:累积断点设定中的分配变量或称分配变量);
  • runvar2:若指定,则是二元分配变量设定中的第二分配变量;
  • treatvar:若指定,则是二元分配变量设定中的处理指标。

4. Stata 实操

4.1 非累积多断点

我们使用模拟数据集 simdata_multic.dta 来说明 rdmc 命令。在数据集中, 是结果变量, 是分配变量, 是表示样本中每个单位对应的断点值的变量, 是处理变量。同时,数据中有两个不同的断点值,即 33 和 66,并且每个都有相同的样本容量。

*数据下载地址
*https://raw.githubusercontent.com/rdpackages/rdmulti/master/stata/simdata_multic.dta
*https://gitee.com/arlionn/data/blob/master/data01/rdmulti/simdata_multic.dta

use simdata_multic.dta, clear
sum
    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
c | 2,000 49.5 16.50413 33 66
x | 2,000 50.79875 28.95934 .0184725 99.97507
t | 2,000 .516 .4998689 0 1
y | 2,000 1728.135 545.0856 540.0849 3015.232

rdmc 的基本语法如下所示:

. rdmc y x ,cvar(c)

Cutoff-specific RD estimation with robust bias-corrected inference
-----------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
---------+-------------------------------------------------------------------
33| 484.831 0.00 421.18 552.53 14.66 14.66 289 0.540
66| 297.981 0.00 220.35 362.27 11.95 11.95 246 0.460
---------+-------------------------------------------------------------------
Weighted| 398.915 0.00 348.74 445.14 . . 535 .
Pooled| 436.400 0.00 179.34 676.63 13.68 13.68 550 .

可以看出,上述结果包括每个断点的特定断点估计,以及相应的 robust 偏差校正 p 值、每个断点的 95% robust 置信区间和样本大小、以及两个 “全局” 估计。第一个是使用第 2 节中描述的估计权重的特定断点估计的加权平均值。这些估计权重显示在最后一列。第二个是通过规范分配变量获得的混合估计。虽然这两个估计量收敛到相同的总体参数,但它们在有限样本中可能有所不同,如上所示。在这个例子中,这两个断点上在统计学上是显著的。

上述显示中的所有结果都是使用 rdrobust 计算的。使用者可以为 rdrobust 指定 option,使用 opt() 计算混合估计。例如,下面的语法指定了 20 的带宽和混合估计的局部二次多项式。默认情况下,rdmc 在估计效果时省略了 rdrobust 的输出。混合效应估计的输出可以使用选项详细显示,我们在下面使用它来显示如何将 option 传递给 rdrobust

. rdmc y x, cvar(c) pooled_opt(h(20) p(2)) verbose

Sharp RD estimates using local polynomial regression.

Cutoff c = 0 | Left of c Right of c Number of obs = 2000
-------------------+---------------------- BW type = Manual
Number of obs | 968 1032 Kernel = Triangular
Eff. Number of obs | 409 416 VCE method = NN
Order est. (p) | 2 2
Order bias (q) | 3 3
BW est. (h) | 20.000 20.000
BW bias (b) | 20.000 20.000
rho (h/b) | 1.000 1.000

Outcome: y. Running variable: __000002.
---------------------------------------------------------------------------
Method | Coef. Std. Err. z P>|z| [95% Conf. Interval]
--------------+------------------------------------------------------------
Conventional | 437.04 129.8 3.3671 0.001 182.643 691.441
Robust | - - 3.0118 0.003 185.618 877.381
---------------------------------------------------------------------------

Cutoff-specific RD estimation with robust bias-corrected inference
-----------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
---------+-------------------------------------------------------------------
33| 484.831 0.00 421.18 552.53 14.66 14.66 289 0.540
66| 297.981 0.00 220.35 362.27 11.95 11.95 246 0.460
---------+-------------------------------------------------------------------
Weighted| 398.915 0.00 348.74 445.14 . . 535 .
Pooled| 437.042 0.00 185.62 877.38 20.00 20.00 825 .

用户还可以修改每个特定截断值中的估计选项。下面的语法显示了如何通过在第一个截止值中设置 11 的带宽和在第二个截止值中设置 10 来手动更改特定截止值的估计选项。

. generate double h = 11 in 1
. replace h = 10 in 2
. rdmc y x, cvar(c) hvar(h)

Cutoff-specific RD estimation with robust bias-corrected inference
-----------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
---------+-------------------------------------------------------------------
33| 495.429 0.00 368.13 563.21 11.00 11.00 207 0.498
66| 303.769 0.00 220.40 403.32 10.00 10.00 209 0.502
---------+-------------------------------------------------------------------
Weighted| 399.138 0.00 321.56 455.23 . . 416 .
Pooled| 436.400 0.00 179.34 676.63 13.68 13.68 550 .

所有特定断点的选项都以类似的方式传递。定义一个新的长度变量,令它等于截断值,该变量指示其值中每个截止值的选项。以下语法指示在每个截止点不同的带宽选择方法。

. generate bwselect = "msetwo" in 1
. replace bwselect = "certwo" in 2
. rdmc y x, cvar(c) bwselectvar(bwselect)

Cutoff-specific RD estimation with robust bias-corrected inference
-----------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
---------+-------------------------------------------------------------------
33| 481.135 0.00 418.03 545.23 15.03 16.91 318 0.572
66| 298.835 0.00 227.70 367.26 14.85 7.95 238 0.428
---------+-------------------------------------------------------------------
Weighted| 403.100 0.00 355.73 449.87 . . 556 .
Pooled| 436.400 0.00 179.34 676.63 13.68 13.68 550 .

rdmc 命令在矩阵 中保存了偏差校正估计和方差,这允许使用 lincomtest 进行估计后检验。例如,要检验两个断点处的效果是否相同,可输入以下命令:

. rdmc y x, cvar(c)
. matlist e(b)
. lincom c1-c2

结果如下:

. rdmc y x, cvar(c)

Cutoff-specific RD estimation with robust bias-corrected inference
--------------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
------------+-------------------------------------------------------------------
33| 484.831 0.00 421.18 552.53 14.66 14.66 289 0.540
66| 297.981 0.00 220.35 362.27 11.95 11.95 246 0.460
------------+-------------------------------------------------------------------
Weighted| 398.915 0.00 348.74 445.14 . . 535 .
Pooled| 436.400 0.00 179.34 676.63 13.68 13.68 550 .
--------------------------------------------------------------------------------

. matlist e(b)

| c1 c2 weighted pooled
-------------+--------------------------------------------
y1 | 486.8578 291.3082 396.9415 427.9832

. lincom c1-c2

( 1) c1 - c2 = 0

------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
(1) | 195.550 49.331 3.96 0.000 98.863 292.236
------------------------------------------------------------------------------

rdmcplot 命令联合绘制每个断点的估计回归函数。

rdmcplot y x, cvar(c)
Figure 1. Multiple RD plot

rdmcplot 包括了 rdplot 的所有选项。例如,绘图可以限制在使用选项 hvar() 的带宽,并使用通过选项 pvar() 指定顺序的多项式。此选项允许用户在每个断点绘制线性拟合和估计处理效应。

generate p = 1 in 1/2
rdmcplot y x, cvar(c) hvar(h) pvar(p)
Figure 2. Multiple RD plot

选项 genvars 生成手工复制绘图所需的变量。这允许用户自定义绘图。下面的代码说明了如何使用此选项复制图 2。

rdmcplot y x, cvar(c) genvars
twoway (scatter rdmcplot_mean_y_1 rdmcplot_mean_x_1, mcolor(navy)) ///
(line rdmcplot_hat_y_1 rdmcplot_mean_x_1 if t==1, sort lcolor(navy)) ///
(line rdmcplot_hat_y_1 rdmcplot_mean_x_1 if t==0, sort lcolor(navy)) ///
(scatter rdmcplot_mean_y_2 rdmcplot_mean_x_2, mcolor(maroon)) ///
(line rdmcplot_hat_y_2 rdmcplot_mean_x_2 if t==1, sort lcolor(maroon)) ///
(line rdmcplot_hat_y_2 rdmcplot_mean_x_2 if t==0, sort lcolor(maroon)), ///
xline(33, lcolor(navy) lpattern(dash)) ///
xline(66, lcolor(maroon) lpattern(dash)) ///
legend(off)

4.2 累积多断点

利用模拟数据集 simdata_cumul.dta 来说明 rdms 命令进行累积截断。在此数据集中,分配变量范围为从 0 到 100,且分配变量低于 33 的单位接受处理级别 ,而分配变量高于 66 的单位接收另一个处理级别 。在此设定中,断点值在数据集中表示为变量,其中每一行表示一个断点值。

*数据下载地址
*https://raw.githubusercontent.com/rdpackages/rdmulti/master/stata/simdata_cumul.dta
*https://gitee.com/arlionn/data/blob/master/data01/rdmulti/simdata_cumul.dta

use simdata_cumul, clear
sum
tabulate c

结果如下:

. sum

Variable | Obs Mean Std. Dev. Min Max
---------+-----------------------------------------------------
x | 1,000 50.46639 28.69369 .0413166 99.8783
y | 1,000 1508.638 488.2752 658.4198 2480.568
c | 2 49.5 23.33452 33 66

. tabulate c

c | Freq. Percent Cum.
-------+-----------------------------------
33 | 1 50.00 50.00
66 | 1 50.00 100.00
-------+-----------------------------------
Total | 2 100.00

累积截断的语法类似于 rdmc。用户指定的结果变量、分配变量和断点如下:

. rdms y x, cvar(c)

Cutoff-specific RD estimation with robust bias-corrected inference
------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
-------+----------------------------------------------------------------
33| 395.492 0.000 363.76 423.86 15.11 15.11 286
66| 342.872 0.000 315.95 373.96 12.22 12.22 265
------------------------------------------------------------------------

每个特定断点效应的带宽、多项式顺序和核心等选项可以通过创建变量来指定。

. generate double h = 11 in 1
. replace h = 8 in 2
. generate kernel = "uniform" in 1
. replace kernel = "triangular" in 2
. rdms y x, cvar(c) hvar(h) kernelvar(kernel)

Cutoff-specific RD estimation with robust bias-corrected inference
------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
-------+----------------------------------------------------------
33| 394.470 0.000 351.65 438.72 11.00 11.00 215
66| 342.505 0.000 301.56 375.95 8.00 8.00 166
------------------------------------------------------------------

如果没有进一步的信息,rdms 命令可以使用断点 33 以上的任何观察值来估计第一个处理级别 的影响。这意味着使用了 [66,100] 范围内的一些观察值。但这些观察值接受第二个处理级别 。这一特性可能导致 的估计不一致。为了避免这个问题,用户可以指定每个截止点周围要使用的观察值范围。在这种情况下,我们可以将第一个断点 (33) 的范围限制在 0 到 65.5 之间,以确保不使用超过 66 的观测,第二个截止点 (66) 的范围从 33.5 到 100。

. generate double range_l = 0 in 1
. generate double range_r = 65.5 in 1
. replace range_l = 33.5 in 2
. replace range_r = 100 in 2
. rdms y x, cvar(c) range(range_l range_r)

Cutoff-specific RD estimation with robust bias-corrected inference
------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
-------+----------------------------------------------------------
33| 394.698 0.000 356.12 430.45 10.96 10.96 214
66| 342.180 0.000 312.20 372.04 11.18 11.18 246

混合估计可以通过 rdmc 获得。为此,我们需要为断点值分配样本中的每个单位。一种可能性是将每个单位分配到最近的断点值。生成一个名为断点的变量,对于低于 49.5 的单位 (33 和 66 之间的中点),断点等于 33,对于高于 49.5 的单位,断点等于 66。

. generate double cutoff = c[1]*(x<=49.5) + c[2]*(x>49.5)
. rdmc y x, cvar(cutoff)

Cutoff-specific RD estimation with robust bias-corrected inference
---------------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh Weight
--------+------------------------------------------------------------------
33| 389.528 0.00 332.94 443.69 6.26 6.26 119 0.531
66| 341.015 0.00 300.39 377.33 5.04 5.04 105 0.469
--------+------------------------------------------------------------------
Weighted| 366.788 0.00 330.63 399.64 . . 224 .
Pooled| 363.968 0.00 180.11 551.78 8.14 8.14 333 .

最后,使用断点变量通过命令 rdmcplot 绘制回归函数。

generate binsopt = "mcolor(navy)" in 1/2
generate xlineopt = "lcolor(navy) lpattern(dash)" in 1/2
rdmcplot y x, cvar(cutoff) binsoptvar(binsopt) xlineopt(xlineopt) nopoly
Figure 3. Cumulative cutoffs

4.3 多分配变量

利用模拟数据集 simdata_multis.dta 来说明使用 rdms 对两个分配变量的 RD 设计进行分析。在这个数据集中,有两个分配变量,分别为 ,其范围在 0 到 100 之间。当 时,该单位接受处理。边界上的三个截断点为 (25, 50),(50, 50) 和 (50, 25)。

*数据下载地址
*https://raw.githubusercontent.com/rdpackages/rdmulti/master/stata/simdata_multis.dta
*https://gitee.com/arlionn/data/blob/master/data01/rdmulti/simdata_multis.dta

. use simdata_multis, clear

. summarize

Variable | Obs Mean Std. Dev. Min Max
----------+-----------------------------------------------------
x1 | 1,000 50.22881 28.87868 .6323666 99.94879
x2 | 1,000 50.63572 29.1905 .0775479 99.78458
t | 1,000 .223 .4164666 0 1
y | 1,000 728.5048 205.5627 329.4558 1372.777
c1 | 3 41.66667 14.43376 25 50
----------+-----------------------------------------------------
c2 | 3 41.66667 14.43376 25 50

. list c1 c2 in 1/3

+---------+
| c1 c2 |
|---------|
1. | 25 50 |
2. | 50 50 |
3. | 50 25 |
+---------+

下面的代码提供了这个设置的简单可视化。

generate xaux = 50 in 1/50
generate yaux = _n in 1/50

#d;
twoway (scatter x2 x1 if t==0, msize(small) mfcolor(white) msymbol(X))
(scatter x2 x1 if t==1, msize(small) mfcolor(white) msymbol(T))
(function y = 50, range(0 50) lcolor(black) lwidth(medthick))
(line yaux xaux, lcolor(black) lwidth(medthick))
(scatteri 50 25, msize(large) mcolor(black))
(scatteri 50 50, msize(large) mcolor(black))
(scatteri 25 50, msize(large) mcolor(black)),
text(25 25 "Treated", size(vlarge))
text(60 60 "Control", size(vlarge))
legend(off);
#d cr

输出图形如下:

Figure 4. Bivariate score
. rdms y x1 x2 t, cvar(c1 c2)

Cutoff-specific RD estimation with robust bias-corrected inference
-------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
--------+----------------------------------------------------------
(25,50)| 243.842 0.111 -50.93 491.18 11.12 11.12 42
(50,50)| 578.691 0.000 410.83 764.88 13.83 13.83 47
(50,25)| 722.444 0.000 451.49 1060.15 10.83 10.83 38

估计每个特定断点估计的信息可以通过前文获取。例如,要指定特定断点的带宽。

. generate double h = 15 in 1
. replace h = 13 in 2
. replace h = 17 in 3
. rdms y x1 x2 t, cvar(c1 c2) hvar(h)

Cutoff-specific RD estimation with robust bias-corrected inference
-------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
--------+----------------------------------------------------------
(25,50)| 336.121 0.233 -119.35 491.36 15.00 15.00 87
(50,50)| 583.047 0.000 501.94 1101.24 13.00 13.00 42
(50,25)| 620.692 0.000 464.92 1159.99 17.00 17.00 86

最后,xnorm() 选项允许用户指定规范化的分配变量来计算混合估计。在这种情况下,我们将标准化分配变量定义为与处理分配所定义的边界最接近的垂直距离,正值表示处理单位,负值表示控制单位。

. generate double aux1 = abs(50 - x1)
. generate double aux2 = abs(50 - x2)
. egen xnorm = rowmin(aux1 aux2)
. replace xnorm = xnorm*(2*t-1)
. rdms y x1 x2 t, cvar(c1 c2) xnorm(xnorm)

Cutoff-specific RD estimation with robust bias-corrected inference
-------------------------------------------------------------------
Cutoff| Coef. P>|z| [95% Conf. Int.] hl hr Nh
--------+----------------------------------------------------------
(25,50)| 243.842 0.111 -50.93 491.18 11.12 11.12 42
(50,50)| 578.691 0.000 410.83 764.88 13.83 13.83 47
(50,25)| 722.444 0.000 451.49 1060.15 10.83 10.83 38
--------+----------------------------------------------------------
Pooled| 447.017 0.000 389.33 496.85 12.73 12.73 433

5. 参考文献

  • Chay K Y, McEwan P J, Urquiola M. The central role of noise in evaluating interventions that use test scores to rank schools[J]. American Economic Review, 2005, 95(4): 1237-1258. -PDF-
  • Matsudaira J D. Mandatory summer school and student achievement[J]. Journal of Econometrics, 2008, 142(2): 829-850. -PDF-
  • Brollo F, Nannicini T, Perotti R, et al. The political resource curse[J]. American Economic Review, 2013, 103(5): 1759-96.-PDF-
  • Keele L, Titiunik R, Zubizarreta J R. Enhancing a geographic regression discontinuity design through matching to estimate the effect of ballot initiatives on voter turnout[J]. Journal of the Royal Statistical Society. Series A (Statistics in Society), 2015: 223-239. -PDF-
  • Calonico S, Cattaneo M D, Farrell M H, et al. rdrobust: Software for regression-discontinuity designs[J]. The Stata Journal, 2017, 17(2): 372-404. -PDF-
  • Cattaneo M D, Titiunik R, Vazquez-Bare G. Analysis of regression-discontinuity designs with multiple cutoffs or multiple scores[J]. The Stata Journal, 2020, 20(4): 866-891. -PDF-

6. 相关推文

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

  • 专题:断点回归RDD
    • RDD:离散变量可以作为断点回归的分配变量吗?
    • rddensity, lpdensity无法安装?那就手动安装
    • RDD:断点回归可以加入控制变量吗?
    • 断点回归RDD:样本少时如何做?
    • Stata:断点回归分析-RDD-文献和命令
    • Stata:两本断点回归分析-RDD-易懂教程
    • Stata:RDD-中可以加入控制变量
    • Stata:时间断点回归RDD的几个要点
    • Stata:断点回归分析-(RDD)-文献和命令
    • Stata:断点回归RDD简明教程
    • RDD:断点回归的非参数估计及Stata实现
    • Stata: 两本断点回归分析 (RDD) 易懂教程
    • Stata: 断点回归 (RDD) 中的平滑性检验
    • Stata 新命令:多断点 RDD 分析 - rdmc
    • RDD 最新进展:多断点 RDD、多分配变量 RDD
  • 专题:内生性-因果推断
    • Abadie新作:简明IV,DID,RDD教程和综述

🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。 请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。 我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

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

🍏 关于我们

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


连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
 最新文章