因果发现——从观测数据中自动学习因果图结构,何时可能何时不可能¶
原文提炼¶
因果推断的两大任务:
"Causal discovery asks: given observational data, can we learn the causal graph? This is fundamentally different from causal effect estimation, which assumes the graph is already known."
| 因果发现 (Discovery) | 因果效应估计 (Estimation) | |
|---|---|---|
| 输入 | 数据 \(D\),无因果图 | 数据 \(D\) + 已知因果图 \(G\) |
| 输出 | 因果图 \(\hat{G}\) | 因果效应 \(\hat{\tau}\) |
| 难度 | 极高(组合爆炸 + 不可识别) | 中(需满足识别假设) |
| 典型问题 | 我们能从观测数据中学到什么? | 在给定图中,这个效应是多少? |
因果发现的三种方法论¶
1. 约束方法(Constraint-based)——PC 算法
基于条件独立性检验构建图的骨架: - 若 \(X \perp\!\!\!\perp Y | Z\),则 \(X\) 和 \(Y\) 在给定 \(Z\) 时 d 分离 → \(X\) 和 \(Y\) 之间无边 - 通过系统性检验所有三元组的条件独立性,重建图的骨架 - 局限:只能学到 Markov 等价类(多个 DAG 可能产生相同的条件独立模式),不能确定所有边的方向
2. 得分方法(Score-based)——GES(Greedy Equivalence Search)
用得分函数(如 BIC)搜索最优 DAG: $$ \text{Score}(G, D) = \log P(D|G) - \frac{d}{2} \log n $$
- 在 DAG 空间中贪婪搜索得分最高的图
- 局限:DAG 空间是超指数的——10 个变量已有 \(4.2 \times 10^{18}\) 个可能的 DAG
3. 函数因果模型(Functional Causal Models)——LiNGAM
假设线性非高斯模型: $$ X_i = \sum_{j \in \text{Pa}(i)} b_{ij} X_j + e_i, \quad e_i \text{ 非高斯} $$
- 突破:如果噪声是非高斯的,可以识别所有边的方向(而不只是 Markov 等价类)
- 这是因果发现领域最重要的理论进展之一
因果发现的三条戒律¶
| 戒律 | 含义 | 为什么重要 |
|---|---|---|
| 你不能从纯观测数据中学到完整的因果图 | Markov 等价类是无法避免的边界 | 防止过度自信 |
| 你永远需要领域知识 | 算法只能缩小等价类,不能唯一确定 | 因果发现不是纯自动化问题 |
| 干预是最可靠的因果发现工具 | 随机化打破等价类 | A/B 测试 = 因果发现的黄金标准 |
三条实践原则¶
- 因果发现是探索性工具,不是确认性工具——它告诉你"图可能是这样的",不是"图一定是这样的"
- 约束方法和得分方法各有优势——约束方法对小样本更鲁棒,得分方法对大样本更准确
- 永远不要只报告一个图——报告 Markov 等价类或多个高得分图,量化不确定性
跨域链接¶
- 因果推断方法阵营——分歧不在数学,每种方法估计不同的因果量:因果发现是因果推断方法阵营的前置步骤——没有图,连该用什么方法都不知道
- 关联不等于因果——可交换性是分界线:Markov 等价类意味着从关联中能学到因果结构的信息,但有限制——关联能给你一些因果信息,但不能给你全部
- 机器学习失败金字塔——算法选择是塔尖:把纯预测 ML 当因果发现用是灾难级的失败——高相关特征被自动选入模型,被解释为原因
- 预测-因果-决策三层模型——混淆它们是失败根源:因果发现失败导致混淆因果层和预测层——在不知道因果图时做的预测被错误地当作因果推断