跳转至

因果机器学习

概述

传统机器学习学习的是数据中的相关性,而因果推理追问"为什么"——识别变量之间的因果关系。因果推理是从"预测"迈向"干预"和"反事实推理"的关键一步。

相关内容:因果推断


1. 因果 vs 相关

1.1 辛普森悖论

一个经典案例说明相关性可以误导因果判断:

组别 药物组恢复率 对照组恢复率 结论
男性 93% 87% 药物有效
女性 73% 69% 药物有效
总体 78% 83% 药物无效?

原因:女性更倾向服药,而女性基础恢复率较低——性别是混杂因素(confounder)。

1.2 因果阶梯(Pearl's Ladder of Causation)

层级 问题类型 数学工具 示例
1. 关联 观察到什么? \(p(Y\|X)\) 服药者恢复率更高吗?
2. 干预 如果我做了会怎样? \(p(Y\|do(X))\) 如果让所有人服药,恢复率会提高吗?
3. 反事实 如果当时不同会怎样? \(p(Y_x\|X', Y')\) 如果这个患者没有服药,会恢复吗?

2. 结构因果模型(SCM)

2.1 定义

结构因果模型由三元组 \((U, V, F)\) 组成:

  • \(U\):外生变量(不被模型中其他变量解释)
  • \(V\):内生变量(由结构方程确定)
  • \(F\):结构方程集合 \(v_i = f_i(\text{pa}_i, u_i)\)

2.2 示例

U_X → X → Y ← U_Y
         ↑
         Z

结构方程:
  X = f_X(U_X)
  Z = f_Z(X, U_Z)
  Y = f_Y(X, Z, U_Y)

SCM 同时编码了:

  • 观察分布 \(p(X, Y, Z)\)
  • 干预分布 \(p(Y | do(X=x))\)
  • 反事实 \(Y_{X=x}\)

3. 因果图(DAG)

3.1 因果图基本结构

链 (Chain):       X → Z → Y    (Z 是中介)
叉 (Fork):        X ← Z → Y    (Z 是混杂因素)
碰撞 (Collider):  X → Z ← Y    (Z 是碰撞节点)

d-分离(d-separation):判断给定某些变量后,两个变量是否条件独立。

规则:

  • \(X \to Z \to Y\):条件于 \(Z\) 后,\(X \perp Y | Z\)
  • \(X \leftarrow Z \to Y\):条件于 \(Z\) 后,\(X \perp Y | Z\)
  • 碰撞 \(X \to Z \leftarrow Y\)不条件于 \(Z\) 时,\(X \perp Y\);条件于 \(Z\) 后,\(X \not\perp Y | Z\)

4. do-演算

4.1 do 算子

\(do(X = x)\) 表示干预——强制设定 \(X = x\),切断所有指向 \(X\) 的因果箭头。

\[ p(Y | do(X = x)) \neq p(Y | X = x) \]

观察条件 \(p(Y|X=x)\):只是看到 \(X=x\)\(Y\) 的分布(可能受混杂影响)

干预 \(p(Y|do(X=x))\):主动设置 \(X=x\)\(Y\) 的分布(消除混杂)

4.2 后门准则(Backdoor Criterion)

一组变量 \(Z\) 满足后门准则(相对于 \(X \to Y\)),如果:

  1. \(Z\) 阻断了所有从 \(X\)\(Y\) 的后门路径(经过 \(X\) 的箭头尾部的路径)
  2. \(Z\) 中没有 \(X\) 的后代

满足后门准则时:

\[ p(Y | do(X = x)) = \sum_z p(Y | X = x, Z = z) \, p(Z = z) \]

4.3 前门准则(Frontdoor Criterion)

当无法直接控制混杂因素时,如果存在中介变量 \(M\)

\[ X \to M \to Y, \quad U \to X, \quad U \to Y \]

前门调整公式:

\[ p(Y | do(X = x)) = \sum_m p(M = m | X = x) \sum_{x'} p(Y | X = x', M = m) p(X = x') \]

5. 因果效应估计

5.1 处理效应

概念 定义 含义
ATE \(\mathbb{E}[Y(1) - Y(0)]\) 平均处理效应
ATT \(\mathbb{E}[Y(1) - Y(0) \| T=1]\) 受处理组的平均效应
CATE \(\mathbb{E}[Y(1) - Y(0) \| X=x]\) 条件平均处理效应
ITE \(Y_i(1) - Y_i(0)\) 个体处理效应(不可观测)

根本问题:反事实不可观测——我们无法同时观察同一个体接受和不接受处理的结果。

5.2 估计方法

方法 适用条件 思路
随机实验 (RCT) 可随机分配 金标准,直接比较
倾向性评分匹配 可忽略性假设 匹配相似个体
逆概率加权 (IPW) 可忽略性假设 按接受处理的概率加权
工具变量 (IV) 存在工具变量 利用外生变量识别因果
断点回归 (RDD) 处理有阈值 阈值附近近似随机
双重差分 (DID) 面板数据 处理前后、组间差异

5.3 Double Machine Learning

Chernozhukov et al.(2018)提出,结合机器学习和因果推断:

\[ \hat{\tau} = \frac{1}{n}\sum_{i=1}^{n}\left[\hat{Y}_i^{res} \cdot \hat{T}_i^{res} / \hat{T}_i^{res2}\right] \]

步骤:

  1. 用 ML 模型拟合 \(Y \sim X\),得到残差 \(\hat{Y}^{res}\)
  2. 用 ML 模型拟合 \(T \sim X\),得到残差 \(\hat{T}^{res}\)
  3. 在残差上估计因果效应
  4. 使用交叉拟合(Cross-fitting)避免过拟合偏差
from econml.dml import DML
from sklearn.ensemble import GradientBoostingRegressor

dml = DML(
    model_y=GradientBoostingRegressor(),
    model_t=GradientBoostingRegressor(),
    model_final=LinearRegression()
)
dml.fit(Y, T, X=X, W=W)
ate = dml.ate(X)

6. 因果发现

从数据中自动发现因果结构(学习因果图)。

6.1 基于约束的方法

算法 思路 输出
PC 算法 条件独立性测试 部分DAG(CPDAG)
FCI 允许隐变量 PAG
GES 贪心搜索最优图 CPDAG

PC 算法流程:

1. 从完全连接的无向图开始
2. 条件独立性测试:如果 X ⊥ Y | Z,删除 X-Y 边
3. 确定碰撞结构:X → Z ← Y
4. 传播方向(避免新碰撞和环)

6.2 基于得分的方法

搜索使得某种得分函数最大化的 DAG:

\[ \text{Score}(G) = \sum_{i} \text{Score}(X_i | \text{Pa}_G(X_i)) \]

常用得分:BIC、BGe、MDL。

6.3 基于函数模型的方法

假设特定的函数形式来识别因果方向:

  • LiNGAM:线性非高斯无环模型
  • ANM(Additive Noise Model):\(Y = f(X) + \epsilon\),若独立性成立则 \(X \to Y\)

7. 因果推理与机器学习的融合

应用 方法 作用
公平性 因果公平 识别歧视路径,而非仅统计偏差
可解释性 反事实解释 "如果特征 X 不同,预测会变吗?"
分布偏移 因果不变性 在环境变化下保持预测稳定
推荐系统 去混杂 区分用户偏好和曝光偏差
强化学习 因果世界模型 更高效的规划和迁移

参考资料

  • "Causality" - Judea Pearl
  • "The Book of Why" - Judea Pearl & Dana Mackenzie
  • "Elements of Causal Inference" - Peters, Janzing, Schölkopf
  • "Causal Inference: What If" - Hernán & Robins
  • DoWhy / EconML 文档

评论 #