第 2 章 潜在结果
2.1 实验者眼中的因果推断
Rubin (1975) 与 Holland (1986) 留下过一句常被提起的话:
「没有操纵,就没有因果。」
(no causation without manipulation.)
并不是人人都同意。可它有一种安静的好处:能帮我们把因果想清楚一点,少一些含糊。本书顺着这个看法走,用潜在结果框架(potential outcomes framework;Neyman, 1923; Rubin, 1974)来定义因果效应。在这个框架里,总要有一场实验——至少是一场思想实验——里面有一种处理,我们关心它如何改变某个(或某些)结果。有时,人们也把处理叫做干预,或操纵。
例 2.1 若我们关心吃不吃阿司匹林对头痛缓解的影响,干预就是:吃,或不吃。
例 2.2 若我们关心参加或不参加就业培训,对就业与工资的影响,干预就是:参加,或不参加。
例 2.3 若我们关心小班还是大班对标准化考试成绩的影响,干预就是:是否在小班学习。
例 2.4 Gerber et al. (2008) 关心不同「动员投票」信息对投票行为的影响。干预,就是那些不同的信息。
例 2.5 Pearl (2018) 认为,我们可以推断肥胖对寿命的影响。肥胖常用身体质量指数(BMI)来度量:体重(千克)除以身高(米)的平方。于是干预,似乎可以是不同水平的 BMI。
可上面这些干预,清晰程度并不一样。例 2.1–2.4 的意思相对清楚;例 2.5 里「干预 BMI」却显得模糊。我们很容易想象好几种「降低 BMI」的方式:更健康的饮食、更多运动、减重手术……它们对结果的影响,可能差得很远。本书会把例 2.5 这种干预,在进一步澄清之前,看作定义不清的。
另一个定义不清的干预,是种族。劳动力市场上的种族歧视很重要,可我们很难想象一场实验去「改变」某个实验单元的种族。Bertrand and Mullainathan (2004) 给过一个有意思的实验,部分回应了这个问题。
例 2.6 回想例 1.1。Bertrand and Mullainathan (2004) 随机改简历上的姓名,比较「听起来像黑人」与「听起来像白人」的回电率。对每一份简历,干预是姓名听起来像哪一类,结果是是否接到回电。我在 1.2.2 节分析过这张表:
| 回电 | 未回电 | |
|---|---|---|
| Black | 157 | 2278 |
| White | 235 | 2200 |
由此可比较两类姓名被回电的概率:
\[ \frac{157}{2278+157}-\frac{235}{2200+235} = 6.45\%-9.65\% = -3.20\% < 0, \]
Fisher 精确检验的 \(p\) 值远小于 \(0.001\)。
在这个实验里,处理是被感知的种族——实验者可以操纵它。他们设计实验,去回答一个定义清楚的因果问题。批评者仍可能说:感知种族的效应,未必等于真实种族的效应。这话有它的道理;可至少,问题本身被放进了一场可以说清的实验。
2.2 潜在结果的形式记号
考虑一项有 \(n\) 个实验单元的研究,用 \(i=1,\ldots,n\) 编号。作为起点,我们先看两水平处理:\(1\) 为处理,\(0\) 为对照。对每个单元 \(i\),关心的结果 \(Y\) 有两个版本:
\[ Y_i(1)\quad\text{与}\quad Y_i(0), \]
它们是在假想干预 \(1\) 与 \(0\) 下的潜在结果。Neyman (1923) 最早使用这类记号。它看起来直觉,却藏着一些假设。Rubin (1980) 把这些隐藏的假设说得更清楚了。
假设 2.1(无干扰) 单元 \(i\) 的潜在结果,不依赖其他单元的处理。这有时也叫无干扰假设(no-interference assumption)。
假设 2.2(一致性) 处理没有其他「版本」。换句话说,处理水平必须定义清楚,至少对所关心的结果而言没有歧义。这有时叫一致性假设(consistency assumption)。1
假设 2.1 在传染病或网络实验里很容易破。比如:我的朋友打了流感疫苗,即便我没打,我得流感的机会也可能下降;朋友在 Facebook 上看见广告,即便我没直接看见,我买那件商品的机会也可能上升。干扰单元下的因果推断,是当代文献里很活跃的一片田野(例如 Hudgens and Halloran, 2008)。
假设 2.2 则常在「成分复杂」的处理上破。研究吸烟对肺癌的影响时,香烟种类可能要紧;研究大学教育对收入的影响时,学校类型与专业也可能要紧。
Rubin (1980) 把假设 2.1 与 2.2 合在一起,称作稳定单元处理值假设(Stable Unit Treatment Value Assumption, SUTVA)。
假设 2.3(SUTVA) 假设 2.1 与 2.2 同时成立。
在 SUTVA 下,Rubin (2005) 把那张 \(n\times 2\) 的潜在结果矩阵,亲切地叫做科学表(Science Table):
| \(i\) | \(Y_i(1)\) | \(Y_i(0)\) |
|---|---|---|
| 1 | \(Y_1(1)\) | \(Y_1(0)\) |
| 2 | \(Y_2(1)\) | \(Y_2(0)\) |
| … | … | … |
| \(n\) | \(Y_n(1)\) | \(Y_n(0)\) |
因为 Neyman 与 Rubin 对统计因果推断的奠基性贡献,潜在结果框架有时也被称为 Neyman 模型、Neyman–Rubin 模型,或 Rubin 因果模型。我在本书和其他科学写作里,更愿意就叫它「潜在结果框架」——名字朴素一点,却也清楚一点。
因果效应,是科学表的函数。个体因果效应
\[ \tau_i = Y_i(1)-Y_i(0),\qquad (i=1,\ldots,n) \]
从根本上就很难推断:对每个单元 \(i\),我们只能看见 \(Y_i(1)\) 或 \(Y_i(0)\) 其中之一——科学表,永远只露出一半。作为起点,本书大部分地方关注平均因果效应(average causal effect, ACE):
\[ \tau = n^{-1}\sum_{i=1}^{n}\{Y_i(1)-Y_i(0)\} = n^{-1}\sum_{i=1}^{n}Y_i(1) - n^{-1}\sum_{i=1}^{n}Y_i(0). \]
当然,我们也可以谈许多别的参数(也叫估计目标)。习题 2.2 给了几个例子。
2.2.1 因果效应、子组,以及尤尔–辛普森悖论为何不会出现
若有一个二值变量 \(X_i\) 把人分成两组,可以定义子组因果效应:
\[ \tau_x = \frac{\sum_{i=1}^{n} I(X_i=x)\,\{Y_i(1)-Y_i(0)\}} {\sum_{i=1}^{n} I(X_i=x)}, \qquad (x=0,1) \]
其中 \(I(\cdot)\) 是示性函数。有一个简单而温暖的恒等式:
\[ \tau = \pi_1\tau_1 + \pi_0\tau_0, \]
其中 \(\pi_x=\sum_{i=1}^{n}I(X_i=x)/n\) 是 \(X_i=x\) 那一组的比例。于是,若 \(\tau_1>0\) 且 \(\tau_0>0\),必有 \(\tau>0\)。尤尔–辛普森悖论,不会发生在因果效应上。
换句话说:一旦我们真正谈的是「每个人两边结果之差」的平均,整体就不会与每一层在符号上闹别扭。第 1 章里那种令人困惑的翻转,来自关联,而不是来自这样定义的因果。
2.2.2 「实验单元」定义里的微妙之处
我想谈一件细而重要的事:实验单元,可以不同于物理上的那个人。
比方说:我以前没吃阿司匹林,头痛没好;现在吃了,头痛好了。你或许会想——那我们岂不是同时看见了我在对照与处理下的潜在结果?令 \(i\) 代表我,\(Y=1\) 表示没有头痛。上面的直觉似乎说 \(Y_i(0)=0\)、\(Y_i(1)=1\),阿司匹林治好了我的头痛。
可这逻辑走偏了,偏在误解了实验单元。在不同时间点,我这个物理上的同一个人,成了两个不同的实验单元,不妨记作「\(i,\) 之前」与「\(i,\) 之后」。于是有四个潜在结果:
\[ \begin{aligned} Y_{i,\text{before}}(0) &= 0, & Y_{i,\text{before}}(1) &= ?,\\ Y_{i,\text{after}}(0) &= ?, & Y_{i,\text{after}}(1) &= 1, \end{aligned} \]
其中两个被观测到,两个仍在暗处。个体因果效应
\[ Y_{i,\text{before}}(1)-Y_{i,\text{before}}(0)=?-0, \qquad Y_{i,\text{after}}(1)-Y_{i,\text{after}}(0)=1-? \]
都未知。也许即便不吃阿司匹林,头痛也会自己好:
\[ Y_{i,\text{after}}(0)=1,\qquad Y_{i,\text{after}}(1)=1 \]
——效应为零;也可能不吃就不会好:
\[ Y_{i,\text{after}}(0)=0,\qquad Y_{i,\text{after}}(1)=1 \]
——阿司匹林有正向效应。
若强行假定「之前」与「之后」的对照潜在结果稳定:
\[ Y_{i,\text{before}}(0)=Y_{i,\text{after}}(0)=0, \]
错误的直觉或许会碰巧得到正确的答案。可这假设很强,而且从根本上不可检验。Rubin (2001) 在自我实验的语境里,谈过相近的问题。
2.3 处理分配机制
令 \(Z_i\) 为单元 \(i\) 的二值处理指示,写成向量 \(Z=(Z_1,\ldots,Z_n)\)。单元 \(i\) 的观测结果,是潜在结果与处理的函数:
\[\begin{align} Y_i &= \begin{cases} Y_i(1), & \text{若 } Z_i=1,\\ Y_i(0), & \text{若 } Z_i=0 \end{cases} \tag{2.1}\\[0.5em] &= Z_i Y_i(1) + (1-Z_i)Y_i(0) \tag{2.2}\\[0.5em] &= Y_i(0) + Z_i\{Y_i(1)-Y_i(0)\} \tag{2.3}\\[0.5em] &= Y_i(0) + Z_i\tau_i. \tag{2.4} \end{align}\]
式 (2.1) 是观测结果的定义。(2.2) 与 (2.1) 等价——看似平凡,Pearl (2010b) 却把它看作潜在结果与观测结果之间的一座根本桥梁。(2.3) 与 (2.4) 则提醒我们:个体因果效应 \(\tau_i=Y_i(1)-Y_i(0)\) 可以因人而异。
实验只揭示每个单元两个潜在结果中的一个,另一个缺失:
\[ Y_i^{\mathrm{mis}} = \begin{cases} Y_i(0), & \text{若 } Z_i=1,\\ Y_i(1), & \text{若 } Z_i=0 \end{cases} = Z_i Y_i(0)+(1-Z_i)Y_i(1). \]
缺失的,恰是「另一条路上」会发生的事。因此,潜在结果框架有时也叫反事实框架。2 这个名字容易让人困惑:实验之前,两个潜在结果都还有机会被看见;只有实验之后,一个成了观测,另一个才真正成了「反事实」。
处理分配机制——也就是 \(Z\) 的概率分布——在推断因果效应时很要紧。下面两个小小的数值例子,把这一点说得很明白。我们先从正态分布生成潜在结果,使平均因果效应大约为 \(-0.5\):
> n = 500
> Y0 = rnorm(n)
> tau = -0.5 + Y0
> Y1 = Y0 + tau一位「完美医生」若知道个体效应非负才给药,观测均值差会变成正的:
> Z = (tau >= 0)
> Y = Z*Y1 + (1 - Z)*Y0
> mean(Y[Z==1]) - mean(Y[Z==0])
[1] 2.166509一位「一无所知的医生」对个体效应毫无信息,只靠抛一枚公平硬币决定给药,均值差就会靠近真实的平均因果效应:
> Z = rbinom(n, 1, 0.5)
> Y = Z*Y1 + (1 - Z)*Y0
> mean(Y[Z==1]) - mean(Y[Z==0])
[1] -0.552064现实里当然没有完美知道个体效应的医生。可这两个假想,已经足够温柔地提醒我们:谁得到处理、如何得到处理,会彻底改写我们看见的故事。 本书后面的章节,也将主要按处理分配机制来组织。
2.4 习题
2.1 一位完美医生
沿用 2.3 节第一个完美医生的设定,设潜在结果由下式生成:
\[ Y(0)\sim\mathcal{N}(0,1),\qquad \tau=-0.5+Y(0),\qquad Y(1)=Y(0)+\tau. \]
处理由效应决定:\(Z=1(\tau\ge 0)\);观测结果为 \(Y=ZY(1)+(1-Z)Y(0)\)。请计算均值差 \(\mathrm{E}(Y\mid Z=1)-\mathrm{E}(Y\mid Z=0)\)。
注: 截断正态随机变量的均值公式为:若 \(X\sim\mathcal{N}(\mu,\sigma^2)\),则
\[ \mathrm{E}(X\mid a<X<b) = \mu-\sigma\cdot \frac{\phi\!\left(\frac{b-\mu}{\sigma}\right)-\phi\!\left(\frac{a-\mu}{\sigma}\right)} {\Phi\!\left(\frac{b-\mu}{\sigma}\right)-\Phi\!\left(\frac{a-\mu}{\sigma}\right)}, \]
其中 \(\phi\) 与 \(\Phi\) 分别是标准正态的密度与累积分布函数。
2.2 非线性因果估计目标
对 \(n\) 个单元的潜在结果 \(\{(Y_i(1),Y_i(0))\}_{i=1}^n\),均值差等于个体处理效应的平均:
\[ \bar Y(1)-\bar Y(0) = n^{-1}\sum_{i=1}^{n}\{Y_i(1)-Y_i(0)\}. \]
因此平均处理效应是线性的因果估计目标:平均潜在结果之差,等于个体潜在结果之差的平均。
别的目标未必线性。例如,可定义中位数处理效应
\[ \delta_1 = \operatorname{median}\{Y_i(1)\}_{i=1}^n - \operatorname{median}\{Y_i(0)\}_{i=1}^n, \]
它一般不同于个体处理效应的中位数
\[ \delta_2 = \operatorname{median}\{Y_i(1)-Y_i(0)\}_{i=1}^n. \]
- 请分别给出 \(\delta_1=\delta_2\)、\(\delta_1>\delta_2\)、\(\delta_1<\delta_2\) 的数值例子。
- \(\delta_1\) 与 \(\delta_2\),哪一个更有道理?为什么?请用例子说明。若你觉得两者在不同应用里都可以有道理,也可以分别举例。
2.3 平均效应与个体效应
请给出一个数值例子:平均因果效应 \(\tau=n^{-1}\sum_{i=1}^{n}\{Y_i(1)-Y_i(0)\}>0\),但满足 \(Y_i(1)>Y_i(0)\) 的单元比例却小于 \(0.5\)。也就是说,平均来看处理有益,却对不到一半的人真正有益。
2.4 推荐阅读
Holland (1986) 是统计因果推断的经典综述,它让「Rubin 因果模型」这个名字广为人知。在加州大学伯克利,我们有时也叫它「Neyman 模型」——理由,大概你也猜得到。