查看原文
其他

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

连享会 连享会 2023-02-21

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

连享会 · 2022 面板数据因果推断专题

作者:高净鹤 (东北财经大学)
邮箱: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. 简介

  • 2. 理论背景

  • 3. Stata 实操

    • 3.1 命令介绍

    • 3.2 命令应用

  • 4. 注意事项

    • 4.1 在模糊 RDD 和 RKD 上的应用

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

    • 4.3 允许异质性的处理效应

  • 5. 相关推文



1. 简介

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

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

2. 理论背景

参考精确 RDD 模型,考虑一个随机样本 ,其中 分别为接受和未接受处理的潜在产出。处理 由超过 这一阈值的驱动变量所决定,即 。因此观察到的样本 满足

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

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

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

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

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

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

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

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

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

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

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

其中, 估计的常数项:

估计的常数项:

同样,

因此,

然而,,因此

。接下来证明 ,对于 。替换 ,式  (4)  和  (5)  等价于:

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

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

其中,。式 (18) 也可以做类似的展开。式 (15)、(16)、(19) 分别等价于式 (2)、(3)、(8)。

如上所示,RDD 估计值的偏差仅与真实 DGP 的 CEF 三阶导数成正比。式 (19) 中的三阶导数 与式 (9) 中的相同,因此对于

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

🍎  连享会 · 2022 面板数据因果推断专题课程
👇  点击下方海报可了解课程详情!

👇  也可扫码获取课程介绍

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

  • 专题:Stata绘图
    • Stata绘图:世行可视化案例-条形图-密度函数图-地图-断点回归图-散点图
  • 专题:断点回归RDD
    • Stata:聚束效应-bunching-另类断点回归
    • 倒U型+RDD:利用断点回归检验 U 形关系
    • Stata:基于大带宽的断点分位数回归稳健推断-rdqte
    • Stata:RDD-DID-断点回归与倍分法完美结合
    • RDD断点回归:多个断点多个分配变量如何处理
    • Stata+R:一文读懂精确断点回归-RDD
    • RDD:离散变量可以作为断点回归的分配变量吗?
    • RDD:断点回归可以加入控制变量吗?
    • 断点回归RDD:样本少时如何做?
    • Stata:断点回归分析-RDD-文献和命令
    • Stata:两本断点回归分析-RDD-易懂教程
    • Stata:时间断点回归RDD的几个要点
    • Stata:断点回归分析-(RDD)-文献和命令
    • Stata:断点回归RDD简明教程
    • RDD:断点回归的非参数估计及Stata实现
    • Stata: 两本断点回归分析 (RDD) 易懂教程
    • Stata: 断点回归 (RDD) 中的平滑性检验
    • Stata 新命令:多断点 RDD 分析 - rdmc
    • RDD 最新进展:多断点 RDD、多分配变量 RDD

课程推荐:因果推断实用计量方法
主讲老师:邱嘉平教授
🍓 课程主页https://gitee.com/lianxh/YGqjp

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

🍏 关于我们

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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存