1. 连续处理效应下的双重差分:从二元到连续的范式演进
双重差分(Difference-in-Differences, DiD)是评估政策或干预因果效应的基石方法。它的核心逻辑直观而有力:比较处理组和对照组在干预前后的结果变化,其差值就被认为是政策的“净效应”。这个方法的有效性,完全依赖于一个关键的假设——平行趋势。也就是说,如果没有这项政策,处理组和对照组的结果会沿着相同的轨迹演变。
然而,现实世界中的政策干预,很少是简单的“开”或“关”。更多时候,处理强度是连续变化的。比如,一项环保法规对不同企业的污染排放标准设定不同;一项补贴政策根据企业规模或地区差异提供不同额度的资金;一项教育改革在不同学校的实施深度可能不同。在这些场景下,我们关心的不再是“政策有没有用”这个二元问题,而是“政策效果如何随处理强度变化”这个更精细的问题。传统将连续处理强度人为划分为“高”、“低”两组的做法,不仅损失了信息,还可能因为分组阈值的选择而引入偏差,甚至得出误导性的结论。
这就是连续处理效应下的双重差分模型要解决的核心问题。它允许处理变量D取连续值,我们的目标不再是估计一个单一的平均处理效应(ATE),而是估计一条处理效应曲线——平均处理效应在处理强度d上的函数,即ATT(d) = E[Y_t(d) - Y_t(0) | D = d]。这为我们理解政策的异质性影响提供了前所未有的清晰度:效果是线性的还是非线性的?是否存在阈值效应?在哪个强度区间效果最显著?
但这条路充满挑战。连续处理变量往往与一系列协变量X(如企业特征、地区经济水平)存在复杂的、非线性的依赖关系。简单地用线性模型去拟合,很可能因为模型误设而导致严重的估计偏差。此外,在连续处理的设定下,传统的平行趋势假设也需要被强化为条件平行趋势:在控制了协变量X之后,不同处理强度的个体在反事实情形下具有相同的时间趋势。这要求我们在估计中必须妥善地、灵活地处理这些高维、非线性的协变量。
近年来,双重/去偏机器学习(Double/Debiased Machine Learning, DML)的兴起为破解这一难题提供了强大的工具。DML的核心思想是将复杂的 nuisance parameters(如倾向得分、条件期望函数)的估计与目标参数(ATT(d))的估计分离开,通过样本分割和正交化(Neyman Orthogonality)来保证即使使用黑箱机器学习方法(如随机森林、神经网络)估计这些高维参数,最终的目标参数估计量仍能保持√N的收敛速率和渐近正态性。本文将深入探讨如何将DML框架与连续处理DiD模型相结合,构建一个既稳健又灵活的估计工具箱。
2. 核心思路与识别策略:从无条件平行趋势到条件平行趋势
2.1 从二元DiD到连续DiD的桥梁
为了理解连续处理DiD,我们不妨先回顾一下经典二元DiD的识别公式。对于处理组(D=1)和对照组(D=0),在满足平行趋势假设下,平均处理效应(ATT)可以识别为: ATT = E[Y_t - Y_{t-1} | D=1] - E[Y_t - Y_{t-1} | D=0]
这个公式的直观含义是,用处理组的前后变化,减去对照组的前后变化,得到政策的净效应。在连续处理的语境下,我们不再有单一的“处理组”,而是每个处理强度d都对应一个“子处理组”。我们的目标ATT(d),本质上是比较“接受强度为d的处理”的个体,与“在相同协变量条件下、若未接受任何处理(D=0)会如何”的个体之间的结果差异。
因此,识别ATT(d)的关键在于,如何为每个强度d的个体,构造一个可靠的“反事实对照组”。这引出了我们的核心识别假设。
2.2 条件平行趋势假设:识别的基础
连续处理DiD的识别,建立在以下条件平行趋势假设之上: E[Y_t(0) - Y_{t-1}(0) | X, D = d] = E[Y_t(0) - Y_{t-1}(0) | X, D = 0], 对于所有 d > 0。
这个假设意味着:在控制了可观测的协变量X之后,对于任何处理强度d > 0的个体,如果他们未受到处理,其结果Y的变化趋势,与那些真正未受处理(D=0)且具有相同协变量X的个体的变化趋势,在期望上是相同的。
注意:这里的“条件”至关重要。在连续处理设定下,处理强度D很可能与影响趋势的协变量X相关。无条件平行趋势(即不控制X)通常过于严格且不现实。条件平行趋势通过控制X,使得比较更加“公平”,大大增强了识别假设的合理性。这类似于在匹配或倾向得分加权中控制混淆变量的思想。
在这个假设下,对于面板数据,ATT(d)可以被识别为以下公式: ATT(d) = E[Y_t - Y_{t-1} | D=d] - E [ (Y_t - Y_{t-1}) * w(X, d) | D=0 ] 其中,权重 w(X, d) = f_{D|X}(d|X) / (f_D(d) * P(D=0|X))。
这个公式的直觉是:第一项是处理强度为d的个体的平均前后变化。第二项是未处理个体(D=0)前后变化的加权平均,权重w(X, d)的作用是“重塑”未处理个体的分布,使其在协变量X上的分布与处理强度为d的个体的分布相匹配。权重中的 f_{D|X}(d|X) 反映了在给定X下,个体处于强度d附近的“可能性”;除以 f_D(d) 和 P(D=0|X) 是为了进行标准化和调整。
对于重复截面数据,识别公式略有不同,但核心思想一致,需要通过时间虚拟变量T和样本比例λ来识别前后期的变化。
2.3 估计挑战与DML的解决方案
识别公式给出了ATT(d)的理论表达式,但直接估计面临两大难题:
- 高维非线性 nuisance parameters:公式中涉及条件密度 f_{D|X}(d|X)、条件概率 P(D=0|X) 以及条件期望 E[ΔY|D=0, X](对于面板数据)。当协变量X维度很高或与D、Y的关系复杂时,对这些函数进行正确的参数化建模几乎不可能。模型误设将直接导致ATT(d)的估计偏差。
- “两次偏差”问题:即使我们能用灵活的机器学习方法(如随机森林)很好地估计这些nuisance parameters,直接将它们“代入”识别公式得到的估计量(即“插入式”估计量)通常会有偏差,且偏差的收敛速度可能慢于√N,无法进行有效的统计推断。
双重机器学习(DML)正是为解决这些问题而设计的。其核心步骤如下:
- 样本分割:将数据随机分为K份(如5份)。
- 交叉拟合:对于每一份数据,使用其他K-1份数据来训练机器学习模型,以估计所有的nuisance parameters(如 f_{D|X}(d|X), P(D=0|X), E[ΔY|D=0, X])。
- 构造正交化得分函数:基于Neyman正交性原理,构造一个关于nuisance parameters的估计误差具有“免疫性”(即一阶影响为零)的得分函数。这确保了即使nuisance parameters的估计有误差,只要误差收敛速度足够快(快于N^{-1/4}),最终目标参数ATT(d)的估计量仍具有√N收敛速率和渐近正态性。
- 平均与推断:将K份数据上分别得到的估计量进行平均,得到最终的ATT(d)估计,并基于估计量的渐近分布构造置信区间。
通过DML框架,我们可以放心地使用最先进的机器学习算法来捕捉D、X、Y之间复杂的非线性关系,同时又能获得具有良好统计性质的估计量,实现了灵活性与可靠性的统一。
3. 基于双重机器学习的非参数估计量构建
本节将详细拆解如何具体构建适用于连续处理DiD的DML估计量。我们将分别阐述面板数据和重复截面数据两种情形下的估计步骤、核平滑技巧的应用,以及如何通过正交化来获得稳健的估计。
3.1 面板数据下的估计量
假设我们有一个平衡面板数据集,对于个体i,观测到处理前结果Y_{i,t-1}、处理后结果Y_{i,t}、连续处理强度D_i以及协变量向量X_i。我们的目标是估计ATT(d)。
步骤1:定义目标参数与nuisance parameters我们的目标参数是θ_0(d) = ATT(d)。识别公式依赖于以下三个nuisance parameters(无穷维参数):
- g_0(X) = P(D=0 | X):给定协变量X下,个体属于对照组(未处理)的概率。
- f_{h,0}(d|X) = E[K_h(D-d) | X]:给定X下,处理强度D在d附近(由核函数K_h定义)的局部条件密度期望。这里K_h(·) = K(·/h)/h,是一个核函数,h是带宽。
- m_0(X) = E[ΔY | D=0, X]:在对照组(D=0)中,给定X下结果变化ΔY=Y_t - Y_{t-1}的条件期望。
此外,还需要估计一个有限维参数:f_D(d),即处理强度D在点d的边际密度。
步骤2:构造正交化得分函数直接使用识别公式的“插入式”估计量对nuisance parameters的估计误差非常敏感。DML的核心是构造一个Neyman正交的得分函数ψ。对于面板数据,经过推导,一个有效的正交化得分函数为:
ψ(Z; θ, f_d, η) = [ K_h(D-d)g(X) - I{D=0}f_h(d|X) ] / [ f_d * g(X) ] * ( ΔY - m(X) ) - θ
其中,Z = (ΔY, D, X),η = (g(X), f_h(d|X), m(X)) 是nuisance parameters的集合,θ是我们待估的ATT(d),f_d是D在d点的密度估计。
这个得分函数的关键性质是:在真实参数值(θ_0, f_{D,0}(d), η_0)处,它的期望为零,即E[ψ(Z; θ_0, f_{D,0}(d), η_0)] = 0。更重要的是,它对nuisance parameters η的一阶导数在真实值处为零(Neyman正交性)。这意味着,当用估计值\hat{η}代替真实值η_0时,只要\hat{η}收敛得足够快,对得分函数期望的一阶影响可以忽略不计,从而保证了最终估计量√N的一致性。
步骤3:交叉拟合与估计流程具体算法如下(以K=5折交叉拟合为例):
- 将数据集随机分成5个大小基本相等的部分(折)。
- 对于每一折k(k=1,...,5): a.辅助样本:使用除第k折外的其他4折数据(记为I_k^c)来训练机器学习模型,估计所有nuisance parameters: - 使用随机森林(或其他ML方法)回归D=0的指示变量对X,得到\hat{g}k(X)(估计P(D=0|X))。 - 使用随机森林回归核变换后的变量K_h(D-d)对X,得到\hat{f}{h,k}(d|X)(估计E[K_h(D-d)|X])。 - 使用随机森林回归ΔY对X,但仅使用D=0的样本,得到\hat{m}_k(X)(估计E[ΔY|D=0, X])。 - 使用核密度估计(或同样用其他4折数据)计算\hat{f}_k(d)(估计f_D(d))。 b.主样本:在第k折数据(记为I_k)上,利用上一步估计的nuisance parameters,计算该折的局部估计值: [ \hat{\theta}k(d) = \frac{1}{n_k} \sum{i \in I_k} \frac{ K_h(D_i-d)\hat{g}k(X_i) - I{D_i=0}\hat{f}{h,k}(d|X_i) }{\hat{f}_k(d) \hat{g}_k(X_i)} ( \Delta Y_i - \hat{m}_k(X_i) ) ]
- 聚合:最终的DML估计量是各折估计的平均值:\hat{\theta}(d) = (1/5) * Σ_{k=1}^5 \hat{\theta}_k(d)。
步骤4:核平滑与带宽选择由于处理变量D是连续的,我们需要在点d处进行局部平均。核函数K(·)(如高斯核、Epanechnikov核)和带宽h的选择至关重要。
- 核函数K:通常选择对称、概率密度函数性质的核,具体形式对理论性质影响不大,实践中高斯核较常用。
- 带宽h:控制平滑程度。h越大,估计越平滑但偏差可能增大;h越小,估计越崎岖但方差增大。为了进行有效的统计推断(使偏差项渐近可忽略),我们通常采用欠平滑策略。一个常用的经验法则是:h = 1.06 * \hat{\sigma}_D * N^{-1/4},其中\hat{\sigma}_D是处理强度D(大于0的部分)的标准差估计。N^{-1/4}的阶次确保了偏差项以快于(Nh)^{-1/2}的速度收敛到零。
3.2 重复截面数据下的估计量
在重复截面数据中,我们观测到的是不同时期的独立混合截面数据,每个个体i仅被观测一次,但知道其所属的时期T_i(T=1表示处理后时期,T=0表示处理前时期)。此时,我们无法直接计算个体层面的ΔY。
识别公式的调整识别公式需要调整,利用时间虚拟变量T和样本中处理后时期的比例λ = P(T=1)。在条件平行趋势假设下,ATT(d)可以通过以下公式识别: ATT(d) = E[ (T-λ)/(λ(1-λ)) * Y | D=d ] - E[ (T-λ)/(λ(1-λ)) * Y * w(X,d) | D=0 ] 其中权重w(X,d)与面板数据情形相同。这里的 (T-λ)/(λ(1-λ)) * Y 是一个巧妙的构造,其条件期望等于E[Y_t - Y_{t-1} | D, X],从而将重复截面数据转化为类似面板数据的结构。
估计量的构建相应的正交化得分函数变为: ψ(Z; θ, λ, f_d, η) = [ K_h(D-d)g(X) - I{D=0}f_h(d|X) ] / [ f_d * g(X) ] * ( (T-λ)/(λ(1-λ)) * Y - m_λ(X) ) - θ 其中,Z = (Y, T, D, X),m_λ(X) = E[ (T-λ)/(λ(1-λ)) * Y | D=0, X ],λ也需要从数据中估计(通常简单用样本中T=1的比例)。
交叉拟合算法与面板数据情形类似,只是在估计条件期望m_λ(X)时,使用的是变换后的结果变量 (T-λ)/(λ(1-λ)) * Y 对X在D=0样本中的回归。
3.3 方差估计与统计推断
获得点估计\hat{θ}(d)后,我们需要量化其不确定性。基于估计量的渐近线性表达,我们可以构造一个稳健的方差估计量。
点估计方差的估计对于面板数据,估计量\hat{θ}(d)的渐近方差可以估计为: \hat{σ}^2_N(d) = (1/K) Σ_{k=1}^K (1/n_k) Σ_{i in I_k} [ \hat{ψ}_i - \hat{θ}(d)/\hat{f}_k(d) * (K_h(D_i-d) - \hat{f}_k(d)) ]^2 其中,\hat{ψ}_i是使用第k折估计的nuisance parameters计算的个体i的得分函数值。这个估计量本质上是估计了影响函数(influence function)的样本方差。
置信区间的构造有了方差估计,对于给定的处理强度d,我们可以构建点wise的(1-α)置信区间: [ \hat{θ}(d) - z_{1-α/2} * \hat{σ}N(d)/√N, \hat{θ}(d) + z{1-α/2} * \hat{σ}N(d)/√N ] 其中z{1-α/2}是标准正态分布的分位数。
均匀置信带的构造如果我们关心的是整条处理效应曲线ATT(d)(d属于某个区间D)的推断,点wise置信区间可能不够,因为它不能控制同时覆盖整条曲线的错误概率。这时需要构造均匀置信带。通常采用乘数自助法来实现:
- 从标准正态分布N(1,1)中生成B组(如B=1000)独立同分布的乘数{ξ_i^(b)},i=1,...,N, b=1,...,B。
- 对于每组乘数,构造一个自助统计量: [ \hat{θ}^*(b)(d) = (1/N) Σ_{i=1}^N ξ_i^{(b)} * [ K_h(D_i-d)\hat{g}(X_i) - I{D_i=0}\hat{f}_h(d|X_i) ] / [ \hat{f}(d) \hat{g}(X_i) ] * ( ΔY_i - \hat{m}(X_i) ) ] (对于面板数据,重复截面数据类似)。注意,这里使用的是在全样本上估计的nuisance parameters (\hat{g}, \hat{f}_h, \hat{m}, \hat{f}),而不是交叉拟合的,这是为了计算效率,理论上有调整但实践中常用。
- 对于每个d,计算B个自助统计量 \hat{θ}^*(b)(d) - \hat{θ}(d) 的经验分位数。例如,取α/2和1-α/2分位数作为临界值c_{α/2}(d)和c_{1-α/2}(d)。
- 均匀置信带可以构造为: [ \hat{θ}(d) - c_{1-α/2}, \hat{θ}(d) - c_{α/2} ],对所有d ∈ D。这个带子能以近似1-α的概率同时覆盖整条真实的ATT(d)曲线。
4. 蒙特卡洛模拟:验证小样本表现
理论性质需要模拟实验的验证。我们设计了一个蒙特卡洛模拟,来检验上述DML估计量在有限样本下的表现,特别是在处理变量D与高维协变量X存在复杂非线性关系时的稳健性。
4.1 数据生成过程
我们考虑一个具有挑战性的设定:
- 样本量:分别设置N=2000和N=10000,以观察大样本下的表现。
- 数据结构:同时模拟面板数据和重复截面数据两种设定。
- 处理变量D:D依赖于10维的协变量X,且关系是非线性的。例如,D = Φ( X‘β + γ * (X1*X2) + ε ),其中Φ是标准正态CDF,ε是独立噪声。这使得D在给定X下的条件分布复杂。
- 结果变量Y:潜在结果模型为 Y_t(d) = α + δ_t + X‘η + βd + θd^2 + ν,其中ν是误差项。我们设定真实的处理效应曲线为 ATT(d) = -0.5 * d^2,这是一个开口向下的抛物线,意味着处理效应先增后减(或始终为负且绝对值随d增大而加速)。
- 目标强度:我们重点关注d=0.9处的处理效应。在这个强度下,由于D的分布,有效样本量可能较小,增加了估计难度。
- 参数估计:所有nuisance parameters(g(X), f_h(d|X), m(X)或m_λ(X))均使用随机森林进行非参数估计,每片森林设置200棵树,最大深度20。密度f_D(d)使用高斯核估计。
- 带宽选择:采用欠平滑带宽 h = 1.06 * \hat{σ}_D * N^{-1/4}。
- 模拟次数:每种设定下进行B=500次独立模拟。
4.2 模拟结果分析
模拟结果从多个维度评估了估计量的性能:
1. 偏差与方差如表1所示,随着样本量从2000增加到10000,估计量的偏差(Bias)和标准差(Std)在面板和重复截面两种设定下均显著下降。例如,在面板设定下,偏差从-0.0720减小到-0.0198,标准差从0.2725减小到0.1261。这表明估计量具有一致性。均方根误差(RMSE)也相应减小,说明估计精度随样本量增加而提高。
表1:蒙特卡洛模拟结果概览
| 设定与样本量 | 偏差 (Bias) | 标准差 (Std) | 均方根误差 (RMSE) | 平均标准误 (AVSE) | 95% CI 覆盖率 |
|---|---|---|---|---|---|
| 面板数据, N=2000 | -0.0720 | 0.2725 | 0.2819 | 0.2524 | 0.9180 |
| 面板数据, N=10000 | -0.0198 | 0.1261 | 0.1277 | 0.1262 | 0.9300 |
| 重复截面, N=2000 | -0.0340 | 0.5745 | 0.5755 | 0.5578 | 0.9440 |
| 重复截面, N=10000 | 0.0290 | 0.2754 | 0.2769 | 0.2710 | 0.9500 |
2. 标准误估计的准确性“平均标准误”(AVSE)列报告的是500次模拟中,我们根据理论公式计算的估计标准误的平均值。可以看到,AVSE与模拟估计量的实际标准差(Std)非常接近。例如在N=10000的面板数据中,Std为0.1261,AVSE为0.1262。这说明我们的方差估计量是基本无偏的,能够很好地反映估计的不确定性。
3. 置信区间的覆盖率覆盖率(Coverage)是指基于正态近似和估计标准误构建的95%点wise置信区间,在500次模拟中包含真实ATT(0.9) = -0.405的比例。理想值是0.95。模拟结果显示,覆盖率接近0.95,在重复截面大样本下达到了0.95。在面板数据小样本下有轻微的低覆盖(0.918),这可能与小样本偏差或带宽选择有关,但随着样本量增大,覆盖率改善至0.93。总体而言,推断是基本有效的。
4. 分布形态模拟估计值的直方图(图1)显示,估计量的抽样分布近似正态分布,这与我们的渐近正态性理论一致。样本量越大,分布越集中、越对称。
实操心得:模拟实验证实,即使在处理变量与协变量关系复杂、有效样本量较小的困难设定下,基于DML的连续处理DiD估计量也表现良好。这给了我们在实证分析中应用此方法的信心。需要注意的是,在样本量较小时(如N=2000),特别是重复截面数据下,方差会比较大,此时对处理效应曲线的估计在两端(d很小或很大时)可能会很不稳定,解读需谨慎。
5. 实证应用:重新审视医疗支付系统改革
为了展示方法的实用性,我们将其应用于一个经典的经济学问题:美国医疗保险预期支付系统(Prospective Payment System, PPS)改革对医院资本劳动比和技术采纳的影响。
5.1 研究背景与经典分析
1983年,美国Medicare推出了PPS改革,将医院报销方式从基于实际成本的实报实销,改为按诊断固定支付。然而,在改革头三年,资本成本仍按实际支出报销。这导致医院治疗Medicare住院病人的相对劳动力成本上升。Acemoglu和Finkelstein(2008)的研究指出,这一改革显著提高了医院的资本劳动比,并鼓励了技术采纳。
他们的理论基础是:PPS改革提高了劳动力相对资本的价格,会促使医院用资本替代劳动力,如果资本-劳动替代弹性足够大,还会增加对资本和技术的总需求。由于只有收治Medicare病人的医院受到影响,这种效应可能随Medicare病人份额(处理强度D)的不同而变化。他们使用1980-1986年美国医院协会年度调查数据,通过以下双向固定效应模型进行检验: Y_{i,t} = α_i + γ_t + X‘{i,t}η + β * (D_i * Post_t) + ε{i,t} 其中,Y是结果变量(资本劳动比或医疗设施数量),D_i是改革前的Medicare住院病人份额(连续变量),Post_t是改革后时间虚拟变量。他们假设系数β捕捉了PPS改革的因果效应,这依赖于一个平行趋势假设:若无改革,不同Medicare份额的医院随时间应有相同的结果变化。
5.2 经典方法的局限与我们的重构
近年来,Callaway等(2024)指出,在上述设定中,无条件平行趋势假设可能过强。当处理变量连续时,TWFE模型估计的系数β可能被解释为不同处理强度ATT(d)的加权平均,且权重可能为负,导致难以解释甚至错误的符号。
我们的连续处理DiD框架为此提供了更清晰的解决方案。我们将Acemoglu和Finkelstein(2008)的设计重构如下:
- 处理前:改革前(1983年前),所有医院均未受PPS改革影响(处理强度为0)。
- 对照组:Medicare病人份额为0的医院(D=0)。
- 处理组:Medicare病人份额为正的医院(D>0),处理强度即为其份额D。
- 结果变量:资本劳动比,或医疗技术采纳的代理变量(如专用医疗设备总数)。
- 协变量X:包括床位数、是否位于大都市、是否私立、医务人员数、州虚拟变量等。对于资本劳动比,还加入了CT、MRI等专用资本设备的二元指标。
- 条件平行趋势:在控制了上述协变量X后,假设若无PPS改革,Medicare份额为d的医院与份额为0的医院,其资本劳动比(或技术采纳水平)随时间的变化趋势相同。
在此框架下,我们可以识别并估计处理效应曲线ATT(d)。这比单一的系数β包含更多信息。例如,如果PPS改革提高了资本劳动比,那么ATT(d)应对所有d>0为正。此外,如果改革的影响对高Medicare份额的医院更大,那么ATT(d)应是d的增函数。
5.3 估计结果与新发现
我们应用面板数据下的DML估计量,并使用与原文可比的时间段:将1980-1983年作为改革前,1984-1986年作为改革后(技术采纳因数据可用性仅用到1985年)。
1. 对资本劳动比的影响所有估计的ATT(d)均为正,这与Acemoglu和Finkelstein(2008)的发现一致,支持PPS改革提高了资本劳动比的结论。然而,我们的估计值(具体数值需看图2曲线)大多低于原文报告的1.13。更重要的是,ATT(d)曲线并未呈现严格的递增趋势,这与“Medicare份额越高的医院资本劳动比提升越多”的理论预测相矛盾。在低处理强度和高处理强度区域,由于有效样本量小,估计值噪声较大(置信区间更宽)。作为对比,使用核方法但不控制协变量估计的效应曲线,与我们的DML估计曲线形态相似。
2. 对技术采纳的影响以每家医院拥有的专用医疗设施总数作为技术采纳的代理变量,所有估计的ATT(d)同样为正,符合改革激励技术采纳的预测。但估计的效应曲线先随处理强度d上升,随后在较高强度处下降,再次与“份额越高投资越多”的理论预测不符。同样,数据稀疏区域(高低强度两端)的估计噪声较大。
实证启示:我们的分析表明,PPS改革对医院行为的影响是异质性的,且并非简单的线性或单调关系。高Medicare份额的医院未必表现出最强的资本替代或技术采纳反应。这可能是因为这些医院本身已具备较高的资本密集度或技术水准,调整空间有限;或者面临其他约束(如融资、监管)。连续处理DiD框架让我们能够揭示这种复杂的异质性,这是传统TWFE模型无法做到的。同时,控制协变量使得条件平行趋势假设更可能成立,增强了因果推断的可信度。
6. 实操指南、常见问题与避坑要点
将连续处理DiD与DML结合应用于实际研究时,以下几个环节需要特别注意。
6.1 关键步骤与操作要点
数据准备与清洗:
- 面板 vs 重复截面:首选面板数据,因为它能直接利用个体前后的变化,估计更精确。如果只有重复截面数据,需确保能清晰区分处理前后期,并准确估计处理期样本比例λ。
- 处理变量:确认处理变量是连续的,且存在一个明确的对照组(D=0)。检查处理变量的分布,是否存在极端值或堆积(mass points),这可能需要特殊处理(如修剪或使用不同的核函数)。
- 协变量选择:选择那些可能同时影响处理强度分配和结果变量趋势的变量。基于经济理论或领域知识。避免控制那些可能受处理影响的变量(bad controls)。
机器学习模型选择与调参:
- 模型选择:随机森林是默认的稳健选择,它能很好地处理连续和离散协变量、非线性关系和交互效应。神经网络在样本量极大、关系极其复杂时可能有优势,但更难以调参和解释。
- 关键参数:
n_estimators(树的数量):模拟中用了200棵,实践中可增加到500或更多以稳定估计。max_depth(最大深度):模拟中设为20,防止过拟合。可通过交叉验证调整,但不宜过深。也可设置min_samples_leaf(叶节点最小样本数)为5或10来控制复杂度。- 其他:对于随机森林,通常不需要精细调参。保持
bootstrap=True,max_features='sqrt'或'log2'即可。
- 一个忠告:不要用同一份数据既调参又做最终的因果估计。应将数据分为“调参集”和“主估计集”,或者使用交叉拟合本身来规避过拟合。
交叉拟合的具体实施:
- 折数K:5折或10折都是常见选择。折数越多,数据利用效率越高,但计算量也越大。5折是一个较好的平衡。
- 样本分割:务必在开始任何估计之前进行随机分割。对于面板数据,确保同一个体的所有观测都在同一折中,以保持面板结构。
- nuisance parameters的估计:在每一折的辅助样本上,独立训练所有需要的模型。这意味着对于每一个目标处理强度d(如果你要估计一条曲线上的多个点),都需要重新估计条件期望E[K_h(D-d)|X]。计算量可能较大,但可以并行化。
带宽选择与核函数:
- 核函数:高斯核是标准选择。Epanechnikov核在理论上有最优效率,但实践中差异不大。
- 带宽h:欠平滑带宽公式 h = 1.06 * \hat{σ}_D * N^{-1/4} 是一个不错的起点。其中\hat{σ}_D建议使用处理组(D>0)样本的标准差。可以围绕这个值进行敏感性分析,例如尝试 h = c * \hat{σ}_D * N^{-1/5}(c取0.8, 1.0, 1.2等),观察估计曲线和置信带的稳健性。
结果可视化与解读:
- 绘制效应曲线:在关心的处理强度范围内(如从D的最小正值到第99分位数),均匀选取一系列点d,分别估计ATT(d)及其置信区间。
- 绘制置信带:强烈建议使用乘数自助法绘制均匀置信带(例如95%),而不仅仅是点wise置信区间。这能更可靠地判断整条曲线是否显著异于零,以及曲线的形状特征(如是否单调)。
- 谨慎解读两端:在数据分布稀疏的处理强度区域(即f_D(d)很小的地方),估计值会非常不精确(置信区间很宽)。在报告中应明确标注这些区域,避免过度解读。
6.2 常见问题与排查技巧
问题1:估计的ATT(d)曲线波动非常大,难以置信。
- 可能原因1:带宽h太小。带宽过小会导致方差极大,估计曲线剧烈震荡。尝试增大带宽(如增加公式中的常数因子)。
- 可能原因2:机器学习模型过拟合。检查随机森林的深度是否太大,或叶节点最小样本数是否太小。尝试增加
min_samples_leaf或减小max_depth。 - 可能原因3:在某个d处有效样本量极小。检查处理变量D的密度估计\hat{f}_D(d)是否接近零。考虑将分析限制在D的中间主体分布范围内,或使用加权估计,对低密度区域的点给予更谨慎的解读。
- 排查:绘制D的密度图。输出几个关键d点处的有效样本权重(即估计方程中每个观测的权重绝对值)的分布,查看是否有少数观测权重过大。
问题2:置信区间过宽,几乎覆盖整个纵轴。
- 可能原因1:样本量不足。连续处理DiD,特别是需要非参数估计条件期望时,对样本量要求较高。N<1000时可能难以得到精确估计。
- 可能原因2:结果变量Y噪声太大。检查Y的变异程度。考虑是否需要对Y进行变换(如取对数),或加入更多相关的协变量X以解释Y的变异。
- 可能原因3:处理变量D的变异不足。如果D的取值非常集中,识别不同强度下的异质性效应本身就非常困难。
- 排查:计算并报告估计量的近似标准误。分解方差来源:是nuisance parameters估计不准导致的,还是核心识别公式本身固有的方差大?
问题3:条件平行趋势假设可能不成立。
- 可能原因:存在未观测的混淆因素。即使控制了X,仍可能有影响趋势的变量未被观测。
- 诊断与缓解:
- 事前趋势检验:如果有多个处理前时期,可以检验处理组(按不同强度分层)和对照组在处理前的趋势是否平行(在控制X后)。这是最直接的检验。
- 安慰剂检验:选择一个已知不受处理影响的替代结果变量,用同样的方法估计“效应曲线”。理论上应该得到一条在零附近的曲线。如果发现显著效应,则质疑识别假设。
- 控制组敏感性分析:尝试使用不同的对照组定义(如D小于某个小阈值的样本),看结果是否稳健。
- 加入更多/更好的协变量:这是增强条件平行趋势假设可信度的根本途径。
问题4:计算时间过长。
- 可能原因:需要估计整条曲线上的多个点,每个点都需要重新估计条件期望E[K_h(D-d)|X]。
- 优化策略:
- 并行化:不同d点的估计是完全独立的,可以轻松并行计算。
- 减少d点的数量:在平滑的区域,不需要取非常密集的点。可以先稀疏地估计,再在变化剧烈的区域加密。
- 使用更快的ML库:如使用
scikit-learn的RandomForestRegressor并设置n_jobs=-1以使用所有CPU核心。 - 近似计算:对于随机森林,可以利用其预测速度快的优点。训练一次森林模型后,预测不同d点的条件期望是很快的。
问题5:如何处理有序多值处理或剂量反应函数?
- 概念辨析:连续处理DiD是剂量反应函数估计在DiD框架下的推广。本文方法直接适用于连续处理变量。对于有序多值处理(如低、中、高),可以将其视为离散化的连续变量,但需要注意,如果类别不多,可能更适合使用针对多值处理的DiD方法(如Callaway, Sant'Anna, 2021),而非强行使用核平滑。
最后的经验之谈:连续处理DiD+DML是一个强大的工具,但它不是“黑箱”。成功的应用离不开对研究设计的深刻理解、对数据的细致探查以及对估计结果审慎的稳健性检验。开始时用一个简单的线性模型或分组比较作为基准,再逐步引入本文的灵活方法,观察结果的变化,是理解数据故事和验证方法有效性的好习惯。记住,再复杂的方法也只是为了更清晰地揭示数据背后的因果逻辑,而不是替代它。