Stata:RDD与RKD的最优模型选择-pzms

发布时间:2022-10-08 阅读 861

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:高净鹤 (东北财经大学)
邮箱jh.gaook@gmail.com

编者按:本文主要参考自下文,特此致谢!
Source:Kettlewell N, Siminski P. Optimal model selection in RDD and related settings using placebo zones[J]. Life Course Centre Working Paper, 2020 (21). -PDF-


目录


1. 简介

断点回归 (RDD) 和拐点回归 (RKD) 是实证经济学中重要的工具。然而,估计方法的变化是多维度的,如带宽、函数形式、核密度、协变量等,并且在阈值两侧也可以不一致,这使得研究中在实证中通常要面临许多潜在估计方案的选择。在特定的应用情境下,估计值可能会因研究人员的选择而存在较大差异。虽然在模型选择过程中存在各种指导准则,但这些准则通常只针对其中一个维度。

本文提出了一种用于 RDD、RKD 和相关 IV 估计模型选择的新方法。该方法允许产生带宽、多项式和任何其他选择参数的最佳组合。同时,这种方法还可以告知模型类别的选择 (例如 RDD 与 cohort-IV) ,以及任何其他选择,包括协变量、核密度或其他权重等。

2. 理论背景

参考精确 RDD 模型,考虑一个随机样本 (Yi(0),Yi(1),Xi)i=1,2,,n,其中 Yi(0) 和 Yi(1) 分别为接受和未接受处理的潜在产出。处理 (T) 由超过 X=0 这一阈值的驱动变量所决定,即 Ti=1(Xi0)。因此观察到的样本 (Yi,Xi) 满足 Yi=(1Ti)Yi(0)+TiYi(1)

感兴趣的参数是在阈值处的平均处理效应 τ=E[Yi(1)Yi(0)|Xi=0]τ 的候选估计方式有很多,在一些充分的条件下,本文的模型选择方法最终收敛于 τ 的所有估计方式中具有最低 MSE(τ^) 的估计方式,那么该方法是渐进最优的。随着安慰剂区重复次数 m 趋于无穷大,连续安慰剂阈值之间的距离保持不变。

为了建立渐进最优性,就要证明对于每一种候选估计方式,阈值估计的 MSE 与每个相关安慰剂估计的 MSE 相同,即要证明:

其中,其中 X=k 是每个安慰剂阈值的位置,b 是用于此估计方式的带宽。对于每个候选估计方式,我们观察每个 k 的 τk^。因为 τk=0,所以 MSE(τk^)=E(τk^)。如果等式 (1) 成立,那么 E(τk^)E(τk) 与 k 无关,且 E(τk^)=MSE(τ^)

本文在以下假设条件下证明等式 (1) 成立:

  • X 是均匀分布的;
  • Yi(0) 和 Yi(1) 同方差;
  • Yi(0) 和 Yi(1) 关于 X 的条件期望是连续的、平滑的,并且四阶导数为零;
  • 平均处理效应关于 X 的二阶导数为零。

考虑一组局部线性候选估计方式,每个估计量具有独特的对称带宽 (b)τb^ 表示带宽为 b 的局部线性估计的处理效应。估计的处理效应是 τb^=α2b^α1b^。其中 α2b^ 和 α1b^ 可以使用阈值两侧的两个独立线性回归来估计。为简单起见,去掉下标 i,这些回归方程为:

类似地,定义 τbk^ 为在安慰剂阈值 X=K (真正的断点为零) 处的断点估计,使用的是与上述相同的局部线性估计和带宽。τkb^=αk2b^αk1b^,其中 αk2b^ 和 αk1b^ 是来自以下回归的估计:

任意估计方式的处理效应的 MSE 为:

对于每一个局部线性回归,MSE(τb^) 是两个回归 (式 2 和式 3) 的方差及估计量偏差的函数:

假设 (3) 和 (4) 意味着真正的 DGP,采用以下形式:

换句话说,这些假设意味着 CEF 可以是全局立方的,在阈值处有潜在的断点 (τ) 和拐点 (ϑ)。在 CEF 条件下,θ2x2 和 θ3x3 是式 (2) 和 (3) 中线性回归的省略变量,而 α1=α 和 α2=α+τ。因此使用线性模型估计 α1 和 aα2 是有偏差的。使用遗漏变量偏差公式:

其中,δ^L1b 是 θ2x2 对 x 估计的常数项:

δ^L2b 是 θ32x3 对 x 估计的常数项:

同样,

因此,

然而,δ^R1b=δ^L1bδ^R2b=δ^L2b,因此

