第 20 章 观察性研究里的重叠:困难与机会
20.1 重叠意味着什么
本书第三部分谈观察性研究里的因果推断,站在两条关键假定上:可忽略性
\[ Z\perp\!\!\!\perp\{Y(1),Y(0)\}\mid X \]
与重叠
\[ 0<e(X)<1. \]
D’Amour et al. (2021) 指出这两条之间的张力:通常,协变量越多,可忽略性越像那么回事(先把第 16.3.1 节的 M 偏倚放下);可协变量越多,重叠越不像那么回事——因为给定更多协变量,处理变得更好预测。
若有些单元 \(e(X)=0\) 或 \(e(X)=1\),反事实潜在结果在哲学上就开始别扭(King and Zeng, 2006)。特别是:若一个单元注定接受处理,再去想象它在对照下的潜在结果,未必有意义;若一个单元注定接受对照,再去想象它在处理下的潜在结果,也未必有意义。即便真倾向得分并不恰好是 \(0\) 或 \(1\),有限样本里估计倾向得分仍可能贴得很近,于是基于 IPW 的估计量数值上就不稳。第 11 章已经谈过这件事。
许多统计分析,其实需要一条更强的重叠:
假设 20.1(严格重叠) 对某个 \(\eta\in(0,1/2)\),有 \(\eta\le e(X)\le 1-\eta\)。
可 D’Amour et al. (2021, Corollary 1) 表明:协变量一多,假设 20.1 的推论非常强。为简单起见,我只写他们的一条结果。令 \(X_k\)(\(k=1,\ldots,p\))为协变量 \(X=(X_1,\ldots,X_p)\) 的第 \(k\) 个分量,并令
\[ e=\operatorname{pr}(Z=1) \]
为处理单元的比例。
定理 20.1 假设 20.1 蕴含 \(\eta\le e\le 1-\eta\),以及
\[ p^{-1}\sum_{k=1}^{p} \bigl\lvert\mathrm{E}(X_k\mid Z=1)-\mathrm{E}(X_k\mid Z=0)\bigr\rvert \le p^{-1/2}C^{1/2} \bigl\{e\lambda_1^{1/2}+(1-e)\lambda_0^{1/2}\bigr\}, \tag{20.1} \]
其中
\[ C = \frac{(e-\eta)(1-e-\eta)}{e^{2}(1-e)^{2}\eta(1-\eta)} \]
是只依赖 \((e,\eta)\) 的正常数,\(\lambda_1\) 与 \(\lambda_0\) 分别是协方差矩阵 \(\operatorname{cov}(X\mid Z=1)\) 与 \(\operatorname{cov}(X\mid Z=0)\) 的最大特征值。
定理 20.1 里最大特征值是什么量级?D’Amour et al. (2021) 表明:除非 \(X\) 的各分量高度相关,它通常小于 \(O(p)\)。若各分量高度相关,纳入一部分之后,另一些就是多余的。若并不高度相关,则右边趋于零。于是协变量均值差的平均接近零,也就是:把所有维度平均起来看,处理组与对照组几乎在均值上平衡。数学上,(20.1) 左边趋于零,就排除了这种可能——\(X\) 的每一个维度,在处理组与对照组之间都有不消失的均值差。协变量很多的观察性研究里,这是一条很强的要求。
20.1.1 重叠有限时的修剪
假设 20.1 不成立时,常见做法是按估计倾向得分修剪单元(Crump et al., 2009; Yang and Ding, 2018b)。修剪丢掉重叠很少的那些区域,于是总体与估计目标都换了。假设 20.1 那些苛刻的推论提示:高维里更常常需要修剪,而且可能要修剪掉很大一部分人,才能得到像样的重叠。
20.1.2 重叠有限时的结果建模
D’Amour et al. (2021) 这些偏负面的结果,也点出:重叠有限时,只盯着倾向得分是不够的。这在某种意义上挑战了 Rubin (2008) 那句「要做客观的因果推断,设计胜过分析」。Rubin (2008) 力陈观察性研究里「设计」阶段的角色。设计阶段盯的是倾向得分;协变量一多,它未必满足重叠。
协变量维度高时,结果建模变得更重要。特别地,若结果均值只依赖原始协变量的某个函数:
\[ \mathrm{E}\{Y(z)\mid X\}=f_z\bigl(r(X)\bigr), \qquad (z=0,1), \]
那么控制 \(r(X)\) 就够了——它是原始协变量的一个低维摘要。细节见习题 20.1。因为降了维,\(r(X)\) 上的严格重叠,可以比 \(X\) 上的严格重叠弱得多。概念上并不绕,可相应的理论与方法,目前还缺着。
20.2 没有重叠时的因果推断:断点回归
先从最简单的情形说起:协变量 \(X\) 是一维的。一种极端的处理分配,是确定性的:
\[ Z=I(X\ge x_0), \]
其中 \(x_0\) 是事先定好的阈值。一个有趣的后果是:可忽略性自动成立,
\[ Z\perp\!\!\!\perp\{Y(1),Y(0)\}\mid X, \]
因为 \(Z\) 是 \(X\) 的确定性函数,而常数与任何随机变量都独立。可重叠按定义就被打破了:
\[ e(X)=\operatorname{pr}(Z=1\mid X)=I(X\ge x_0) = \begin{cases} 1, & X\ge x_0,\\ 0, & X<x_0. \end{cases} \]
于是第三部分那些依赖重叠的分析策略,在这里都用不上了。必须换一个角度看。
上面的讨论听起来像纸上的极端情形:处理分配是确定的。有意思的是,实践里它有许多应用,名字叫做断点回归(regression discontinuity)。下面我先回顾几个典范例子,再给这类研究一个数学表述。
20.2.1 例子与图诊断
例 20.1 Thistlethwaite and Campbell (1960) 最先提出断点回归这个想法。他们的动机例子是:学生赢得优绩证书(Certificate of Merit)对日后职业规划的效应;证书是否颁发,取决于奖学金资格考试(Scholarship Qualifying Test)分数是否超过某个阈值。他们最初的分析主要靠图。原书图 20.1 就是其中一幅。
原书图 20.1 来自 Thistlethwaite and Campbell (1960),对原文里看不清的字做了少许修改。横轴是能力测验分数(任意单位),竖轴是有特定学业或职业规划的学生百分比。虚线竖线是阈值:左边是「受到表彰的学生」,右边是「优绩证书获得者」。两条序列分别是:计划读三年及以上研究生(博士或医学博士)的比例,以及计划成为大学教师或科学研究人员的比例。两条线在阈值处都往上跳。
例 20.2 Bor et al. (2014) 用断点回归研究:何时开始给 HIV 患者用抗逆转录病毒药,对死亡率有什么效应。处理由患者的 CD4 计数是否低于 \(200\) cells/\(\mu\)L 决定。(CD4 细胞是对抗感染的白细胞。)
例 20.3 Carpenter and Dobkin (2009) 研究饮酒对死亡率的效应,利用法定最低饮酒年龄作为饮酒行为的一个断点。他们从美国国家卫生统计中心取出死亡数据,包括死者的出生日期与死亡日期,并计算每十万人年死亡数随年龄的曲线,结果用下面九个变量来度量:
| 变量 | 含义 |
|---|---|
all |
全部死亡,内因与外因之和 |
internal |
内因死亡 |
external |
外因死亡,其余各项之和 |
homicide |
他杀 |
suicide |
自杀 |
mva |
机动车事故 |
alcohol |
提及酒精的死亡 |
drugs |
提及药物使用的死亡 |
externalother |
其他外因死亡 |
原书图 20.2 画出这九项每十万人年死亡数,数据来自 Angrist and Pischke (2014) 用过的那套。从 21 岁处的跳跃看,死亡率在 21 岁上升相当明显,主要来自机动车事故。正式分析留给习题 20.4。
20.2.2 断点回归的一个数学表述
决定处理的那个变量 \(X\),术语叫驱动变量(running variable)。直觉上,断点回归能识别的,是阈值 \(x_0\) 处的局部平均因果效应:
\[ \tau(x_0)=\mathrm{E}\{Y(1)-Y(0)\mid X=x_0\}. \]
特别地,对处理下的潜在结果,
\[\begin{align} \mathrm{E}\{Y(1)\mid X=x_0\} &= \lim_{\varepsilon\to 0^{+}}\mathrm{E}\{Y(1)\mid X=x_0+\varepsilon\} \tag{20.2} \\ &= \lim_{\varepsilon\to 0^{+}}\mathrm{E}\{Y(1)\mid Z=1,X=x_0+\varepsilon\} \tag{20.3} \\ &= \lim_{\varepsilon\to 0^{+}}\mathrm{E}(Y\mid Z=1,X=x_0+\varepsilon), \tag{20.4} \end{align}\]
其中 (20.2) 在 \(\mathrm{E}\{Y(1)\mid X=x\}\) 于 \(x_0\) 从右边连续时成立,(20.3) 由 \(Z\) 的定义得到。同理,对照下的潜在结果有
\[ \mathrm{E}\{Y(0)\mid X=x_0\} = \lim_{\varepsilon\to 0^{+}}\mathrm{E}(Y\mid Z=0,X=x_0-\varepsilon), \]
只需 \(\mathrm{E}\{Y(0)\mid X=x\}\) 于 \(x_0\) 从左边连续。于是 \(x_0\) 处的局部平均因果效应,可以由这两个极限之差来识别。关键识别结果汇总如下。
定理 20.2 假定处理由 \(Z=I(X\ge x_0)\) 决定,其中 \(x_0\) 是事先定好的阈值。假定 \(\mathrm{E}\{Y(1)\mid X=x\}\) 于 \(x_0\) 从右边连续,\(\mathrm{E}\{Y(0)\mid X=x\}\) 于 \(x_0\) 从左边连续。则 \(X=x_0\) 处的局部平均处理效应由下式识别:
\[ \tau(x_0) = \lim_{\varepsilon\to 0^{+}}\mathrm{E}(Y\mid Z=1,X=x_0+\varepsilon) - \lim_{\varepsilon\to 0^{+}}\mathrm{E}(Y\mid Z=0,X=x_0-\varepsilon). \]
等式右边只涉及可观测量,因而参数 \(\tau(x_0)\) 是非参数可识别的。可识别公式的模样,与我们前面推过的那些完全不同。特别地,它牵涉两个条件期望函数的极限。
20.2.3 边界附近的回归
运气好时,图诊断有时能把阈值处的因果效应看得清清楚楚。可许多结果很吵,有限样本里只靠图不够。原书图 20.3 给出四个模拟例子:两例在阈值处跳跃很明显,两例并不明显——尽管底层的数据生成过程都有间断。
原书图 20.3:黑点是观测结果,灰点是未观测的反事实结果。第一列的数据生成过程在阈值处留下看得见的跳跃;第二列的跳跃就不那么显眼。第一行 \(\tau(x)\) 为常数;第二行 \(\tau(x)\) 随 \(x\) 变。
假定 \(\mathrm{E}(Y\mid Z=1,X=x)=\gamma_1+\beta_1 x\)、\(\mathrm{E}(Y\mid Z=0,X=x)=\gamma_0+\beta_0 x\) 对 \(x\) 都是线性的。可以分别用处理组与对照组的数据做 OLS,得到拟合直线 \(\hat\gamma_1+\hat\beta_1 x\) 与 \(\hat\gamma_0+\hat\beta_0 x\)。于是 \(X=x_0\) 处的平均因果效应可以估成
\[ \hat\tau(x_0)=(\hat\gamma_1-\hat\gamma_0)+(\hat\beta_1-\hat\beta_0)x_0. \]
数值上,\(\hat\tau(x_0)\) 等于下面这次 OLS 里 \(Z_i\) 的系数:
\[ Y_i\sim\{1,\ Z_i,\ X_i-x_0,\ Z_i(X_i-x_0)\}, \tag{20.5} \]
也等于下面这次 OLS 里 \(Z_i\) 的系数:
\[ Y_i\sim\{1,\ Z_i,\ R_i,\ L_i\}, \tag{20.6} \]
其中
\[ R_i=\max(X_i-x_0,0), \qquad L_i=\min(X_i-x_0,0) \]
分别标出 \(X_i-x_0\) 的右半边与左半边。代数细节留给习题 20.2。
可这条路对线性模型假定的违背可以很敏感。理论建议:只用阈值附近的局部观测来做回归。1 可怎样选这些「局部点」,规则相当绕。好在 R 包 rdrobust 里的 rdrobust 函数,实现了多种选择。既然选「局部点」是断点回归的关键,更稳妥的做法,是按多种选择分别报告估计与置信区间。这可以看成断点回归的一种敏感性分析。
20.2.4 一个例子
Lee (2008) 给过一个著名例子:用断点回归研究美国众议院的现任优势(incumbency advantage)。他写道:「现任者,按定义,就是上一轮选举里成功的那些政客。若让他们成功的那些东西在时间上有些持续性,他们竞选连任时,就应当再成功一些。」因此,这从根本上是一道很难的因果推断题。断点回归是一套巧妙的设计,正好用来碰它。
驱动变量是上一轮选举的得票,已中心化到 \(0\);结果是本轮选举的得票;单元是国会选区。处理是该选区当前现任政党的二值指示,由上一轮得票决定。下面的 R 代码生成原书图 20.4,画出原始数据。
house = read.csv("house.csv")[, -1]
plot(y ~ x, data = house, pch = 19, cex = 0.1)
abline(v = 0, col = "grey")原书图 20.4 是 Lee (2008) 的原始散点:横轴是中心化后的上一轮得票,竖轴是本轮得票,竖线在 \(0\)。点非常密,阈值附近两边都有一团云。
rdrobust 函数给出三套点估计与置信区间。它们都指向正向的现任优势。
> library(rdrobust)
> RDDest = rdrobust(house$y, house$x)
Warning message:
In rdrobust(house$y, house$x) :
Mass points detected in the running variable.
> cbind(RDDest$coef, RDDest$ci)| Coeff | CI Lower | CI Upper | |
|---|---|---|---|
| Conventional | \(0.0637\) | \(0.0422\) | \(0.0852\) |
| Bias-Corrected | \(0.0594\) | \(0.0379\) | \(0.0808\) |
| Robust | \(0.0594\) | \(0.0348\) | \(0.0839\) |
也可以用 OLS,按不同的局部窗口 \(\lvert X\rvert<h\) 得到点估计与置信区间,代码如下。
house$z = (house$x >= 0)
hh = seq(0.05, 1, 0.01)
local.lm = sapply(hh, function(h){
Greg = lm(y ~ z + x + z*x, data = house,
subset = (abs(x) <= h))
cbind(coef(Greg)[2], confint(Greg, "zTRUE"))
})
plot(local.lm[1, ] ~ hh, type = "p",
pch = 19, cex = 0.3,
ylim = range(local.lm),
xlab = "h",
ylab = "point and interval estimates",
main = "subset linear regression: |X|<h")
lines(local.lm[2, ] ~ hh, type = "p",
pch = 19, cex = 0.1)
lines(local.lm[3, ] ~ hh, type = "p",
pch = 19, cex = 0.1)原书图 20.5 把点估计与置信区间画成 \(h\) 的函数。点估计和区间对 \(h\) 的选择都敏感,可定性结论与上面相同:现任优势为正,区间大体不盖住 \(0\)。
20.2.5 断点回归会哪里出错
断点回归分析会哪里出错?技术上的挑战,是指定阈值附近的邻域。上面已经谈过。
此外,定理 20.2 依赖一条连续性条件。实践里它可能被打破。例如,若死亡率本身就在 21 岁跳跃,我们就不能把原书图 20.2 里的跳跃,归因于法定饮酒年龄带来的饮酒行为变化。可连续性条件是否被违背,经验上很难直接检查。
McCrary (2008) 给断点回归的有效性提过一个间接检验。他建议看驱动变量在阈值处的密度。若密度在阈值处不连续,可能提示:有些单元能够完美地操纵自己的处理状态。R 包 rdd 里的 DCdensity 实现了这个检验。细节我略过。
20.3 习题
20.1 重叠有限时,结果建模角色的一条定理
本题把第 20.1.2 节的讨论说正式一点。定理如下。
定理 20.3 假定
\[ Z\perp\!\!\!\perp Y(z)\mid X, \qquad (z=0,1) \]
且
\[ \mathrm{E}\{Y(z)\mid X\}=f_z\bigl(r(X)\bigr), \qquad (z=0,1) \]
对某个函数 \(r(X)\) 成立。则平均因果效应 \(\tau=\mathrm{E}\{Y(1)-Y(0)\}\) 可由
\[ \tau = \mathrm{E}\bigl\{\mathrm{E}(Y\mid Z=1,r(X))-\mathrm{E}(Y\mid Z=0,r(X))\bigr\} \]
或
\[ \tau = \mathrm{E}\left\{\frac{ZY}{e\bigl(r(X)\bigr)}\right\} - \mathrm{E}\left\{\frac{(1-Z)Y}{1-e\bigl(r(X)\bigr)}\right\} \]
识别,其中 \(e\bigl(r(X)\bigr)=\operatorname{pr}\{Z=1\mid r(X)\}\)。
证明定理 20.3。
注: 当 \(r(X)=X\) 时,定理 20.3 退回平均因果效应的标准 IPW 公式。当 \(r(X)\) 的维数低于 \(X\) 时,即便 \(e(X)\) 上的重叠失败,\(e(r(X))\) 上的重叠仍可能成立,于是定理 20.3 的适用范围更宽。
20.2 线性潜在结果模型
本题把第 20.2.3 节的数值等价说细一些。
证明 \(\hat\tau(x_0)\) 等于 OLS 拟合 (20.5) 与 (20.6) 里 \(Z_i\) 的系数。
注: 不妨先画出 \(Z_i(X_i-x_0)\)、\(L_i\) 与 \(R_i\),横轴是 \(X_i\)。结论来自 OLS 的再参数化。
20.3 断点回归的模拟
原书图 20.3 里,潜在结果是从线性模型模拟的。请改成非线性模型,再比较不同的点估计与置信区间,包括点估计的偏倚与方差,以及置信区间的覆盖。
20.4 再分析法定最低饮酒年龄的数据
原书图 20.2 画出了阈值处的跳跃。请分析 Carpenter and Dobkin (2009) 的数据 mlda.csv。
20.5 再分析 Lee (2008) 的数据
原书图 20.5 的置信区间,用的是假定同方差的标准误。请再画一张图,置信区间改用 OLS 的 EHW 标准误。
20.6 推荐阅读
D’Amour et al. (2021) 讨论过高维协变量下重叠的含义。
Thistlethwaite and Campbell (1960) 关于断点回归的原文,后来作为 Thistlewaite and Campbell (2016) 重印,并附有许多有洞察的评论。巧合的是,Thistlethwaite and Campbell (1960) 与 Rubin (1974) 都发表在 Journal of Educational Psychology。
第五部分 工具变量
非参数统计里这叫局部线性回归(local linear regression),属于更广的局部多项式回归(Fan and Gijbels, 1996)。↩︎