因果推断革命:从反事实思想到AI时代
"The credibility revolution has changed how we think about evidence."— Joshua Angrist, 2021 Nobel Laureate in Economics
致学习者的一封信
我们为什么创建本课程?
亲爱的学习者:
本书系统梳理并实践了以 Joshua Angrist(MIT,2021年诺贝尔经济学奖得主)为代表的 **"可信性革命"核心理念,深入阐释反事实框架(Counterfactual Framework)**在因果推断中的基石地位。教材内容融合了当代顶尖学者的最新研究成果,包括:
- Susan Athey(斯坦福大学):机器学习与因果推断、Causal Forest
- Guido Imbens(斯坦福大学,2021年诺贝尔经济学奖得主):工具变量、LATE框架
- Esther Duflo(MIT,2019年诺贝尔经济学奖得主):随机对照试验(RCT)
- David Card(UC Berkeley,2021年诺贝尔经济学奖得主):自然实验方法
- Judea Pearl(UCLA,2011年图灵奖得主):因果图与结构因果模型
通过Python代码实现,本书将前沿理论与工程实践深度结合,助力读者掌握AI时代的因果推断能力。
在过去的30年里,因果推断经历了一场静悄悄的革命——我们称之为 "可信性革命"(Credibility Revolution)。这场革命改变了:
- 经济学研究:从理论推导到实证识别
- 政策评估:从相关性到因果性
- 商业决策:从A/B测试到个性化因果推断
- AI与机器学习:从预测到干预
核心洞察:
相关性 ≠ 因果性
我们不仅要知道"会怎样"(预测),更要理解"为什么"(因果)
这就是反事实思想(Counterfactual Thinking)的力量:
- :个体 接受处理后的结果
- :同一个体不接受处理的结果(反事实)
根本问题:我们只能观察到两者之一!
解决方案:
- RCT(随机对照试验):通过随机化构建反事实
- 准自然实验(DID、RDD、IV):从观察数据中挖掘因果证据
- 机器学习+因果推断(Causal Forest):估计异质性处理效应
可信性革命的三次浪潮
第一次浪潮(1990s):自然实验时代
代表人物:Joshua Angrist, Alan Krueger, David Card
核心贡献:
- 工具变量(IV):利用外生变异识别因果
- 断点回归(RDD):利用阈值的不连续性
经典案例:
- Angrist & Krueger (1991):出生季节作为IV研究教育回报率
- Card & Krueger (1994):最低工资与就业(DID)
第二次浪潮(2000s):实验经济学兴起
代表人物:Esther Duflo, Abhijit Banerjee
核心贡献:
- 田野实验(Field Experiments):在发展中国家开展大规模RCT
- 政策评估:从理论到证据驱动
经典案例:
- Progresa/Oportunidades(墨西哥条件现金转移项目)
- 肯尼亚免费蚊帐分发实验
第三次浪潮(2010s-现在):机器学习+因果推断
代表人物:Susan Athey, Guido Imbens, Stefan Wager
核心贡献:
- Causal Forest:估计条件平均处理效应(CATE)
- Double Machine Learning(DML):高维数据的因果推断
- 个性化决策:从平均效应到异质性效应
技术前沿:
- 因果AI:LLM + 因果推断
- 反事实推理:大模型的因果能力
- 科研助手:GPT-4辅助因果分析
为什么选择 Python?传统工具的范式转移
从 Stata/R 到 Python:科研工具的代际变迁
| Stata | R | Python | |
|---|---|---|---|
| 诞生年代 | 1985 | 1993 | 1991 |
| 定位 | 计量经济学专用 | 统计学专用 | 通用编程语言 |
| 因果推断 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 机器学习 | ⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 深度学习 | ⭐⭐ | ⭐⭐⭐⭐⭐ | |
| LLM集成 | ⭐ | ⭐⭐⭐⭐⭐ | |
| 工业界采用 | 5% | 15% | 80% |
| 成本 | $1,200+/年 | 免费 | 免费 |
Python 的独特优势:一站式因果推断平台
# 1. 数据处理(pandas)
data = pd.read_csv('experiment.csv')
data_clean = data.dropna()
# 2. 传统计量(statsmodels)
import statsmodels.api as sm
did_model = sm.OLS(y, X).fit(cov_type='cluster', cov_kwds={'groups': state_id})
# 3. 机器学习因果推断(econml, causalml)
from econml.dml import CausalForestDML
cf_model = CausalForestDML(model_y=RandomForestRegressor())
cf_model.fit(Y, T, X=X)
cate = cf_model.effect(X_test)
# 4. 因果图(DoWhy)
from dowhy import CausalModel
model = CausalModel(data, treatment='T', outcome='Y')
identified = model.identify_effect()
estimate = model.estimate_effect(identified)
# 5. LLM辅助分析(OpenAI API)
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-5",
messages=[{"role": "user", "content": f"解释这个DID结果:{did_model.summary()}"}]
)关键对比:
| 任务 | Stata命令 | R代码 | Python代码 |
|---|---|---|---|
| DID回归 | xtreg y treat post i.year, fe cluster(state) | `feols(y ~ treat:post | year, cluster='state')` |
| Causal Forest | 不支持 | grf::causal_forest(X, Y, W) | econml.grf.CausalForest().fit(X, T, Y) |
| LLM集成 | 不支持 | 有限支持 | 完整生态 |
AI时代的因果推断:大模型如何改变科研
1. GPT-5 作为因果推断助手
实际应用:
# 场景:让GPT-5帮你设计DID策略
prompt = f"""
我想研究"远程办公政策对员工生产力的影响"。
数据:2019-2023年公司员工级面板数据
处理组:2020年3月后强制远程的公司
对照组:没有远程政策的公司
问题:
1. 这适合用DID吗?需要什么假设?
2. 如何检验平行趋势?
3. Python代码怎么写?
"""
response = openai.ChatCompletion.create(
model="gpt-5",
messages=[{"role": "user", "content": prompt}]
)GPT-5 的回答(示例):
"这是经典的DID场景。关键假设:
- 平行趋势:2020年3月前,处理组和对照组生产力趋势相同
- 无预期效应:员工没有提前改变行为
检验平行趋势的Python代码:
python# Event Study for t in range(-6, 13): # 事件前6个月到事件后12个月 df[f'lead_lag_{t}'] = (df['treat'] == 1) & (df['month_relative'] == t) formula = 'productivity ~ ' + ' + '.join([f'lead_lag_{t}' for t in range(-6, 13) if t != -1]) model = smf.ols(formula, data=df).fit(cov_type='cluster', cov_kwds={'groups': df['company_id']}) ```"
2. Causal AI:下一代因果推断范式
传统因果推断 vs Causal AI:
| 维度 | 传统方法 | Causal AI |
|---|---|---|
| 数据需求 | 手工设计特征 | 自动特征学习 |
| 模型复杂度 | 线性/简单非线性 | 深度神经网络 |
| 异质性 | 手动分组分析 | 自动学习CATE |
| 可解释性 | 高 | 中(SHAP, LIME) |
| 应用场景 | 小数据(n<10万) | 大数据(n>百万) |
Python实现(DragonNet):
from causalml.inference.nn import DragonNet
# 深度学习因果模型
model = DragonNet(
n_unit_in=X.shape[1],
n_unit_out=1,
n_unit_hidden=200
)
model.fit(X_train, treatment_train, y_train)
cate_pred = model.predict(X_test, treatment=1) - model.predict(X_test, treatment=0)3. 科研新范式:LLM + 因果推断工作流
传统科研流程(6个月):
├─ 文献综述(1个月)
├─ 数据收集(1个月)
├─ 变量构造(2周)
├─ 模型估计(2周)
├─ 稳健性检验(3周)
└─ 论文撰写(1.5个月)
AI增强流程(2个月):
├─ LLM辅助文献综述(1周)← GPT-5搜索+总结
├─ 自动化数据清洗(3天)← Python自动化
├─ AI建议特征工程(1周)← AutoML
├─ 并行模型估计(2天)← 云计算
├─ 自动稳健性检验(3天)← 模板化代码
└─ AI辅助论文写作(3周)← GPT-5起草+润色课程体系:四大模块
Part I:因果思维的基石(Module 1-2)
目标:建立反事实思维与因果推断的理论基础
Module 1:反事实框架与RCT
- 潜在结果框架:
- 因果推断的根本问题:我们只能观察到一个结果
- RCT黄金标准:随机化如何消除选择偏误
- 平均处理效应:ATE、ATT、LATE的区别
核心公式:
Module 2:因果图与结构因果模型
- 有向无环图(DAG):用图形语言表达因果关系
- d-分离与后门准则:识别混杂与偏倚来源
- 碰撞偏差与控制变量选择:避免"坏控制"陷阱
- do-算子与前门准则:从观察到干预的桥梁
Part II:Python 数据科学工具箱(Module 3-6)
目标:掌握Python统计分析的核心技能
Module 3:Python与回归基础
- OLS线性回归:从Mincer方程到多元回归
- Logit/Probit:二元因变量模型
- 结果展示:
summary_col生成学术级表格 - 对比:Stata的
reg、R的lm()
你将学会:
# 一行代码运行回归
model = smf.ols('wage ~ education + experience + C(female)', data=df).fit()
# 学术级结果表格
from statsmodels.iolib.summary2 import summary_col
summary_col([model1, model2, model3], stars=True)Module 4:回归分析进阶
- 多元回归与回归诊断
- 异方差、多重共线性检验
- 分类变量与交互项
- 结果解释与论文报告
Module 5:数据处理与核心工具库
- 数据清洗与变量构造
- Statsmodels、Scipy、Linearmodels工具库
- 数据合并与重塑
Module 6:数据可视化
- 论文级图表制作
- Matplotlib & Seaborn 深度应用
Part III:因果识别策略(Module 7-12)
目标:掌握准自然实验方法,从观察数据中挖掘因果证据
Module 7:匹配与倾向得分方法
- 匹配方法基础:精确匹配与近邻匹配
- 倾向得分匹配(PSM):Rosenbaum & Rubin框架
- IPW与双重稳健估计:结合倾向得分与结果模型
- 经典案例:LaLonde就业培训数据
Module 8:工具变量(IV)与两阶段最小二乘(2SLS)
问题:内生性(Endogeneity)
- 遗漏变量偏误
- 反向因果
- 测量误差
解决方案:找到工具变量
工具变量的两个条件:
- 相关性:(工具与内生变量相关)
- 排他性:(工具只通过 影响 )
2SLS估计:
from linearmodels.iv import IV2SLS
model = IV2SLS.from_formula(
'wage ~ 1 + [education ~ college_distance]',
data=df
).fit(cov_type='robust')经典工具变量:
- Angrist & Krueger (1991):出生季节 → 教育年限
- Card (1995):大学距离 → 教育年限
- Levitt (1997):选举周期 → 警力
Module 9:面板数据与固定效应
- 固定效应(FE):控制不可观测异质性
- 个体内差分:每个样本作为自己的对照组
- 双向固定效应(TWFE):控制个体+时间效应
Python实现:
from linearmodels import PanelOLS
model = PanelOLS.from_formula(
'wage ~ experience + EntityEffects + TimeEffects',
data=panel_data
).fit(cov_type='clustered', cluster_entity=True)Module 10:双重差分(DID)
核心思想:差分之差
经典案例:
- Card & Krueger (1994):新泽西最低工资
- Callaway & Sant'Anna (2021):异质性稳健估计
Module 11:断点回归(RDD)
核心思想:利用阈值的不连续性
经典例子:
- Thistlethwaite & Campbell (1960):奖学金对大学入学的影响
- Lee (2008):当选对政治生涯的影响
Module 12:合成控制法(Synthetic Control)
- 合成控制法原理:构造"合成反事实"
- 统计推断与稳健性检验:置换检验
- 经典案例:加州Proposition 99控烟政策
Part IV:ML × 因果推断(Module 13-14)
目标:掌握前沿方法,估计异质性处理效应
Module 13:异质性处理效应与Causal Forest
核心问题:
- ATE只告诉我们平均效应
- 但不同个体的处理效应可能完全不同
- 如何估计条件平均处理效应(CATE)?
Causal Forest算法(Wager & Athey, 2018):
- Bootstrap抽样
- 诚实分割(Honest Splitting):避免过拟合
- 构建多棵因果树
- 平均预测CATE
Python实现:
from econml.grf import CausalForest
cf = CausalForest(n_estimators=3000, min_samples_leaf=10)
cf.fit(X, T, Y)
cate = cf.predict(X_test)Module 14:Double ML与因果AI前沿
- Double Machine Learning(DML):Chernozhukov et al. (2018)
- 因果发现(Causal Discovery):从数据中学习因果结构
- LLM与因果推断:大模型的因果推理能力
Optional:Module 15 — 时间序列(选修)
- ARIMA建模
- 事件研究法(Event Study)
- 动态效应估计
学习路径建议
路径1:学术研究者(12-16周)
Week 1-2: Module 1-2(反事实框架+因果图)
↓
Week 3-4: Module 3-6(Python工具箱+回归+数据处理)
↓
Week 5-6: Module 7-8(匹配/PSM+IV/2SLS)
↓
Week 7-8: Module 9-10(面板数据+DID)← 重点!
↓
Week 9-10: Module 11-12(RDD+合成控制法)
↓
Week 11-12: Module 13-14(Causal Forest+DML)
↓
Week 13-16: 完成实证项目推荐项目:
- 研究最低工资对就业的影响(DID)
- 教育回报率的异质性(Causal Forest)
- 政策评估案例复现
路径2:数据科学家(6-8周,侧重应用)
Week 1: Module 1-2(因果思维+因果图)
↓
Week 2: Module 3-4(回归快速入门)
↓
Week 3-4: Module 10(DID)+ Module 13(Causal Forest)
↓
Week 5-6: A/B测试与因果推断
↓
Week 7-8: 实际业务问题建模推荐项目:
- 营销活动效果评估(RCT)
- 用户留存因果分析(Causal Forest)
路径3:AI/ML工程师(4-6周,Python深度集成)
Week 1: Module 1-2(快速掌握因果框架+因果图)
↓
Week 2-3: Module 13-14(Causal Forest + DML)
↓
Week 4: GPT-5 + 因果推断集成
↓
Week 5-6: 构建Causal AI应用️ 核心工具生态
Python因果推断库全景
| 库 | 开发者 | 核心功能 | Github Stars |
|---|---|---|---|
| statsmodels | 社区 | 传统计量模型 | 10k+ |
| linearmodels | Kevin Sheppard | 面板数据、IV | 500+ |
| econml | Microsoft | Causal ML (DML, Causal Forest) | 3k+ |
| causalml | Uber | Meta-learners, Uplift | 5k+ |
| DoWhy | Microsoft | 因果图推断 | 7k+ |
| PyMC | 社区 | 贝叶斯因果推断 | 8k+ |
安装全套工具:
# 基础工具
pip install pandas numpy scipy matplotlib seaborn
# 计量经济学
pip install statsmodels linearmodels
# 机器学习因果推断
pip install econml causalml dowhy
# 贝叶斯推断
pip install pymc arviz
# LLM集成
pip install openai anthropic课程特色
1. 顶尖学者的智慧结晶
本课程不是单一视角,而是汇集了:
- Joshua Angrist(MIT):IV、DID、准自然实验
- Susan Athey(Stanford):Causal Forest、机器学习+因果
- Guido Imbens(Stanford):潜在结果框架、LATE
- Esther Duflo(MIT):田野实验、政策评估
- David Card(Berkeley):最低工资、教育回报率
2. 理论严谨 + 代码实战
每个概念都有:
- 数学推导(理解原理)
- Python代码(动手实现)
- 真实案例(掌握应用)
- 对比Stata/R(快速迁移)
3. AI时代的前瞻性
- GPT-5辅助代码生成
- LLM集成实例
- Causal AI前沿方法
- 科研新范式探索
4. 从零到发表
完整科研流程:
问题提出 → 文献综述 → 数据收集 → 变量构造 →
识别策略 → 模型估计 → 稳健性检验 → 结果呈现 → 论文撰写每个环节都有Python实战代码!
推荐阅读与参考书目
本课程的课程内容参考了因果推断与计量经济学领域最具影响力的教材和学术资源。以下书目既是本书的理论基础,也是读者深入学习的最佳指引。
核心参考教材
1. Mostly Harmless Econometrics — Angrist & Pischke (2009)
实证研究者的圣经,本书最核心的参考文献
- 作者:Joshua D. Angrist(MIT)& Jörn-Steffen Pischke(LSE)
- 定位:应用计量经济学的经典之作,系统阐述了"可信性革命"的方法论基础
- 核心内容:回归分析的因果解读、工具变量(IV)、双重差分(DID)、断点回归(RDD)、分位数回归
- 推荐理由:通俗易懂、案例丰富,强调"让数据自己说话"的实证精神。本课程的 Module 8-12 深受本书影响
- 官方网站:mostlyharmlesseconometrics.com
2. Causal Inference: The Mixtape — Scott Cunningham (2021)
免费开源的因果推断入门经典
- 作者:Scott Cunningham(Baylor University)
- 定位:面向社会科学研究者的因果推断入门教材,兼具理论严谨与直觉解读
- 核心内容:潜在结果模型、有向无环图(DAG)、匹配法、DID、合成控制法、RDD、IV
- 推荐理由:全书免费在线阅读,配有 R 和 Stata 代码示例,行文风格独特生动。本课程在反事实框架和 DID 章节参考了本书的教学思路
- 免费在线阅读:mixtape.scunning.com
3. Causal Econometrics — David Childers
前沿因果计量方法的系统梳理
- 作者:David Childers(Universität Zürich)
- 定位:PhD 级别的因果计量经济学课程讲义,涵盖从经典方法到机器学习前沿
- 核心内容:因果推断框架、政策评估与决策、样本选择与外部有效性、高维因果推断
- 推荐理由:将计量经济学、机器学习与高维统计的最新研究融为一体,适合进阶读者。本课程的 Module 13-14 参考了本课程对前沿方法的系统整理
- 在线讲义:donskerclass.github.io/CausalEconometrics
4. Introductory Econometrics: A Modern Approach — Wooldridge (2020)
全球使用最广泛的计量经济学入门教材
- 作者:Jeffrey M. Wooldridge(Michigan State University)
- 定位:本科及硕士阶段计量经济学标准教材,全球数百所高校采用
- 核心内容:OLS 回归、多元回归分析、异方差与序列相关、面板数据方法、工具变量、有限因变量模型
- 推荐理由:体系完整、循序渐进,数学推导清晰。本课程的 Module 3-6 在回归诊断与面板数据基础部分参考了本书的教学框架
5. Mastering 'Metrics — Angrist & Pischke (2015)
Mostly Harmless Econometrics 的通俗版本
- 作者:Joshua D. Angrist(MIT)& Jörn-Steffen Pischke(LSE)
- 定位:以五大核心方法(随机实验、回归、IV、RDD、DID)为主线,面向本科生和初学者
- 推荐理由:用生动的案例讲解因果推断核心思想,无需高深数学基础,适合作为入门第一本书
理论进阶
6. Causal Inference for Statistics, Social, and Biomedical Sciences — Imbens & Rubin (2015)
- 作者:Guido W. Imbens(Stanford,2021年诺贝尔经济学奖得主)& Donald B. Rubin(Harvard)
- 定位:潜在结果框架(Rubin Causal Model)的权威教材
- 核心内容:随机化实验设计、倾向得分匹配、工具变量的 LATE 框架、贝叶斯方法
- 推荐理由:数学严谨但逻辑清晰,是理解反事实框架理论基础的最佳选择
7. Causality: Models, Reasoning, and Inference — Pearl (2009)
- 作者:Judea Pearl(UCLA,2011年图灵奖得主)
- 定位:结构因果模型(SCM)与因果图(DAG)视角的奠基之作
- 核心内容:有向无环图、do-算子、反事实推理、中介分析
- 推荐理由:提供了与潜在结果框架互补的另一种因果推断视角,对理解因果关系的本质极具启发性
8. Econometric Analysis of Cross Section and Panel Data — Wooldridge (2010)
- 作者:Jeffrey M. Wooldridge(Michigan State University)
- 定位:研究生阶段计量经济学的权威参考书
- 核心内容:广义矩方法(GMM)、面板数据高级模型、样本选择模型、非线性模型
- 推荐理由:覆盖面广、理论扎实,适合作为深入研究时的工具书
前沿文献
Athey & Imbens (2019). "Machine Learning Methods for Estimating Heterogeneous Causal Effects". Statistical Science
Wager & Athey (2018). "Estimation and Inference of Heterogeneous Treatment Effects using Random Forests". JASA
Chernozhukov et al. (2018). "Double/Debiased Machine Learning for Treatment and Structural Parameters". The Econometrics Journal
Callaway & Sant'Anna (2021). "Difference-in-Differences with Multiple Time Periods". Journal of Econometrics
在线课程与开源资源
| 资源 | 作者/机构 | 说明 | 链接 |
|---|---|---|---|
| Causal Inference: The Mixtape | Scott Cunningham | 免费在线教材,配有 R/Stata 代码 | mixtape.scunning.com |
| Causal Econometrics | David Childers | PhD 课程讲义,含视频录像 | 在线讲义 |
| Mixtape Sessions | Scott Cunningham | 基于 Mixtape 的短期培训课程 | mixtapesessions.io |
| MIT 14.32 | Esther Duflo 等 | MIT 本科计量经济学课程 | MIT OCW |
| Causal Inference Bootcamp | Stanford | 斯坦福因果推断训练营 | Stanford Online |
致谢
本课程的创建离不开:
- 诺贝尔经济学奖得主的开创性研究
- 开源社区的无私贡献(statsmodels, econml, causalml)
- 所有学习者的反馈和建议
特别感谢:
- MIT经济系、斯坦福经济系的学术支持
- Microsoft Research、Uber AI的工程贡献
开始你的因果推断之旅
"In God we trust. All others must bring data."— W. Edwards Deming
准备好了吗?
从相关性到因果性,从描述到解释,从预测到干预——
让我们一起开启可信性革命的新篇章!
联系我们
从反事实到因果AI,引领科研新时代
版权声明
CC BY-NC-SA 4.0
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
允许:
- 学习:自由阅读和学习本书内容
- 分享:复制、分发本书内容
- ️ 改编:基于本书进行修改和创作
禁止:
- 商业使用:不得将本书用于任何商业目的
️ 要求:
- 署名:必须给出作者署名和许可协议链接
- 相同方式共享:若修改本书,必须采用相同许可协议
具体说明:
- 作者:王几行XING
- 机构:斯坦福大学 Freeman Spogli Institute (FSI)
- 版权所有:© 2024-2025 王几行XING
- 原始链接:https://learnpy.online/StatsPai/
商业授权咨询:
如需商业使用(如出版、培训、企业内部教学等),请联系作者获取商业授权。
Built with ️ for the causal inference community
快速导航
Part I - 因果思维的基石
Part II - Python工具箱
Part III - 因果识别策略
- Module 7: 匹配与倾向得分方法
- Module 8: 工具变量(IV/2SLS)
- Module 9: 面板数据与固定效应
- Module 10: 双重差分(DID)
- Module 11: 断点回归(RDD)
- Module 12: 合成控制法
Part IV - ML × 因果推断
Optional
用Python掌握因果推断,用证据改变世界!