Bias(τb^)=2δ^L2b。接下来证明 Bias(τb^)=Bias(τkb^),对于 |k|>b。替换 xk=xk,式 (4) 和 (5) 等价于:

式 (8) 中的 DGP 可以表示为:

展开式 (17) 并且合并同类项:

其中,π0=α+τ+kθ1+k2θ2+k3θ3π1=θ1+ϑ+2kθ2+3k2θ3π2=θ2+3kθ3。式 (18) 也可以做类似的展开。式 (15)、(16)、(19) 分别等价于式 (2)、(3)、(8)。

如上所示,RDD 估计值的偏差仅与真实 DGP 的 CEF 三阶导数成正比。式 (19) 中的三阶导数 (6θ3) 与式 (9) 中的相同,因此对于 |k|>bBias(τkb^)=Bias(τb^)

在给定假设 (1) 和 (2) 的情况下,很容易证明 Var(τkb^)=Var(τb^)。因此,MSE(τkb^)=MSE(τb^),在假设 (1)-(4) 下,本文的方法满足渐进最优性。

3. Stata 实操

3.1 命令介绍

命令安装:

net des pzms 
net install pzms.pkg, replace 
net get pzms.pkg,     replace    // 范例数据

命令语法

pzms depvar runvar [if] [in], maxbw(real) [options]

