第18章:因果结构的形式化——三层阶梯与 do-calculus
从数据里永远推不出因果。除非你愿意承认某些结构是假设,不是发现。
第17章结尾留下了一个令人不舒服的事实:概率论,无论多么精密,都无法区分"
这不是计算能力的问题,不是数据量的问题,而是数学的结构性限制:观测描述的是世界静止时的样子,不描述世界被拨动后的样子。
但我们一直在拨动世界。医生开药,政策制定者调整税率,工程师修改参数。每一次干预,都是在问一个概率论无法回答的问题:"如果我改变
要回答这个问题,需要一种新的推断规则。这一章的任务,就是把"改变"这个动作本身形式化。
18.1 三层阶梯
Judea Pearl 用一个比喻描述因果推断的层级结构,他称之为因果阶梯(Ladder of Causation)。阶梯有三层,从低到高,每一层都需要前一层没有的能力。
第一层:关联(Association)
这是概率论的领地。问题的形式是:
"看到
, 是什么?"
用数学语言:
第二层:干预(Intervention)
问题的形式变成了:
"如果我把
设置为某个值, 会是什么?"
这和第一层的区别是根本性的。"看到
被动观察时,
这一层需要的不只是数据,还需要行动——或者,当行动不可行时,需要某种允许你在数学上模拟行动的工具。
第三层:反事实(Counterfactual)
问题变得更难:
"如果当初
不是那个值, 会怎样?"
这已经是对单个个体在另一个可能世界里的询问。"这个病人服药后康复了——如果他当时没有服药,他还会康复吗?"这个问题无法通过任何观测或实验直接回答,因为那个"没有服药"的平行世界,我们永远无法进入。
三层阶梯是真实的分层,不是哲学修辞
这三层对应着能力的真实边界。纯粹的观测数据只能回答第一层问题。随机对照实验(RCT)能回答第二层,但代价是实际执行干预。反事实推断需要一个完整的因果模型,加上关于"个体机制"的额外假设——这超出了任何实验的能力范围。大多数统计学家花了大半个职业生涯在第一层工作,却误以为自己在回答第二层的问题。这个混淆,造成了大量科学文献里的错误推论。
兔狲教授评
"误以为"这个词太客气了。这不是认知错误,这是工具错误。手里只有相关性的锤子,每个问题看起来都是相关性的钉子。问题不在于统计学家的智识,而在于标准训练从来没有把第一层和第二层之间的边界画清楚。
18.2 图:因果的几何
第一步是给"因果结构"一个精确的数学表示。
**有向无环图(DAG)**是最自然的工具。节点代表变量,有向边代表直接因果影响:
一个简单的例子。考虑三个变量:季节(
季节影响洒水器(夏天更可能开),季节也直接影响草地(下雨),洒水器也直接影响草地。
在这个图里,
概率论看到的是两者叠加的结果,无法区分。图把这个结构显式地画出来了。
图不是从数据里读出来的
这是初学者最容易犯的错误。因果图表示的是领域知识,不是统计推断的产物。你不能从
兔狲教授评
箭头的方向是你带进来的,不是数据给出的——这句话会让很多做数据科学的人不舒服,因为他们习惯于"让数据说话"。但数据说不了这个话。承认这一点需要勇气,很多论文逃避了这一步。逃避的代价,是把假设藏进了方法里,假装它是结论。
18.3 结构因果模型
图只是骨架。要让它成为一个可以做推断的机器,需要在每条边上附上内容。这就是结构因果模型(Structural Causal Model,SCM)。
一个 SCM 由三部分组成:
外生变量
内生变量
结构方程:对每个内生变量
其中
这个方程不是统计回归方程——它是一个机制,描述的是"在给定父节点和噪声的情况下,这个变量取什么值"。这个机制是稳定的、局部的:改变其他变量的方程,不会影响这个方程。这个局部稳定性,是因果模型区别于统计模型的核心特征。
回到洒水器的例子,结构方程可以是:
18.4 do 算子:干预的形式化
现在可以精确地定义"干预"了。
干预
这个操作在图上的效果很直观:删除所有指向
这个"被手术过的图",称为干预图,记作
干预后的概率分布,记作
把它和条件概率做比较:
前者是"在观测到
两者可以相差悬殊。在洒水器的例子里,
随机对照实验做的是什么
随机对照实验(RCT)的核心操作,在数学上正是
18.5 后门准则:混淆的几何
do-calculus 的核心问题是:在什么条件下,可以用观测数据估计因果效应,也就是说,什么时候
回答这个问题,需要理解"混淆"的几何结构。
在因果图里,
后门准则(Backdoor Criterion)给出了一个精确的条件:变量集
中没有 的后代; 阻断了所有从 到 的后门路径。
如果这样的
这个公式叫做调整公式。它的意思是:在
在洒水器的例子里,
这个量完全由观测数据决定,不需要真正操控洒水器。
18.6 do-calculus 三条规则
后门准则覆盖了大量实际情况,但不是全部。有些因果图里,后门路径无法被任何可观测变量集完全阻断——比如存在不可观测的混淆因素时。
为了处理更一般的情况,Pearl 提出了 do-calculus:三条关于
设
规则一(观测的增删):
当且仅当在
意思是:如果在干预图里,
规则二(行动与观测的互换):
当且仅当在
意思是:在某些条件下,干预
规则三(干预的消除):
当且仅当在
意思是:在某些条件下,
三条规则的完备性
Pearl 和 Shpitser 证明了:对于任意因果图,如果
这三条规则的形式,和第14章的推断规则高度相似:横线上是条件,横线下是可以做的推断。区别在于,这里的"语言"不只是命题,而是带着
18.7 d-分离:图的独立性语言
do-calculus 的三条规则,每一条都依赖一个核心判断:在某个图里,两组变量是否关于另一组变量条件独立。如何从图的结构直接读出条件独立性?这正是 d-分离(directional separation)的工作。
给定有向无环图
"阻断"的定义依赖路径上经过的节点类型:
- 链
: 在 中时,路径被阻断( 传递信息,控制 后信息停止流动)。 - 叉
: 在 中时,路径被阻断( 是共同原因,控制 后关联消失)。 - 对撞
: 不在 中时,路径被阻断(对撞节点默认阻塞信息;但控制它或其后代,反而开放了路径——这是"碰撞偏差"的来源)。
对撞节点的行为是反直觉的,值得停下来想清楚。考虑"身高"(
18.8 反事实:单个个体的另一个世界
三层阶梯的最高层,反事实,需要一个在结构因果模型里的精确定义。
考虑一个具体的个体,在某个具体情况下,经历了
在 SCM 里,这个问题有三步走的回答:
第一步:溯因(Abduction)。利用观测到的
第二步:行动(Action)。在结构方程里,把
第三步:预测(Prediction)。在修改后的模型和第一步得到的
这三步合在一起,给出了反事实推断的操作定义——不是哲学思辨,而是可以计算的程序,只要你有一个足够完整的 SCM。
平均处理效应与个体处理效应
流行病学里常用的"平均处理效应"(ATE)是第二层的概念:
18.9 因果与推断:一个更大的图景
回顾这一章走过的路。
从第14章开始,推断规则是关于命题的:从
现在,第18章做的事情是:在推断的语言里加入一个新的动词——干预。
这个结构和形式系统的结构完全平行:
| 形式系统 | 因果推断 |
|---|---|
| 命题变元 | 变量 |
| 推断规则 | do-calculus 三条规则 |
| 公理 | 图(局部独立性假设) |
| 可证( | 可识别(identifiable) |
| 不完备定理 | 不可识别性定理 |
可识别性定理扮演着不完备定理的角色:存在某些因果效应,即使有了完整的观测数据和完整的图,也永远无法从观测中计算出来——必须实际做实验。这不是方法的缺陷,而是结构性的边界。
悬而未决
因果图从哪里来? 整章都在假设你已经有了一张正确的因果图。但在实践中,图是主观知识和领域假设的产物。如果图画错了,do-calculus 给出的答案也是错的——系统的可靠性依赖于图的正确性,而图的正确性无法从数据里验证。这是因果推断最深的困境:工具越精密,假设的重量就越重。
能否从数据里自动发现因果图? 因果发现(Causal Discovery)算法——PC 算法、FCI 算法、LiNGAM——尝试从观测数据中推断因果结构的某些方面。但在一般情况下,可观测的数据只能确定一个"马尔科夫等价类"——一组产生相同条件独立性关系的图,箭头方向在类内无法区分。把等价类中的一张图选出来,仍然需要领域知识,或者对误差分布的额外假设。
在因果图上做推断,代价有多大? 即使有了图,因果效应的识别和计算,在一般情况下是计算上昂贵的。判断一个因果效应是否可识别,是多项式时间可完成的;但在存在隐变量的复杂图里,计算可识别效应的具体表达式,代价急剧上升。这个问题的全貌,是第19章的主题:推理的代价,不只是逻辑的限制,也是计算的限制。
思考题
★ 热身
判断以下问题分别属于因果阶梯的哪一层(关联/干预/反事实),并说明理由。
- "吸烟者的肺癌发生率比不吸烟者高多少?"
- "如果强制推行禁烟令,肺癌发生率会下降多少?"
- "这位肺癌患者如果当年没有吸烟,他现在会患癌吗?"
- "在检测到高血压的人群中,使用降压药的比例是多少?"
- "给这名高血压患者开降压药,他未来10年的心血管事件风险会减少多少?"
★★ 推导
考虑因果图:
- 列出所有从
到 的路径。哪些是因果路径(沿箭头方向),哪些是后门路径? - 用后门准则,写出
的调整公式。 - 如果
是不可观测的隐变量,调整公式是否还能使用? 在这种情况下是否可识别?
★★★ 挑战
在因果图
你想分别估计:
对 的直接效应(不经过 的部分) 对 的间接效应(经过 的部分)
直接效应和间接效应属于因果阶梯的哪一层?试着用
