你手上的数据,是被谁筛过的
上一章那只手在数据外面推。这一章的机制更阴险:没有任何一只手推,只是有一道门决定了谁能进你的表格——而这道门,就足以凭空造出一个关系。
二战期间,统计学家亚伯拉罕·沃德(Abraham Wald)被要求分析返航轰炸机的弹孔分布,好决定该给哪里加装甲。数据显示:机翼和机身弹孔最密,引擎和驾驶舱几乎没有弹孔。他的建议是?
这个故事你可能听过。但请留意:它和上一章的混淆不是同一个机制,而多数人把两者混为一谈。
两个毫不相干的东西,过一道门
先看最纯粹的版本。我用两行代码生成两个变量——注意,是两行完全独立的随机数,它们之间在生成过程里连一条线都没有:
var 天赋 = 随机正态(); var 颜值 = 随机正态(); // 和上一行毫无关系 // 然后加一道门: var 红了 = (天赋 + 颜值 > 门槛);
全体人群里,天赋和颜值的相关系数是 −0.008——就是零(八千个样本剩下的抽样零头)。
现在只看「红了」的那些人:
门槛设在 1.2 的时候,20.1% 的人进了门,而在这些人里面,天赋和颜值的相关系数是 −0.643。门槛提到 2.0,只剩 8.2% 的人进门,相关系数变成 −0.721。
门槛越高,这个不存在的关系越强。
道理一句话说完:既然能红,那么长得不够好看的一定是特别有才;反过来也一样。你在数据里看到的「才貌不可兼得」,完全是那道门造出来的。在全体人群里,才和貌毫无关系。
天赋 → [ 门 ] ← 颜值
↑
这道门就是你的数据集
两支箭头指向同一个点,而这个点决定了谁能进入你手上的数据。这个结构在第 7 章会有一个名字(对撞机),并且你会看到它是全书最反直觉的一件事。
现在只要记住这个形状:两个原因,一个共同的后果,而你只看那个后果的某一档。
这道门无处不在,而且经常是你自己装的
选择偏差最麻烦的地方在于,那道门往往不在数据里——它在数据被收集之前就作用完了,你翻遍这张表也找不到它。
| 数据 | 那道门是 | 被造出来的假关系 |
|---|---|---|
| 返航的轰炸机 | 「能飞回来」 | 「中弹多的部位不致命」 |
| 名校学生 | 「录取分数线」 | 「成绩好的人体育差」 |
| 创业成功案例 | 「活到能被采访」 | 「坚持就会成功」 |
| App 的活跃用户 | 「还没卸载」 | 各种功能之间的诡异负相关 |
| 发表出来的论文 | 「p < 0.05」 | 效应量被系统性高估 |
| 去医院的人 | 「觉得自己不舒服」 | 两种毫不相干的病之间「相关」(Berkson 悖论) |
| 你面试过的候选人 | 「简历筛选」 | 「学历高的人沟通差」 |
最后一行值得多说一句,因为它是工程师最容易亲手制造的那一个。假设你的简历筛选是「学历」或者「项目经历」够好就进面试。那么在你面到的人里,学历特别好的那些,项目经历大概率一般(否则他们不需要靠学历过筛)。于是你会「用数据发现」:学历高的候选人实战能力差。而这个规律在你没面到的人群里根本不存在。
「幸存者偏差」(survivorship bias)是选择偏差的一个特例,而且是最出名的那个。但它出名到有点误导:它让人以为这类问题只出现在「成功学」这种明显可疑的场合。
其实这个机制的适用范围要广得多。凡是「某个和结果有关的东西,决定了谁能进入你的数据」,就是它。流失用户没进你的表、退出试验的病人没进你的分析、跑挂了的实验没写进论文——都是。
而且它和上一章的混淆结构不同:混淆是有一只手在两边推(箭头从 C 射出去),选择偏差是两支箭头射进同一个点,而你站在那个点上。第 6、7 章会把这两种形状彻底分开。
为什么这一章放在卷 I 的最后
因为它是四章里最难自己发现的一个。
混淆你还有救——你可以列出「有哪些东西可能同时影响两边」,然后去测它们。选择偏差没有这个奢侈:被筛掉的那些人,不在你的数据里,你连他们长什么样都不知道。
更糟的是,选择偏差会伪装成「规律」。上面那个「才貌不可兼得」,如果你不知道它是门造出来的,它看起来完全像一条深刻的人生洞见——而且你还能给它编出一套解释(「专注在一件事上就会牺牲另一件」)。人对相关的解释能力,比相关本身强太多了。
A/B 测试里最常见的一种自毁:只统计「完成了流程的用户」。假如新版本让一部分犹豫的用户中途退出了,那么留在分母里的就是意愿更强的那批人——他们的转化率当然更高。你会「测出」新版本更好,而实际上它赶走了人。
这个坑有个专门的名字,叫处理后选择(post-treatment selection)。防它的办法只有一条硬规矩:分母永远用「一开始被分进这一组的所有人」,哪怕他们中途跑了。医学里管这叫意向性治疗分析(intention-to-treat)——即使病人没吃药,也照样算在他被分到的那一组里。
这条规矩看上去很「不公平」(凭什么把没吃药的人算成吃药组),但它保护的恰恰是那一刀:随机分配的是「分到哪组」,不是「实际吃没吃」。第 19 章会告诉你,从「分到哪组」还能怎么把「实际吃了药的效果」捞回来。
你从「所有活跃用户」里完美随机地抽一万人,这个抽样一点毛病没有。但「活跃用户」这个池子本身已经被「没卸载」这道门筛过了,而卸不卸载和你要研究的东西高度相关。随机抽样对此毫无办法。
更准确的说法是:随机抽样解决的是外部有效性(这批人能不能代表那批人),随机分配解决的是内部有效性(这个差异是不是处理造成的)。它们是两回事,第 14 章会分清楚。
B加固引擎和驾驶舱,那里几乎没有弹孔。
因为数据只包含飞回来的飞机。引擎中弹的飞机没能飞回来,所以在数据里「引擎没有弹孔」。那道门是「能返航」,而它显然和「哪里中弹」直接相关。
沃德在 1943 年给出的正是这个结论。他的推理不靠更多数据,靠的是想清楚这批数据是怎么来的——这恰好是这本书要教的第一件事。
A 「哪里弹孔多加哪里」——把「幸存者身上的分布」当成了「所有飞机的分布」。这是最自然的读法,也正是错的那个。 C 「平均加固」——察觉到了样本有问题,但没意识到样本的偏法本身就是信息。缺失的位置正好指出了致命部位。 D 「需要更多数据」——再多的返航飞机数据也是同一道门筛出来的。问题不在量,在门。这一点和第 2 章那句「偏差不随 n 缩小」是同一件事的两个面。这一章的一句话
混淆是有人在推,选择偏差是有道门在筛;后者更难发现,因为被筛掉的那些人不在你的表里。
卷 I 到此结束。你现在知道了三件事会让「看」和「拨」分家:反向的箭头、共同的原因、共同的后果。这三件事其实是同一套零件的三种摆法——而全世界只有这三个零件。
卷 II 开始,我们把这些直觉换成一种可以计算的语言。下一章先拆掉一个你从小学就有的习惯:Y = 2X 这个式子,两边不能对调。你会看到 Y 对 X 回归的斜率是 2.0005,而 X 对 Y 回归的斜率不是 0.5,是 0.3992。