其中,maxbw(real) 用于估计的最大带宽。options 包括:

  • c(#):处理效应的断点值,默认为零。

  • minbw(#):用于估计的最小带宽,未指定时被设置为 0.1*maxbw

  • pzrange(# #):安慰剂区的范围,在用 maxbw 中指定的值划分该范围时,必须在其内部包括 c(#)。默认值是驱动变量的全部范围。

  • p(#):估计时要考虑的多项式阶数,默认为 1,即线性候选模型;当指定为 2 时,将同时考虑线性和二次项。

  • deriv(#):指定候选模型的导数阶数,精确 RDD 默认是 0,精确 RKD 默认为 1。

  • pzstenum(#):要执行的安慰剂区迭代的次数,为最大迭代次数。如果还指定了 pzstepsize,则不能使用pzstepnum。如果 pzstepnumpzstepsize 都没有指定,则默认值为 50。

  • pzstepsize(#):连续安慰剂阈值之间的距离,如果还指定了 pzstepnum,则不能使用 pzstepsize

  • bwstepnum(#):最大带宽 maxbw 和最小带宽 minbw 之间的带宽数。如果没有指定 bwstepnumbwstepsize,则默认为 20。

  • bwstepsize(#):考虑的候选估计之间的带宽增加 (以驱动变量为单位)。

  • nolog:不显示迭代计数。

  • vce(string):指定标准误的类型。可以使用任何可用于 Stata 命令回归的 vce。默认是同方差标准误差。

  • covs(varlist):指定要包含在候选模型中的协变量。如果选择了这个选项,将为每一级多项式 p(#)、有和没有协变量都估计一个模型。例如,如果指定 p(2),将有四个模型进行比较,即无协变量的线性模型、有协变量的线性模型、无协变量的二次模型和有协变量的二次模型。

  • kernel(string):核密度类型。支持均匀核密度 uniform 和三角核密度 triangular。默认为 uniform

  • weight(varname):指定分析权重。除 mcustom# 中指定的模型外,该权重将应用于考虑的每个模型。

  • collapse(string):实现算法之前在驱动变量的水平上折叠数据。如果指定了 collapse(weight),则估算值将根据折叠箱对应的观测数进行加权。如果不希望在数据折叠时对观测频率使用权重,则使用 collapse(noweight)。当驱动变量是离散的,并且有许多观测值或安慰剂区迭代时,折叠选项可以大大提高速度,而不会影响估计。

  • bwlfix(#):在阈值左侧固定带宽长度。当受数据限制,如左侧带宽较短,右侧带宽较长时,或者研究非对称带宽,通常使用该选项。

  • bwrfix(#):在阈值右侧固定带宽长度。

  • donut(# #):生成一个核密度图,描述最优模型的安慰剂估计的分布。该图使用 Stata 的 kdensity 命令和默认设置。

  • pzplot:删除指定范围内的观测值。第一个 # 指定在该值内的驱动变量的观察值将被删除。第二个 # 指定在这个驱动变量的值中,在临界值右边的观察值将被删除。

  • mcustom#(# #, mcustom_options):自定义特性候选集模型。通过使用 mcustom1()mcustom2() 等,可以指定多达 10 个自定义模型。mcustom 中的第一个参数是处理阈值左侧的多项式阶数,第二个参数是右侧的多项式阶数。例如,如果想估计一个左边是线性的,右边是二次的模型,可以指定 mcustom(1 2)mcustom_options 包括:

    • covs(varlist):指定要包含在自定义模型中的协变量。
    • kernel(kernal type):在自定义模型中核密度类型。支持均匀和三角。默认为 uniform
    • weight(varname):在自定义模型中指定分析权重。

3.2 命令应用

虽然该方法可用于在一系列维度上变化的候选估计之间进行选择,但它的主要用途是帮助 RDD 估计选择带宽和多项式阶数。

. * 使用默认设置进行模型选择和估计
. use pzms_example_data.dta, clear
. pzms y x, maxbw(0.99)

Estimated Treatment Effect Using Optimal Model   Observations:        1330
                                                 Threshold:              0
                                                 vce:                        
---------------------------------------------------------------------------
  Inference method |   Coef.  Std. Err.  t     P>|t|   [95% Conf. Interval]
-------------------+-------------------------------------------------------
     Homoscedastic |  .29204   .01644  17.768  0.0000  0.2598      0.3243
   KS rand. infer. |  .29204     .013  22.466  0.0000  0.2611      0.3230
---------------------------------------------------------------------------
. * 二阶多项式和聚类标准误
. pzms y x, maxbw(0.99) p(2) vce(cluster x)

Estimated Treatment Effect Using Optimal Model    Observations:       1330
                                                  Threshold:             0
                                                  vce:           cluster x
---------------------------------------------------------------------------
  Inference method |   Coef.  Std. Err.  t     P>|t|   [95% Conf. Interval]
-------------------+-------------------------------------------------------
            Robust |  .29204   .01587    18.4  0.0000  0.2606       0.3234
   KS rand. infer. |  .29204     .013  22.466  0.0000  0.2611       0.3230
---------------------------------------------------------------------------
. * 增加带宽数和安慰剂阈值的距离
. pzms y x, maxbw(0.99) p(2) vce(cluster x) bwstepnum(25) pzstepsize(0.02)

Estimated Treatment Effect Using Optimal Model    Observations:       1310
                                                  Threshold:             0
                                                  vce:           cluster x
---------------------------------------------------------------------------
  Inference method |   Coef. Std. Err.  t     P>|t|   [95% Conf. Interval]
-------------------+-------------------------------------------------------
            Robust |  .29196  .01614  18.089  0.0000  0.2600      0.3239
   KS rand. infer. |  .29196  .01235  23.645  0.0000  0.2653      0.3186
---------------------------------------------------------------------------
. * 考虑一个具有三角核的自定义线性函数模型,并利用最优模型绘制安慰剂估计
. pzms y x, maxbw(0.99) p(2) vce(cluster x) bwstepnum(25)       ///
>     pzstepsize(0.02) mcustom(1 1, kernel(triangular)) pzplot

Estimated Treatment Effect Using Optimal Model    Observations:       1610
                                                  Threshold:             0
                                                  vce:           cluster x
---------------------------------------------------------------------------
  Inference method |   Coef.  Std. Err.  t     P>|t|   [95% Conf. Interval]
-------------------+-------------------------------------------------------
            Robust |  .29787   .01592  18.712  0.0000  0.2664      0.3293
   KS rand. infer. |  .29787    .0122   24.41  0.0000  0.2721      0.3236
---------------------------------------------------------------------------

4. 注意事项

本文的方法不应被视为能毫无问题地自动选择客观最佳模型。接下来将讨论一些复杂情况和使用该方法的建议。

4.1 在模糊 RDD 和 RKD 上的应用

对于模糊 RDD 和 RKD 这些依赖于第一阶段设计的模型来说,在安慰剂区内可能不存在处理变量和驱动变量之间的第一阶段关系。在这样的模型中,一种可行的做法是,使用本文的方法为简化形式的断点 (或拐点) 选择一个估计模型,即阈值范围内结果变量的断点 (或拐点)。

4.2 如何为安慰剂区检验设定最大的带宽?

本文的方法必须为估计模型选择最大带宽,当不存在自然约束时,建议在选择最大带宽之前对数据进行检查。对于给定的模型类型,一个关键的考虑因素是处理效应估计值和带宽之间的关系。当选择某一个带宽时,处理效应发生明显变化,可以选择该带宽作为最大带宽。

4.3 允许异质性的处理效应

对不同类别的模型进行比较是困难的,因为不同类别的模型通常估计不同的参数。例如,模糊 RDD 模型估计 LATE,而 RKD 估计 MTE,本文的方法可用于比较这些模型的表现。因此使用该方法时应考虑潜在处理效应异质性的影响。考虑到将处理效应异质性施加到安慰剂区的情况,在 Kettlewell 和 Siminski (2020) 中,作者演示了如何解决这个问题。

5. 相关推文

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

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh