# Ml Causal Inference

> 因果思维入门决策链：判断问题本质是不是因果并给识别路线，非数理推导教程。当用户问"A 是否 导致 B"、做政策评估/效果归因、问反事实("不做会怎样")、拿观测数据直接下因果结论时激活。 动作：混杂/选择偏差/辛普森机制识别→Pearl 三阶梯定位→判走预测还是因果→工具速览 (RCT/倾向得分/后门调整/DML)。不适用于纯预测任务、do-演算证明。触发词: causation vs correlation 因果还是相关, confounding 混杂, counterfactual 反事实, treatment effect, 政策评估, uplift, Simpson's paradox, propensity score

- Skill: `fieldlu/ml-causal-inference` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-causal-inference`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-causal-inference/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-causal-inference

---


# 因果思维入门决策链 — 先判断问题本质是不是因果，再谈路线

## R — 原文 (Reading)

> （转述）Pearl 把因果信息分为三个阶梯：第一层只谈关联（看见 X 时 Y 的似然），第二层问干预（主动改变 X 后 Y 如何），第三层问反事实（"假如当时没做 X，Y 会怎样"）。每一层的答案都无法由下一层的数据单独得出——观察吸烟与癌症的相关，回答不了"戒烟会怎样"。
>
> — Judea Pearl《Causality》(2009) 第 1 章；《The Book of Why》(2018) 因果之梯

> （转述）Rubin 主张：因果效应定义为同一单元在"接受处理"与"不接受处理"两种潜在结果之间的差异——但任一单元在同一时刻只能观测到其中一种，缺失的那一半正是因果推断的根本问题；一切方法都是在为这缺失的一半做有依据的填补。
>
> — Donald Rubin, "Estimating Causal Effects of Treatments in Randomized and Nonrandomized Studies" (1974)

---

## I — 方法论骨架 (Interpretation)

"相关不等于因果"不是一句口号，而是三种可命名的机制：

- **混杂 (confounding)**: 一个共同原因同时影响 X 与 Y（冰淇淋销量与溺水人数正相关，背后是气温）；
- **选择偏差 (selection bias)**: 样本怎么进入数据本身依赖 X 或 Y（只在健身房调查体质），条件化或不条件化都会扭曲；
- **辛普森悖论 (Simpson's paradox)**: 聚合层面的关联方向与分层后相反——分不分层取决于哪个变量是混杂、哪个是碰撞，不是"分层总是更好"。

Pearl 三阶梯给问题定级：只要用户的句子能改写成 **do(X)**（我要主动改变 X）或反事实（假如当初不 X），预测模型就回答不了——监督学习消费的是 P(Y|X)，干预需要 P(Y|do(X))。**什么时候需要因果而不是预测**：政策评估（这个药/活动/改版有效吗）、效应归因（增长多少该记在谁头上）、反事实追问（不做会怎样）——这三类问题预测给不了答案；反过来，纯预测任务（不打算据此干预、不追问机制）不需要因果工具，强行上反而丢信息。

工具路线速览：**RCT/在线 A/B** 是金标准——随机化切断一切进入处理的后门路径；做不了实验时走观测路线——**倾向得分匹配/加权**（按"被处理的倾向"平衡可比组）、**后门调整**（在 DAG 上列出并阻断所有混杂路径）、**DML 双重机器学习**（用任意 ML 模型剥离混杂的影响再估处理效应）。定位：本 skill 负责"识别出该用因果的场景并知道路线"，数理推导不在射程内。

---

## A1 — 文献中的经典应用 (Past Application)

*（本批主题超出西瓜书覆盖范围，A1 改引学界公认的经典案例与公开记录）*

### 案例 1: 伯克利录取数据的辛普森悖论 (1973)
- **问题**: 研究生录取的汇总数据显示男性录取率显著高于女性，疑似性别歧视；但逐院系检查时，多数院系反而是女性录取率更高。
- **方法论的使用**: 识别出"申请者自选院系"是混杂变量——女性更多申请竞争激烈、录取率低的院系；聚合时院系构成的差异制造了假性的性别差距。
- **结论**: 聚合关联的方向由混杂结构决定，"总体看"与"分层看"谁对，取决于问题问的是"录取是否歧视"还是别的因果问题——分层变量的选择必须来自因果论证，不能事后挑选。
- **结果**: 此案成为统计学教材中辛普森悖论的招牌例子，也是"相关≠因果需要机制级解释而非口号"的标准教学素材。

### 案例 2: 吸烟-肺癌论战与 Cornfield 不等式 (1959)
- **问题**: 观察数据显示吸烟与肺癌强相关，但 Fisher 等反驳：可能存在基因型这类混杂因素同时导致"爱吸烟"与"易患癌"，观察数据原则上无法排除。
- **方法论的使用**: Cornfield 证明：若要用一个混杂因素完全解释掉观察到的关联，该因素与吸烟的关联强度必须不低于吸烟与肺癌的关联本身——这在已有数据上可检验，且找不到如此强的候选混杂。
- **结论**: 观测数据上的因果推断并非"永远不可能"，而是"永远依赖一组显式假设"；假设可以被论证强弱，但不可被数据最终证明。
- **结果**: 这一论证框架（把不可检验的假设摆上台面并评估其需要的强度）成为现代 observational causal inference 的思想原型，直接通向 Rubin 潜在结果框架与倾向得分方法。

### 案例 3: Fisher 随机化实验的起源 (1920s-1930s)
- **问题**: 农业试验中土壤肥力、日照、水分千差万别，"施肥地块产量高"永远可以说成"好地才施肥"。
- **方法论的使用**: Fisher 提出把处理（施肥品种）随机分配到地块——随机化使处理组与对照组在一切可观测与不可观测混杂上期望相同，从机制上切断后门路径，而不需要逐一列举混杂因子。
- **结论**: 随机化之所以是金标准，不是因为"公平"，而是因为它用分配机制的结构性质替代了对混杂清单的完备枚举。
- **结果**: RCT 成为医学与政策评估的金标准；互联网时代它以在线 A/B 测试的形态成为产品决策的基础设施——这也是本 skill 与 ml-evaluation-design 的衔接点。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 用户拿着观测数据下因果结论："用了会员功能的用户流失率更低，所以要大力推会员"——需要指出混杂可能并给识别路线，而不是附和或空喊"相关不等于因果"。
2. 用户做干预效果评估："这次改版/活动/新政策带来多少提升？""营销 ROI 到底是多少？"——干预与归因问题。
3. 用户问反事实问题："如果当初没上这套推荐算法，现在的数据会怎样？""这个病人如果没做这个手术？"
4. 用户没法做随机实验（伦理/成本/平台限制），想知道观测数据还能不能救、要付出什么代价。
5. 用户听到辛普森悖论/混杂变量，想搞懂"为什么相关不是因果"的机制，而不是听一遍口号。

### 语言信号 (用户的话里出现这些就应激活)

- "**因果**还是**相关**"/"是不是**因为**"/"到底是不是 X 导致的"/"causation vs correlation"
- "**归功**/**归因**/**功劳**是谁的"/"attribution"/"这个效果是真的吗"
- "**干预**/**政策**/**改版**/**活动**有没有效"/"treatment effect"/"policy evaluation"/"uplift"
- "**反事实**"/"如果不这么做会怎样"/"counterfactual"/"what-if 当时"
- "**混杂**变量"/"confounder"/"控制变量该控制哪些"/"辛普森悖论"/"Simpson's paradox"
- "**A/B 做不了**怎么评估"/"没法随机分组"/"propensity score"/"倾向得分匹配"/"DML"

### 与相邻 skill 的区分

- 与 `ml-pitfall-audit` 的区别: audit 是上线前的六问前提总审（无偏采样/独立性等隐藏前提一次查完），覆盖宽但不展开因果路线；本 skill 回答"这个问题的本质是不是因果问题、走哪条识别路线"。audit 六问中发现"相关被当成了因果"时，深挖移交本 skill。
- 与 `ml-bayesian-thinking` 的区别: 那是概率建模的假设纪律（分布形式/独立性档位/EM），贝叶斯网里的有向边是概率依赖而非因果；把贝叶斯网当因果模型直接读边是已知的坑。凡出现 do/干预/反事实词汇，离开那边进本 skill。
- 与 `ml-graphical-models` 的区别: 那管多变量网络的图结构学习与推断算法；本 skill 只借用 DAG 语言表达因果结构，重心在可识别性判断与估计路线。
- 与 `ml-evaluation-design` 的区别: 在线 A/B 就是 RCT，那边管实验协议（切分/度量/比较检验）；本 skill 管"为什么随机化能支持因果声明"以及"做不了实验时观测路线的代价"。实际项目常串联：本 skill 判定为干预问题且可随机化 → 移交那边设计协议。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **问题定级（三阶梯定位）**
   - 把用户的原始问句改写：是关联问题（只关心共现）、干预问题（do(X)）、还是反事实问题？写出改写句。
   - 完成标准: 一句话卡——"此问题属于第 X 层，标准表述为……"；或明确判定"纯预测即可回答"。
   - 判停条件: 用户只要对未来做预测、不打算据此干预也不追问归因 → 移交 `ml-task-matching`/`ml-diagnosis`，并明确告知无需因果工具；确属干预/归因/反事实 → 进步骤 2。

2. **机制扫描（画出因果故事候选）**
   - 列出能同时影响"处理"与"结果"的变量（混杂）、样本进入数据的门槛（选择偏差）、被共同结果影响的变量（碰撞——小心别控制它）、中介变量。
   - 完成标准: 至少写出一个具体的、贴合业务的混杂源；写不出也要显式声明"未想到但风险存在"。
   - 判停条件: 用户能直接提供随机分组数据（天然实验/RCT 数据）→ 混杂已被分配机制切断，跳过步骤 3 的观测路线之争，直接走步骤 4-5。

3. **路线判定**
   - 有无可行随机化？有 → 设计 A/B/RCT，协议细节移交 `ml-evaluation-design`；没有 → 走观测路线，在倾向得分匹配 / 后门调整（含 DAG 假设）/ DML 中按数据形态初选。
   - 完成标准: 路线选定 + 选择理由（数据里有什么、缺什么）。
   - 判停条件: 连处理的定义都模糊（"用了功能"没有时间戳/剂量）→ 先回数据侧把处理变量定义清楚，禁止带糊估计。

4. **假设清单显式化**
   - 把所选路线的全部关键假设列成表：无未测混杂、一致性、SUTVA（个体间无溢出）、倾向得分重叠等，并写明每条违反时估计往哪个方向偏。
   - 完成标准: 交付物含假设表 + "以上假设均不可由当前数据检验"的显式提醒。
   - 判停条件: 关键假设明显站不住（如已知存在强混杂且无代理变量）→ 停止估计，向用户报告"此数据不支持可信的因果结论"，只交付描述性关联。

5. **结果解读纪律**
   - 结论措辞必须是"在假设 H1-Hn 成立的前提下，估计效应为……"，禁止输出"证明了因果"；换人群/换时段外推需重新论证假设。
   - 完成标准: 最终报告含限定语与敏感性讨论（关键混杂要多强才能推翻结论）。
   - 判停条件: 用户要求去掉限定语"直接说结论是因果" → 拒绝该修改并说明理由；用户坚持则以书面形式记录分歧后终止本 skill 的参与。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 纯预测任务（不干预、不归因、不问反事实）: 因果工具不会提升预测精度，强行上反而因剔除"坏但有用"的特征而掉点；预测问题交给预测的方法。
- 数理推导请求（do-演算定理证明、识别式的完整推导、因果发现算法的实现细节）: 本 skill 定位是场景识别与路线选择，不是推导教程。
- 数据中根本没有"处理/干预"变量的常规建模任务: 无处理则无处理效应，无从谈起。

### 文献反复警告的失败模式

- **回归系数 = 因果效应**: 尤其危险的是"控制得越多越可信"的迷信——控制了碰撞变量反而制造虚假关联（选择偏差入样本）；控制集合必须来自因果论证而非"多多益善"。
- **PSM 万能论**: 匹配只平衡已观测协变量，未观测混杂原封不动地留在估计里；"匹配后两组很均衡 = 因果成立"是错觉，均衡只说明匹配程序执行到位。
- **机械分层**: 不分因果角色就分层（对碰撞变量分层会反转结论）；辛普森悖论的正确回应是"先定结构再定聚合层级"，不是"永远相信分层"。
- **事后归因**: 看到指标涨了再回头挑一个解释并声称"早有预期"——这是 HARKing 的因果版；归因必须在干预前预注册指标与假设。

### 作者盲点 / 时代局限（本批为外推补全）

- **必须声明**: 本 skill 主题超出西瓜书(2016)覆盖范围——BOOK_OVERVIEW 批判节明确指出"因果推断几乎缺席，而因果视角恰是对相关性≠因果性类陷阱的系统防线"；本 skill 是对该盲点的补全，素材为 2009-2023 交叉学科文献共识转述，**方法论仍在快速演化**（因果发现、异质处理效应估计、与大模型结合的因果问答均在活跃发展），执行时应核对最新进展。
- **观测数据的因果声明永远依赖不可检验的假设**——这是本领域的元限制而非可修复的缺陷：任何"我们做了因果推断"都不等于"证明了因果"；本 skill 只能把假设摆上台面并评估其脆弱度，不能消灭它们。
- 工具箱更新快: DML、因果森林、双重稳健估计的具体适用条件仍在争论中，本 skill 只给路线图，不给万能配方。
- 因果发现（从数据自动学因果图）在真实扰动有限的数据上可靠性有限，文献内部对其评价分歧很大——本 skill 不把它当默认入口。

### 容易混淆的邻近方法论

- **因果推断 ≠ 因果发现**: 前者是"给定结构与假设估计效应"，后者是"从数据反推结构"；后者假设更强、结论更脆，二者常被混为一谈。
- **Uplift 模型 ≠ 普通响应模型**: 预测"谁会转化"与预测"谁会*因为干预*而转化"是不同目标；后者必须有处理组/对照组数据，拿响应模型当 uplift 用会选错目标人群。
- **统计显著性 ≠ 因果强度**: p 值回答"是不是噪声"，完全不回答"是不是混杂"；显著的虚假关联遍地都是。

---

## 相关 skills

- depends-on: ml-methodology-router（问题进入合集的总入口）
- contrasts-with: ml-pitfall-audit（上线前六问总审 vs 本质是不是因果问题的定向判定）, ml-bayesian-thinking（概率依赖的边 ≠ 因果的边）
- composes-with: ml-evaluation-design（可随机化时移交其设计 A/B/RCT 协议）, ml-graphical-models（DAG 语言与图推断工具）, ml-explainability-xai（解释结果需用因果思维校正解读——重要性≠因果）

---

## 审计信息

- **来源性质**: 扩充批E·交叉学科——主题超出西瓜书(2016)覆盖范围，R 段为公认文献的转述表述（均已标注"（转述）"）
- **验证通过**: 待流水线三重验证复核
- **测试通过率**: 待阶段 4 测试 (详见 test-prompts.json)
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

