如果还有一个你没测到的
你永远没法证明「没有未测混淆」。这一章教你换一个问法——不问「有没有」,问「要多强才够」。一句空话就此变成一个可以写进结论、可以被别人反驳的数字。
一篇观察性研究报告说:「我们控制了年龄、性别、收入、教育、地区、职业共六个混淆变量。」这句话给了你多少信心?
B 是一种常见的、看起来很清醒的怀疑主义。这一章要说的是:它清醒得没有用。
换一个问法
「有没有未测混淆」这个问题的麻烦在于,它不可能有答案。你不可能列举完这个世界上所有的变量,更不可能证明它们都不重要。
于是有两种常见的反应,都不好:
- 装作没有:「我们控制了六个变量」——然后就把结论当因果用了。
- 全盘否定:「观察数据什么都证明不了」——这句话看起来严谨,实际上放弃了所有观察数据能提供的信息,而且它对任何观察性结论都同样适用,因此不构成对任何具体结论的批评。
敏感性分析给了第三条路:
不问「有没有未测混淆」,问:
「要有一个多强的未测混淆,才能把我看到的这个结果完全解释掉?」
这个问题有确定答案,而且答案是一个数。有了这个数,讨论就可以继续下去:那个假想的混淆强到这个程度,现实吗?我们真的可能漏掉这么强的一个东西吗?
E-value
VanderWeele 和 Ding(2017)给了一个特别简洁的版本,只需要一行算术。
设你报告的效应是风险比 RR(RR < 1 时先取倒数)。那么:
E = RR + √( RR × (RR − 1) )
读法:要有一个未测混淆,它和处理的关联、以及它和结果的关联,两个风险比都至少达到 E,才能把观察到的效应完全解释掉。
注意「两个都至少」这个措辞:单方面很强是不够的,必须两边都强——因为混淆是一只同时伸向两边的手(第 2 章)。
你报告的 RR E-value 解读
──────────── ───────── ────────────────────────────
1.2 1.690 随便一个中等强度的遗漏就能推翻
1.5 2.366 需要一个不弱的遗漏
2.0 3.414 需要一个相当强的遗漏
3.0 5.449 需要一个很难被忽视的遗漏
这张表把一件很虚的事变得具体了。一个 RR = 1.2 的观察性结论,脆弱得几乎不值得报道——只要有一个和处理、和结果的关联都达到 1.69 的变量被漏掉,它就没了。而 1.69 这个强度,在现实中太容易出现了。
反过来,吸烟与肺癌的 RR 在 10–20 这个量级,E-value 在 20–40。要漏掉一个和吸烟习惯、和肺癌都关联到 20 倍的基因——费雪当年那个假设,正是死在这个量级上。那不是一个「可能漏掉的变量」,那得是一个比吸烟本身还猛的东西。
大多数人把效应量理解成「实际有多重要」。E-value 给了它第二重意义:
效应量也是稳健性。一个大效应之所以更可信,不只是因为它更重要,还因为要推翻它需要一个更离谱的解释。
这也解释了为什么流行病学界对小效应(RR < 1.5)的观察性结论一向非常保守——不是因为它们不重要,是因为它们几乎不可能被观察数据确立。
敏感性分析的一家子
E-value 只是最简单的一种。这个家族还有几个成员,各有各的适用场合:
| 方法 | 问的问题 |
|---|---|
| E-value | 要多强的未测混淆才能把效应解释掉? |
| Rosenbaum bounds | 匹配后,两个「看起来一样」的人接受处理的几率最多能差多少倍,结论才翻? |
| Oster (2019) δ | 未观测变量的影响需要是已观测变量的多少倍,系数才归零? |
| Cinelli & Hazlett (2020) | 用 R² 的语言:未测混淆要解释多少残差方差才能翻案?还能画成一张等值线图 |
它们的共同精神是一样的:把不可检验的假设,参数化成一个可以变动的旋钮,然后报告「旋钮转到多少,结论才翻」。
这个精神其实和第 21 章的带宽稳健性检验是同一件事:凡是有不可检验的选择,就不要给一个数,要给一条曲线。
敏感性分析最实在的用途,是让讨论能继续下去。
没有它的时候,关于一个观察性结论的争论通常是这样:
甲:数据显示 A 导致 B。
乙:可能有混淆。
甲:我们控制了六个变量。
乙:可能还有第七个。
(死局)
有了它之后:
甲:效应的 E-value 是 3.4。要推翻它,需要一个和 A、和 B 的关联都超过 3.4 倍的遗漏变量。
乙:我认为「X」就有这么强,理由是……
甲:那我们去测一下 X。
(可以继续)
这才是可讨论的科学。它不需要谁认输,只需要把分歧落到一个具体的量上。
工程上的类比很贴切:这就像把「这个服务够不够快」换成「它的 p99 是 120ms,SLO 是 200ms,还有 80ms 的余量」。一旦有了数字,争论就变成了工作。
它是一把只量一个维度的尺子。一个 E-value 很大、但样本是被严重筛选过的研究(第 4 章),照样是错的。
另外一个常见误用:把 E-value 当成一个及格线(「E-value 大于 2 就可以说是因果」)。它不是。它只是把一个定性的担忧变成了定量的,而「这个强度的混淆现实中存不存在」这个判断,仍然需要领域知识。E-value 把球传给了懂这个领域的人,它自己不进球。
C取决于效应有多大——效应越大,需要多强的第七个才能推翻它。
如果那篇研究的 RR 是 1.2,E-value 只有 1.690,第七个变量随便就能推翻它。如果 RR 是 3.0,E-value 是 5.449,那个第七个得强到几乎不可能被漏掉。
「控制了几个变量」这个数字本身,几乎不含信息。重要的是效应有多大、以及那些没被控制的东西可能有多强。
A 「六个已经很全面」——变量的数量不说明问题。控制六个不相干的变量,不如控制一个真正的混淆。 B 「一点也没有」——这个立场的问题是它没有区分能力:它对吸烟致癌和对「喝咖啡长寿」给出完全相同的评价。一个不能区分好证据和坏证据的标准,在实践中等于没有标准。 D 「看解释了多少方差」——方差解释比例是关于预测的量。一个解释了 90% 方差的模型,X 的系数照样可以是完全偏的(第 12 章那个加了对撞机的模型 R² 更高)。这一章的一句话
你证明不了「没有未测混淆」,但你可以算出「要多强的才够」;把不可检验的假设参数化,是让讨论继续下去的唯一办法。
卷 V 到此结束。你现在有五把剪刀了:随机化、后门调整、前门、工具变量、双重差分、断点。它们的共同点是——每一把都要求你先想清楚这个世界的结构。
卷 VI 收尾。下一章看一件让人不太舒服的事:机器学习不会自己学到因果,而且它学得越好,可能崩得越惨。你会看到一个真训出来的分类器,在训练分布上 96.3%,换个分布掉到 17.5%——比瞎猜还差得多。