凡是搞计量经济的,都关注这个号了
邮箱:
[email protected]
所有计量经济圈方法论
丛的code程序
, 宏微观
数据库和各种软
件都放在社群里.欢迎到计量经济圈社群交流访问
.
今天,一次性讲清楚! HonestDiD, 相对幅度约束和平滑性限制的区别与联系, 示例和代码都有。
HonestDiD 软件包实现了 Rambachan 和 Roth (2022) 开发的稳健推断和敏感性分析工具,适用于双重差分法(DiD)和事件研究设计。
Rambachan 和 Roth 提出的稳健推断方法,将一个直观认识形式化:即事前趋势的信息有助于揭示平行趋势假设是否被违反(通过事前的数据来检查或修正平行趋势假设的潜在偏离)。
他们提出了几种方法来形式化这一直观认识。下面来讲一讲两种常用的方法
:相对幅度约束和平滑性限制。
围绕HonestDID,参看1.
诚实双重差分法DID, 面板事件研究法和Bacon分解的经典应用文!
2.
平行趋势不可靠, 范式变了, 需考虑事前趋势可靠性, 稳健性和敏感性检验! 附代码和数据
,3.
2篇TOP5: 当前平行趋势检验方法有问题,新的平行趋势检验方法已经出现
,4.
平行趋势的敏感性检验, 结果能容忍违反多大程度的平行趋势
,5.
还是不行, pre-trend检验方法不行了, 新的平行趋势方式用起来!
6.
违反平行趋势就一定可怕吗? 事前趋势不平行是否会影响估计结果的稳健性?
7.
这平行趋势敏感性分析设置错了吧? 包括国内所谓顶刊
, 8.
平行趋势通不过, 该采取什么方法来更好地满足平行趋势呢?
9.
这样弄, 保证通过平行趋势! 通过PT检验的8大常规操作首次揭晓.
相对幅度的约束
一种规范化的方法是建立一个假设,即处理后出现的平行趋势偏离不应比处理前更大。这可以通过设定一个阈值 ( M) 来实现,该阈值限定处理后平行趋势偏离的最大值不得超过处理前偏离的特定倍数。例如,若设定 (
= 1
)
,则意味着处理后的平行趋势偏离不会超过处理前的最大偏离(在相邻时间段内)。
同理,若设定
(
= 2
)
,则表示处理后的偏离最多是处理前偏离的两倍。
下面平行趋势偏离指的是处理组与控制组的偏离,这样更容易理解,因为政策处理后我们倒没有什么平行趋势偏离,而是讲的是处理组与控制组的偏离程度。
相对幅度约束(Relative Magnitudes Restrictions)
是一种工具,用于在政策评估或趋势分析中限制处理组与控制组趋势偏离的比例变化。这种约束特别关注处理组与控制组趋势变化的
相对比例
(而不是绝对值),从而放松了严格的平行趋势假设。
核心概念:
1.
相对幅度约束的核心
:
其核心理念是假设处理后期偏离平行趋势的程度(即处理组与控制组的偏离)与处理前期观察到的偏离程度之间存在一定的联系。
通过设定一个参数(例如M或k),限制趋势偏离的相对幅度,确保趋势偏离不会过度放大或缩小。
2.
数学表达
:
在处理后期阶段,平行趋势的偏离量(即处理组与控制组的偏离)δpost相对于处理前期的平行趋势偏离量δpre不会超过比例k:∣δpost∣≤k⋅∣δpre∣
其中k是控制比例变化的参数。
3.
通俗描述
:
如果在处理前平行趋势的差异是“有限的”(比如某政策影响导致5%的偏离),我们可以通过k来假设处理后的处理组与控制组的偏离不会超过该值的k倍,从而更灵活地放宽平行趋势的假设。
举例说明:
1. 就业率的政策研究:
假设我们在研究某政策对某地区就业率的影响。
观测:政策实施前,处理组和对照组的就业率年增长差异在 2%-3% 之间。
相对幅度约束:假设政策实施后,处理组和对照组就业率的差异增长幅度不超过政策前差异的 2 倍 (k=2)。
2. 教育成绩变化:
在研究政策对学校成绩的影响时:
政策前某校每年的平均分差异为 5 分。
通过 k=1.5,约束政策后分数的变化差异不超过 7.5 分(1.5 倍的变化比例)。
相对幅度约束
主要是通过限制政策实施前后处理组与控制组的趋势变化比例来控制偏离平行趋势假设的程度。这个约束的核心在于控制处理组与控制组的趋势变化的比例,而不仅仅是绝对变化量。
这比
平滑性限制
(控制处理组与控制组趋势的绝对变化幅度)更适用于趋势变化幅度较大或存在比例差异的情况。
参数 k作为比例因子,影响假设的严格程度,k越小,意味着对处理组与控制组偏离趋势的限制越严格,假设也越保守;而k越大,意味着更灵活,允许更大的处理组与控制组的趋势偏离。
平滑性限制
另一种规范化的方法是限定处理后处理组与控制组的偏离不能偏离处理前趋势的线性外推太远。具体而言,可以规定事前趋势斜率在不同相邻时间段之间的变化不应超过一个特定的阈值 (M)。下图展示了一个包含三个时间段的示例。
当设定平滑性限制 (M=0) 时,意味着反事实趋势的差异完全是线性的;而较大的 (M) 值则允许更多的非线性变化。
在
HonestDID
框架中,
平滑性限制(Smoothness Restrictions)
指的是对偏离平行趋势假设的变化幅度进行限制的假设。这种方法通过引入结构性约束,确保偏离是逐步变化的,而不是突然的无规律变化。
什么是平滑性限制?
平滑性限制假设平行趋势的偏离并非不可预测或大幅波动,而是遵循一致且逐步变化的模式。其形式化表达为:
δt: 时间 t时偏离平行趋势的程度,即处理组与控制组的偏离。
ϵ: 一个小的预设值,控制相邻时间点之间偏离的最大变化幅度。
另一种形式,平滑性限制也可以通过限制偏离趋势的二阶导数等非线性条件(即趋势变化的加速度)来约束,确保偏离不会加速或减速得过快。
为什么要使用平滑性限制?
传统DID假设 δt=0(严格的平行趋势)。平滑性限制允许平行趋势(处理组与控制组)的非零偏离,但要求平行趋势偏离(处理组与控制组的偏离)是逐步变化的。
在许多实际情境中,平行趋势的偏离(处理组与控制组的偏离)不太可能在时间段间突然变化。平滑性限制符合这一直觉。
平滑性限制在 HonestDID 中的实现步骤
计算处理前时期的偏离平行趋势(处理组与控制组的偏离)的数值。
设置 ϵ的值,反映允许的最大处理组与控制组的趋势偏离变化幅度。
使用平滑性约束限制处理后时期的处理组与控制组的偏离,并据此调整处理效应的估计值。
探讨不同 ϵ值对处理效应估计的影响,从而提供稳健性检查。
实例分析
教育政策的影响:
背景
:处理前的数据表明,年份 t−1处理组与控制组的偏离为2分,年份t处理组与控制组的偏离为3分。
平滑性限制
:在平滑性限制(ϵ=1)下,处理后年份 t+1处理组与控制组的偏离被假定为不超过年份 t处理组与控制组的偏离的1分变化,即 ∣δt+1−3∣≤1。
这一限制确保偏离以受控、可预测的方式增长或减少,避免过拟合或不合理的趋势。
优势:
1.
灵活性
:允许非零偏离,同时保持结构性约束。
3.
稳健性
:减少对严格假设的敏感性,改进推断质量。
局限性:
ϵ的任意性
:选择 ϵ涉及主观判断,可能存在分歧。
与相对幅度限制的比较
Rambachan 和 Roth 的框架还允许对趋势差异设置多种其他限制。
稳健置信区间
在前述约束条件下,Rambachan 和 Roth 提供了一种构建稳健置信区间的方法。只要满足所设定的限制,这些置信区间能够确保至少有95%的概率覆盖真实的参数值。这些置信区间综合考虑了处理效应估计和事前趋势估计中可能存在的估计误差。
敏感性分析
上述方法同样非常适合进行敏感性分析。研究者可以根据不同的假设条件(例如,不同的 (
) 或 (M) 值)来报告相应的置信区间。他们还可以进一步报告某个特定结论的“临界值”,也就是在保持效应显著性的前提下,允许的最大 (
) 或 (M) 值。
示例使用——医疗补助扩展
以下以使用该软件包为例,探讨医疗补助(Medicaid)扩展对保险覆盖率的影响。使用来源于美国社区调查(ACS)的公开数据进行分析。首先加载相关数据和所需的软件包。
该数据为州级面板数据,包含健康保险覆盖率和医疗补助扩展的信息。其中,变量
dins
表示各州低收入无子女成年人的健康保险覆盖率,变量
yexp2
表示某州在《平价医疗法案》(Affordable Care Act)下扩展医疗补助覆盖的年份,若某州从未扩展,则该变量为空值。
基准DID模型的估计
为了简化分析过程,首先在非“分阶段的双重差分(DiD)框架下“评估对平行趋势假设违反的敏感性(关于分阶段政策处理方法的详细讨论将在后文展开)。因此,将样本限定在2015年及以前年份,并排除那些在2015年首次接受处理的少数州。这样,得到的数据集包括:部分州在2014年首次接受处理,而其他州在样本期间未接受处理。接下来,可以通过经典的双向固定效应事件研究方法来估计医疗补助扩展的影响。
其中,DD 表示某州在 2014 年首次受到处理时为 1,否则为 0。
上述代码完成了基准双向固定效应模型的估计,并通过图表展示医疗补助扩展对保险覆盖率的影响及其 95% 置信区间。
使用相对大小限制的敏感性分析
现在,可以使用
HonestDiD
软件包来进行敏感性分析。如果想要评估2014年(即处理实施后的第一年)估计值的敏感性,可以通过
pre()
和
post()
选项来分别指定处理前和处理后事件研究系数的索引(注意,2013年的系数已被标准化为零,因此不包括在内);这些系数可以使用Stata的
numlist
格式来表示。最后,
mvec()
选项用于指定
的值。
honestdid, pre(1/5) post(7/8) mvec(0.5(0.5)2)
首先,在本示例中,系数是按顺序排列的,因此
pre(1/5)
表示第1至第5项,
post(7/8)
表示第7和第8项。如果系数的顺序或位置有所不同,或者在回归模型中包含了控制变量,可以在
pre()
和
post()
中传递任意的索引列表。例如:
honestdid, pre(1 2 3 4 5) post(7 8) mvec(0.5(0.5)2)
上述命令将产生相同的结果。其次,请注意,
reghdfe
返回的系数向量中包括了参考年份2013的项。尽管在回归模型中省略了该变量,它仍然会出现在估计的系数向量中。可以通过
honestdid
指定忽略被省略的回归变量的选项,这在存在许多这样的协变量时尤其有用。例如:
上述命令将得到相同的结果,即系数向量中会包含因省略回归变量而产生的多个零项。但是,通过使用
omit
选项,只需指定已包含变量的索引即可。在这里,政策实施后的处理期索引为6和7,原因是参考期已经不包括在内了。需要注意的是,
omit
选项并不会排除零值;它排除的是那些在回归中被标记为省略的向量项(根据系数向量的列名来判断)。
最后,在没有控制变量的特殊情况下,或者用户已经将处理前和处理后的系数整理到一个自定义向量中时,也可以仅通过
numpre()
指定处理前的时期数。此时,
honestdid
会自动假设前
numpre
项是处理前的系数,其余的则为处理后的系数。
在所有情况下,
honestdid
命令的输出都会展示不同
值下的稳健置信区间。可以观察到,当
值接近2时,效果出现了“崩溃”,这表明在允许的平行趋势偏离程度达到处理前最大偏离的两倍以内时,显著性结果仍然是稳健的。
此外,还可以利用
coefplot
选项来可视化敏感性分析。这个选项可以在计算置信区间时直接传递,或者在
honestdid
命令的上一次结果基础上使用。
honestdid, coefplot cached
此外,还可以传递其他选项给
coefplot
:
local plotopts xtitle(Mbar) ytitle(95% Robust CI)
honestdid, cached coefplot `plotopts'
基于平滑性限制的敏感性分析
此外,还可以依据平滑性限制进行敏感性分析,即假设趋势差异的斜率在各个时期之间的变化不会超过参数MM。
local plotopts xtitle(M) ytitle(95% Robust CI)
honestdid, pre(1/5) post(6/7) mvec(0(0.01)0.05) delta(sd) omit coefplot `plotopts'
可以观察到,显著效应的临界值约为M≈0.03。这意味着,除非允许相邻时期的线性外推偏离超过0.03个百分点,否则我们可以拒绝无效效应的假设。
平均效应或其他时期的敏感性分析
截至目前,主要关注的是首次处理后时期的效应,这也是
HonestDiD
的默认设置。如果对两个处理后时期的平均效应感兴趣,可以通过使用
l_vec(matrix_name)
选项来实现:
更一般而言,该工具包支持对任意标量参数
进行推断,其中
是动态处理效应的向量。
例如,如果创建了一个矩阵
l_vec = (0, 1)
并设置了
l_vec(l_vec)
,那么就可以对处理后第二个时期的效应进行推断。