INTERVENE · 六卷 · 24 章 · 24 个真 demo
拨动
「相关不是因果」这句话你早就会背了。
但它是一句止损的话,不是一句能用的话——它告诉你什么时候该闭嘴,
从没告诉你什么时候可以开口。
这本书讲的就是那个条件。而它全部的内容可以压成一个动作:看 ≠ 拨。
处理 X结果 Y
混淆(要控制)对撞(别控制)
这本书的招牌
第 12 章。一台世界机器,真效应 +5.00 明明白白写在结构方程里。 同一份两万人的数据,四种「控制变量」的选法:
往回归里放什么 估计值 离真值 5.00 ────────────── ──────── ─────────── 什么都不放 −3.3185 −8.32 ← 连符号都反了 只放 C +4.9632 −0.04 ← 对 C 和 S 都放 +3.3061 −1.69 ← 多控制一个,从对变错 只放 S −4.8146 −9.81 ← 最惨的一种
数据一个字节都没变。变的只是你决定往回归里放什么。 而这个决定,数据本身给不了你——只有一张你必须自己画出来的图能给。
六卷
卷 I
看不出来
BLIND四种完全不同的世界,可以给你一模一样的数据。先看清问题有多难。
卷 II
画出来
DRAW把「谁导致谁」写成一张图,然后就可以对它做算术。
卷 III
认出来
CUT拨动 = 把指向它的箭头剪断。剪对了才算数。
- 09看,和拨同一个种子,看给出 −3.318,拨给出 +5.000;拨之后两组的混淆差是 0.000000▸ ★ 图手术台
- 10后门准则:把偷偷绕过去的路堵死四个候选变量的 16 个子集里,只有 1 个能用▸ ★ 后门搜索器
- 11有些变量,控制了就毁了控制中介砍掉 61.9% 的真效应;M-bias 里的对撞机伪装成完美的混淆▸ 中介与 M-bias
- 12同一份数据,三个答案★ 招牌。真值 +5.00,四种选法给出 −3.32、+4.96、+3.31、−4.81▸ ★★ 招牌
- 13混淆看不见,也还有一条路U 完全不可观测,只用三列数据把真效应 1.2600 估成 1.2557▸ ★ 前门估计器
卷 IV
算出来
COUNT从一张图,到一个可以写进报告的数字。
卷 V
偷来的
STEAL不能自己抽签的时候,去世界上找一次别人替你抽的签。
卷 VI
用出来
USE机器、指标、和你自己的判断。
写给谁
- 会写代码、每天要读数字、但没系统学过因果推断的人。不需要任何统计基础——每个术语第一次出现都当场解释。
- 做过或看过 A/B 测试,想知道「不能做实验的时候还能怎么办」的人。
- 训模型的人。第 17、23 章是给你的:为什么模型换个分布就崩,为什么「因果 ML」改进的其实不是你以为的那部分。
- 读新闻、读论文、读研究报告时想有一把尺子的人。
这本书不打算做的事
- 不教你 R 或 Python 的包怎么调。第 24 章给了工具清单,但这本书讲的是它们背后那件事——而那件事换个语言、换个包都不会变。
- 不给证明。d-分离的完备性、do-演算的三条规则、ID 算法,这本书只讲它们说了什么、意味着什么。要证明请看第 24 章的路线图。
- 不假装因果推断能解决一切。第 13 章会明确告诉你什么时候答案根本不存在,第 22 章会告诉你你的结论有多脆弱。这门学问最值得尊敬的地方,正是它知道自己的边界在哪。
怎么读这本书
- 顺着读。六卷是有依赖的:卷 I 建直觉,卷 II 给语言,卷 III 讲识别,卷 IV 讲估计,卷 V 讲没法识别时怎么办,卷 VI 收尾。
- 每章开头的「▷ 先判一次」,请真的先判。它有一个自指的作用:你答对的那些,说明这一章对你信息量小,可以快读;答错的那些,正是这一章要给你的东西。答案在同一章末尾的「◇ 判词」里,而且会解释每个错误选项背后的直觉是从哪来的。
- Demo 请动手拖。24 个 demo 里的每一个数字都是那台引擎当场算的,不是写死的。尤其第 7、12、17 章那三个——它们是专门用来推翻直觉的。
- 时间紧就读四章:第 7 章(对撞机)、第 10 章(后门准则)、第 12 章(招牌)、第 24 章(自查表)。这四章能覆盖实践中八成的翻车。
关于这本书里的数字
正文里出现的每一个数字,都是 assets/engine.js 当场算的,没有一个是手写的。这台引擎里装着:一台 d-分离判定器、一台图手术台、后门与前门准则的搜索器、一台线性 SCM 模拟器、最小二乘、逻辑回归(IRLS)、匹配 / IPW / 双重稳健 / 2SLS / DiD / RDD / E-value,和反事实三步。
能对照的地方全都对照过了:
- d-分离与 Python
networkx的is_d_separator在 1484 个查询上逐题一致——两个完全不同的算法(遍历 vs 道德化),一题不差。 - 最小二乘与
numpy.linalg.lstsq(SVD)对到 1e-9 以内,标准误也一样。 - 逻辑回归与一个独立写的梯度上升实现对到 1e-6 以内(IRLS vs 梯度法)。
- 伯克利 1973 年录取数据直接来自 Bickel、Hammel & O'Connell 发表在 Science(1975, 187:398–404)上的表 1。
- 真因果效应本身用两种独立办法算:Wright 路径规则(解析)和真的跑两遍干预模拟(蒙特卡洛)。两个数必须对上,否则引擎自检就红了。
验证器是 scripts/verify-cause.mjs,跑 npm run verify:cause。