混淆看不见,也还有一条路
后门准则要求你测到所有混淆变量。如果测不到呢?大多数教科书到这里就说「那就没办法了」。Pearl 1995 年证明了:在一种特定的结构下,办法还有——而且不需要对那个看不见的东西做任何假设。
有一个混淆变量,你完全没测到,也永远测不到(比如「基因倾向」)。它同时影响处理和结果,而且很强。这时候能不能从观察数据里算出真实因果效应?
直觉上 A 很有说服力。但它是错的——虽然它错得很有分寸。
吸烟与肺癌:一场持续二十年的争论
1950–60 年代,吸烟与肺癌的相关性已经很确凿。但费雪(R. A. Fisher,二十世纪最重要的统计学家之一)提出了一个当时无法反驳的替代解释:
也许存在某种基因,它既让人更容易上瘾抽烟,也让人更容易得肺癌。那么吸烟和肺癌的相关就是这个基因造成的,戒烟并不会降低患癌风险。
这是一个标准的混淆假设。而在当时,它无法被数据反驳:那个基因没人测得到,随机分配人去抽烟又不道德。争论就这样卡了二十年。
Pearl 后来指出:如果我们相信这样一张图,那么这场争论其实可以用数据裁决——
U(基因,永远测不到)
↙ ↘
X(吸烟) → M(肺里的焦油) → Y(肺癌)
# 关键的两条结构假设:
# 1. U 不直接影响 M —— 基因不会决定你肺里沉积多少焦油,
# 沉积多少只取决于你抽了多少
# 2. X 只能通过 M 影响 Y —— 吸烟致癌只有焦油这一条通道
为什么这就够了
诀窍是把一条路拆成两段,每一段各自都是干净的。
第一段:X → M。这一段有后门吗?从 M 往回看,唯一能绕的路是 M ← X ← U → Y,但它走不到 M 这一侧——U 不指向 M。所以 X → M 这一段没有后门,直接回归就能识别。
第二段:M → Y。这一段有后门:M ← X ← U → Y。但注意这条路要经过 X,而 X 在这条路上是一个链上的中间节点——控制 X 就能把它堵住。而 X 我们是测得到的。
拼起来:X 对 Y 的总效应 = 第一段 × 第二段。
前门估计 = (X→M 的系数) × (控制 X 之后 M→Y 的系数)
整个论证里,U 从头到尾没有被测量,也没有被假设成不存在。它真真切切地在数据生成过程里,而且很强。我们只是绕开了它。
跑一遍
这台机器里 U 的强度我写得很足:U→X = 1.2,U→Y = 1.6。八千个样本:
方法 估计值 真值 1.2600 ────────────────────────────── ──────── ─────────── 朴素回归 Y ~ X(被 U 污染) 2.0714 偏了 +64% 前门 a × b 1.2557 对 控制 U(作弊,现实中做不到) 1.2583 对
前门估计的 1.2557 和「作弊地把 U 也控制进去」的 1.2583 几乎一样。而它只用了 X、M、Y 三列数据。
一组变量 M 满足关于 (X, Y) 的前门准则,如果:
- M 截断了 X 到 Y 的所有有向路径(没有绕过 M 的直接通道);
- X 到 M 没有未被阻断的后门路径;
- M 到 Y 的所有后门路径都被 X 阻断。
满足这三条时,因果效应可以只用 X、M、Y 的观察分布算出来:
P(Y|do(x)) = Σ_m P(m|x) × Σ_x' P(Y|m, x') P(x')
(线性情形下,这个式子就退化成上面那个「两段系数相乘」。)
代价在哪
前门看起来像免费的午餐,其实不是。它把「我测到了所有混淆」这个假设,换成了另外三个假设,而且每一个都可能站不住:
- 「M 是唯一通道」——吸烟真的只通过焦油致癌吗?一氧化碳呢?其他致癌物呢?只要有一条绕过 M 的直接通道,前门估计就偏了。这是最难满足的一条。
- 「U 不影响 M」——那个基因真的不影响焦油沉积吗?如果它也影响代谢速度,这条就破了。
- 「M 测得准」——如果 M 有测量误差,两段系数都会被稀释(第 5 章的回归稀释),乘积会低估。
所以诚实的说法是:前门准则不是「不需要假设」,它是「换一组假设」。它的价值在于,这组新假设可能在某些问题上比「我测到了所有混淆」更容易辩护——因为它关心的是机制(有几条通道),而不是清单(有几个变量没测)。
顺带一提:前门准则在现实研究中用得并不多,因为「唯一通道」这条太苛刻。它的主要价值是概念性的——它证明了「测不到混淆就一定没救」这个信念是错的,从而打开了后来一整套识别理论。
什么时候真的没救
这一节是这门学问最值得尊敬的部分。
Pearl 和后来的研究者把后门、前门这些准则推广成了一套完整的演算——do-演算(do-calculus),只有三条规则:
规则 1 在什么条件下可以【加/删一个观测】 规则 2 在什么条件下可以【把 do 换成观测】 ← 后门准则是它的特例 规则 3 在什么条件下可以【直接删掉一个 do】
然后 Shpitser 和 Pearl(2006)、Huang 和 Valtorta(2006)各自证明了一件很强的事:
存在一个算法(ID 算法),对任意一张因果图和任意一个因果查询,要么给出一个只用观察数据的表达式,要么证明这个查询在这张图下不可识别。
而且 do-演算那三条规则是完备的:如果 ID 算法说不可识别,那就是真的没有任何方法能从观察数据里算出它——不是「我们还没想到」,是不存在。
这在工程上有一个很实在的意义:你可以在收集数据之前,先知道这个问题能不能答。
最简单的不可识别情形,就是一个赤裸裸的、没有中介的混淆:
U(测不到)
↙ ↘
X ────────→ Y
# 没有 M,没有别的变量。
# 这张图下 P(Y|do(X)) 【不可识别】。
# 数据要多少有多少,答案都不在里面。
这时候唯一的出路是从图外面引入新的东西——一次随机化(第 14 章),或者一个工具变量、一次政策变化、一条分数线(卷 V)。
「我们数据不够,再收集半年」——这句话在一部分场合是自欺欺人。如果你的问题在当前的图下不可识别,那么再收集十年的同类数据也没用,因为缺的不是量,是结构。
正确的动作是换一种数据:能不能做一次小规模随机试验?有没有哪次改版是随机推的?有没有一条人为的分界线(比如「注册满 30 天送优惠券」)可以当断点用?找一个新的箭头,比堆同样的数据有用得多。
这也是这门学问对工程实践最直接的贡献:它让「这个问题能不能回答」变成一个可以在动手前判定的问题。
但反过来的错误同样要防:不是「总有办法」。ID 算法会明确告诉你什么时候没有办法,而这个「没有」是被证明了的,不是暂时的。
这两句话合起来才是完整的立场:可识别性是图的性质,不是数据的性质,也不是你努力程度的性质。
C能,但需要图上有一条特定的结构。
前门准则要的那条结构是:一个完全截断因果通路、且不受混淆影响的中介。有它,混淆再强也绕得开(真值 1.2600,前门估出 1.2557);没有它,可能就真的无解。
A 「这是观察数据的根本极限」——很多人的默认信念,包括费雪当年。它错在把「后门准则失效」当成了「所有方法失效」。但它错得有分寸:确实存在真正不可识别的图,而且可以被证明。 B 「样本量足够大」——第 2 章那句话第三次出现:偏差不随 n 缩小。这本书里它会一直出现,因为它是最顽固的一个直觉。 D 「机器学习足够复杂」——模型复杂度提高的是拟合能力。拟合的是同一个被污染的关联,拟合得越好,越精确地复现那个偏了的数。第 23 章会把这件事讲透。这一章的一句话
可识别性是图的性质:有的问题在你的数据下有唯一答案,有的问题被证明了没有答案——而这件事可以在收集数据之前就判定。
卷 III 到此结束。你现在能判断「该控制什么」和「能不能算」了。但你还没真正算过一个数。
卷 IV 开始动手。下一章先回到最贵也最干净的那把剪刀:随机化。你会看到一件很多人搞反的事——随机化并不让两组人一样。n=50 的时候两组的资历还差 0.217 个标准差,最差的一次差到 0.754。它保证的是另外一样东西。