本章我们将深入探讨因果推断的最高层次——反事实推理。通过结构因果模型(SCM),我们不仅能回答”如果采取某个行动会发生什么”,更能回答”如果当初采取了不同的行动,结果会如何”。这种能力在法律责任判定、医疗决策和政策评估等领域具有重要价值。我们将系统学习Pearl的因果层级理论、SCM的构建方法、反事实查询的计算以及必要性与充分性概率的应用。
Judea Pearl提出的因果层级(Ladder of Causation)为我们理解不同类型的因果问题提供了清晰的框架。这个层级将因果问题分为三个递进的层次,每个层次需要不同类型的信息和推理能力。
关联层是最基础的层次,处理的是观察性问题:”看到X时,Y会是什么?”
| 数学表达:$P(Y | X)$ |
这一层只需要观察数据就能回答,是传统统计学和机器学习主要关注的领域。例如:
关联层的局限性在于无法区分相关性和因果性。即使我们观察到强相关,也不能断言存在因果关系。
干预层处理的是行动问题:”如果我做了X,Y会是什么?”
| 数学表达:$P(Y | do(X))$ |
这里的$do(X)$表示主动干预,将X设置为某个值,而不是被动观察X等于某个值。这一层需要:
例如:
反事实层是最高层次,处理的是想象问题:”如果X不同,Y会是什么?”
| 数学表达:$P(Y_x | X’, Y’)$ |
这表示:已知实际观察到$X’$和$Y’$,如果X的值是x(与实际不同),Y会是什么?
反事实问题的例子:
反事实层
↑
干预层
↑
关联层
重要性质:
结构因果模型是形式化表达因果关系的数学框架,能够统一处理所有三个层级的因果问题。
一个结构因果模型M由三部分组成:
M = ⟨U, V, F⟩
其中:
考虑一个简单的薪资模型:
U_E ~ N(0, 1) # 教育的随机因素
U_S ~ N(0, 1) # 薪资的随机因素
E = 2 + U_E # 教育年限
S = 3000 + 500*E + 1000*U_S # 薪资
这个SCM告诉我们:
SCM可以自然地转换为因果图(DAG):
U_E → E
↓
U_S → S
简化表示(隐藏外生变量):
E → S
在SCM中,干预$do(X=x)$通过替换相应的结构方程实现:
原始方程:$X = f_X(PA_X, U_X)$ 干预后:$X = x$
这相当于:
反事实推理是SCM最强大的功能之一,让我们能够回答”如果…会怎样”的问题。
反事实量$Y_x(u)$表示:在外生变量为u的情况下,如果设置X=x,Y的值是什么。
对于个体i,其反事实结果是: \(Y_{x}^{(i)} = Y_x(U^{(i)})\)
Pearl提出了计算反事实的三步法:
步骤1:溯因(Abduction) 使用观察数据推断外生变量U的值: \(P(U|evidence)\)
步骤2:行动(Action) 在推断出的U下,应用干预$do(X=x)$,修改模型
步骤3:预测(Prediction) 在修改后的模型中计算Y的值
假设我们观察到某人:
问题:如果这个人接受了6年教育,他的薪资会是多少?
步骤1:溯因 从E = 4,推断:$U_E = 4 - 2 = 2$ 从S = 5000,E = 4,推断:$U_S = (5000 - 3000 - 500*4)/1000 = 0$
步骤2:行动 设置E = 6
步骤3:预测 $S_{E=6} = 3000 + 5006 + 10000 = 6000$
因此,反事实薪资是6000元。
在Rubin因果模型中,潜在结果$Y(1), Y(0)$实际上就是反事实:
个体因果效应: \(ICE = Y(1) - Y(0) = Y_{T=1} - Y_{T=0}\)
在法律、医疗和政策评估中,我们经常需要判断某个原因对结果的责任程度。必要性和充分性概率提供了量化这种责任的框架。
必要性概率回答:”如果原因没有发生,结果还会发生吗?”
定义: \(PN = P(Y_0 = 0 | X = 1, Y = 1)\)
这表示:在观察到X=1且Y=1的情况下,如果X=0,Y也会是0的概率。
直观理解:
法律应用: 在侵权法中,PN > 0.5通常作为”若非因果关系”(but-for causation)的标准。
充分性概率回答:”如果原因发生了,结果一定会发生吗?”
定义: \(PS = P(Y_1 = 1 | X = 0, Y = 0)\)
这表示:在观察到X=0且Y=0的情况下,如果X=1,Y也会是1的概率。
直观理解:
PNS结合了必要性和充分性:
定义: \(PNS = P(Y_1 = 1, Y_0 = 0)\)
这表示:X=1时Y=1,且X=0时Y=0的概率。
关系公式: 在单调性假设下(没有个体对处理有负面反应): \(PNS = P(Y|X=1) - P(Y|X=0)\)
考虑一个药物治疗的例子:
观察数据:
| $P(康复 | 服药) = 0.8$ |
| $P(康复 | 未服药) = 0.3$ |
在单调性假设下:
这意味着50%的患者是”反应者”——服药会康复,不服药不会康复。
即使无法精确计算PN、PS,我们也可以得到有用的边界:
PN的边界: \(\max(0, P(Y|X=1) - P(Y|X=0)) \leq PN \leq \min(P(Y|X=1), P(\bar{Y}|X=0))\)
PS的边界: \(\max(0, P(Y|X=1) - P(Y|X=0)) \leq PS \leq \min(P(\bar{Y}|X=0), P(Y|X=1))\)
2023年,一辆开启Autopilot的特斯拉Model 3在高速公路上发生事故,撞上了前方突然变道的卡车。事故造成特斯拉驾驶员受伤,引发了关于自动驾驶系统责任的诉讼。
关键事实:
我们构建如下SCM:
变量定义:
- A: Autopilot状态 (1=开启, 0=关闭)
- W: 警告发出 (1=是, 0=否)
- R: 驾驶员反应 (1=及时, 0=不及时)
- S: 传感器检测 (1=正常, 0=异常)
- C: 碰撞发生 (1=是, 0=否)
结构方程:
S = f_S(U_S) # 传感器状态
W = A * S # 只有Autopilot开启且传感器正常才发警告
R = f_R(W, U_R) # 驾驶员反应取决于警告和个人因素
C = f_C(A, R, S, U_C) # 碰撞取决于多个因素
问题1:如果Autopilot没有开启,事故还会发生吗?
| 这是必要性问题:$P(C_{A=0} = 0 | A=1, C=1)$ |
分析步骤:
根据类似事故统计:
因此:$PN ≈ 0.85$
问题2:Autopilot的存在是否增加了事故风险?
| 计算充分性概率:$P(C_{A=1} = 1 | A=0, C=0)$ |
这需要评估:在没有使用Autopilot且没有发生事故的情况下,如果使用了Autopilot,发生事故的概率。
基于反事实分析,我们可以量化各方责任:
这个案例展示了反事实推理在法律责任判定中的应用:
基于因果分析,特斯拉可以:
本章我们深入探讨了因果推断的最高层次——反事实推理和结构因果模型。主要内容包括:
核心概念:
关键公式:
| 干预:$P(Y | do(X))$ |
| 必要性概率:$PN = P(Y_0 = 0 | X = 1, Y = 1)$ |
| 充分性概率:$PS = P(Y_1 = 1 | X = 0, Y = 0)$ |
实践要点:
练习13.1 Pearl因果层级理解 对于以下问题,判断它们属于哪个因果层级(关联/干预/反事实): a) “糖尿病患者的平均血糖水平是多少?” b) “如果给所有人注射胰岛素,血糖会下降多少?” c) “如果这个糖尿病患者昨天注射了胰岛素,他今天的血糖会是多少?” d) “看到某人血糖高,他患糖尿病的概率是多少?”
练习13.2 SCM计算 给定如下结构因果模型:
U_X ~ Bernoulli(0.5)
U_Y ~ Bernoulli(0.3)
X = U_X
Y = X ⊕ U_Y (异或运算)
计算: a) P(Y=1) b) P(Y=1|do(X=1)) c) 对于观察到X=1, Y=0的个体,计算反事实$Y_{X=0}$
练习13.3 必要性概率计算 某医院数据显示:
在单调性假设下,计算: a) 疫苗的必要充分性概率PNS b) 估计必要性概率PN的下界
练习13.4 多原因反事实 考虑火灾案例,有两个纵火犯A和B:
SCM:
火灾 = A OR B
A = 1 (A纵火了)
B = 1 (B纵火了)
现在火灾发生了。计算: a) A对火灾的必要性概率 b) 如果只有A或B其中一人纵火,火灾就会发生,这种情况下的责任如何分配? c) 设计一个更合理的SCM来处理共同原因
练习13.5 反事实推理悖论 “如果我没有买彩票,我就不会中奖”——这看起来显然正确。但考虑:
解释为什么这个反事实是0,以及这与直觉的关系。
练习13.6 法律因果链 某公司数据泄露案:
SCM:
D = H * (1-P) # 只有黑客攻击且无补丁才泄露
问题: a) 计算员工失职的必要性概率 b) 如果补丁只能阻止50%的攻击,如何修改模型? c) 讨论法律责任分配的原则
练习13.7 开放性思考:反事实的哲学含义 David Lewis说:”反事实是关于最相似的可能世界的陈述。” 讨论: a) SCM如何形式化”最相似”的概念? b) 反事实推理在人工智能中的作用 c) 机器能否真正理解反事实?
在应用反事实推理和SCM时,研究者经常遇到以下问题:
错误:用观察数据直接回答反事实问题
错误推理:"吸烟者肺癌率30%,所以这个吸烟肺癌患者如果不吸烟,
有70%概率不会得肺癌"
正确方法:
| 认识到$P(Y | X) ≠ P(Y_x)$ |
错误:盲目应用单调性假设
场景:教育对收入的影响
错误:"没有人会因为多受教育而收入降低"
正确方法:
错误:混淆不同时间点的反事实
问题:"如果没有疫情,现在的失业率是多少?"
陷阱:没有明确是2020年初没有疫情,还是疫情从未发生
正确方法:
错误:PN=0.6就断定存在因果关系
错误:"PN>0.5,所以X导致了Y"
正确方法:
错误:假设所有反事实都可识别
问题:从观察数据计算P(Y₁|X=0)
陷阱:这需要跨越潜在结果,通常不可识别
正确方法:
错误:在SCM中创建循环依赖
错误的SCM:
X = f(Y, U_X)
Y = g(X, U_Y)
正确方法:
错误:将回归系数解释为因果参数
回归:Y = α + βX + ε
错误:"β是X对Y的因果效应"
正确方法:
本章深入探讨了因果推断的最高层级——反事实推理。通过SCM框架,我们能够回答”如果…会怎样”的深层因果问题,这在法律、医疗、政策等领域具有重要价值。下一章我们将探讨因果推断与机器学习的结合。