Skip to content

2.1 本章介绍(反事实框架与随机对照试验)

因果推断的基石:从潜在结果到黄金标准

难度重要性


为什么这一章至关重要?

在数据科学和经济学研究中,相关性≠因果性 是最容易犯的错误。

经典例子:冰淇淋与溺水

观察到的相关性

  • 冰淇淋销量 ↑ → 溺水事故 ↑
  • 相关系数显著(p < 0.01)

错误结论: "冰淇淋导致溺水,应该禁止冰淇淋"

正确分析混淆变量:夏季温度

  • 夏天 → 冰淇淋销量 ↑
  • 夏天 → 游泳人数 ↑ → 溺水 ↑
  • 因果路径:温度 → {冰淇淋, 溺水},两者无因果关系

真实案例:最低工资与就业

政策问题:提高最低工资会降低就业率吗?

传统回归的问题

python
#  简单回归存在严重内生性问题
model = sm.OLS(employment_rate ~ min_wage).fit()
# 无法区分因果效应与选择偏误

问题

  • 提高最低工资的州可能经济更好(逆向因果)
  • 失业率高的州可能更倾向于提高最低工资(选择偏误)
  • 其他政策同时实施(混淆因素)

反事实框架的解决方案

  • 使用 双重差分(DID)或 RCT 识别因果效应
  • 构建反事实对照组
  • 消除选择偏误和混淆因素

本章核心内容

第 1 节:潜在结果框架(Potential Outcomes Framework)

核心思想:因果推断的本质是 比较同一个体在不同处理状态下的结果

  • Rubin 因果模型(Rubin Causal Model, RCM)
  • 潜在结果的定义:Yi(1) vs Yi(0)
  • 根本问题:我们永远无法同时观察到两种状态
  • 因果效应的定义:τi = Yi(1) - Yi(0)

案例:教育培训的因果效应

个体 i:
- Yi(1) = 参加培训后的收入
- Yi(0) = 不参加培训的收入(反事实)
- 因果效应 τi = Yi(1) - Yi(0)

问题:我们只能观察到一个结果!

第 2 节:随机对照试验(RCTs)

为什么 RCT 是黄金标准?

RCT 通过 随机化 解决因果推断的根本问题:

  • 消除选择偏误(Selection Bias)
  • 平衡混淆变量(Confounder)
  • 使处理组和对照组 可比(Comparable)

RCT 的核心机制

随机分配:Di ~ Bernoulli(0.5)
- Di = 1 → 处理组(Treatment)
- Di = 0 → 对照组(Control)

关键性质:E[Yi(0)|Di=1] = E[Yi(0)|Di=0]
即:如果没有处理,两组的平均结果相同

实验设计

  • 完全随机化(Simple Randomization)
  • 分层随机化(Stratified Randomization)
  • 配对随机化(Matched-Pair Randomization)
  • 聚类随机化(Cluster Randomization)

第 3 节:平均处理效应(Average Treatment Effects)

核心概念

效应类型定义适用场景
ATEAverage Treatment Effect全样本平均因果效应
ATTAverage Treatment Effect on the Treated处理组的平均效应
ATUAverage Treatment Effect on the Untreated对照组的平均效应
LATELocal Average Treatment Effect依从者的局部效应
CATEConditional Average Treatment Effect条件平均效应(异质性)

数学定义

ATE = E[Yi(1) - Yi(0)]
    = E[Yi(1)] - E[Yi(0)]

ATT = E[Yi(1) - Yi(0) | Di = 1]
    = E[Yi(1) | Di = 1] - E[Yi(0) | Di = 1]
                          ^^^^^^^^^^^^^^
                          (反事实,不可观测)

RCT 的优势

  • 在 RCT 下:ATE = ATT = ATU
  • 简单差分就能无偏估计 ATE

第 4 节:识别策略与有效性

内部有效性(Internal Validity)

  • 因果推断在研究样本内是否正确
  • 威胁因素:
    • 选择偏误(Selection Bias)
    • 混淆因素(Confounding)
    • 同期效应(Contemporaneous Events)
    • 样本流失(Attrition)

外部有效性(External Validity)

  • 因果效应能否推广到其他总体
  • SUTVA 假设(Stable Unit Treatment Value Assumption)
    • 无溢出效应(No Spillover)
    • 处理一致性(Treatment Consistency)

识别策略对比

方法随机性来源内部有效性外部有效性实施难度
RCT随机分配⭐⭐⭐⭐⭐⭐⭐⭐
DID政策外生冲击⭐⭐⭐⭐⭐⭐⭐⭐
RDD断点附近随机⭐⭐⭐⭐⭐⭐
IV工具变量⭐⭐⭐⭐⭐⭐
PSM条件独立⭐⭐⭐⭐⭐

第 5 节:Python 实战:RCT 分析完整流程

完整案例:在线教育平台的 A/B 测试

python
import pandas as pd
import numpy as np
from scipy import stats
import statsmodels.api as sm

# 1. 数据生成(模拟 RCT)
np.random.seed(42)
n = 1000

# 随机分配
treatment = np.random.binomial(1, 0.5, n)

# 潜在结果
Y0 = np.random.normal(75, 15, n)  # 对照组成绩
tau = 5  # 真实因果效应
Y1 = Y0 + tau + np.random.normal(0, 2, n)

# 观测结果(根本问题:只观察到一个)
Y_obs = treatment * Y1 + (1 - treatment) * Y0

# 2. 平衡性检验(Balance Check)
balance_test = stats.ttest_ind(
    Y0[treatment == 1], 
    Y0[treatment == 0]
)
print(f"平衡性检验 p-value: {balance_test.pvalue:.4f}")

# 3. ATE 估计(简单差分)
ATE_simple = Y_obs[treatment == 1].mean() - Y_obs[treatment == 0].mean()
print(f"ATE(简单差分): {ATE_simple:.2f}")

# 4. 回归估计(异方差稳健标准误)
X = sm.add_constant(treatment)
model = sm.OLS(Y_obs, X).fit(cov_type='HC3')
print(model.summary())

# 5. 异质性分析(CATE)
# 按照学生基础分层
baseline = Y0
high_baseline = baseline > baseline.median()

CATE_high = (Y_obs[treatment == 1 & high_baseline].mean() - 
             Y_obs[treatment == 0 & high_baseline].mean())
CATE_low = (Y_obs[treatment == 1 & ~high_baseline].mean() - 
            Y_obs[treatment == 0 & ~high_baseline].mean())

print(f"高基础学生 CATE: {CATE_high:.2f}")
print(f"低基础学生 CATE: {CATE_low:.2f}")

学习目标

完成本章后,你将能够:

能力具体目标
概念理解理解潜在结果框架和反事实逻辑
掌握因果推断的核心挑战(选择偏误、混淆)
理解 RCT 为什么是黄金标准
技术掌握能够设计和分析 RCT 实验
区分 ATE、ATT、LATE 等不同效应
进行平衡性检验和有效性诊断
实战能力使用 Python 实现完整的 RCT 分析
进行异质性分析(CATE)
正确解读和报告因果效应

️ 学习路线图

Week 1: 反事实思维入门
├─ 理解潜在结果框架
├─ 因果推断的根本问题
└─ 简单案例分析

Week 2: RCT 理论与设计
├─ 随机化的魔力
├─ 实验设计类型
└─ 平衡性与有效性

Week 3: 效应估计与推断
├─ ATE/ATT/LATE 的区别
├─ 标准误与假设检验
└─ 异质性分析

Week 4: Python 实战
├─ 数据生成与模拟
├─ 完整分析流程
└─ 结果可视化与报告

与其他模块的联系

前置知识(来自 Python Fundamentals)

  • Module 3: 基础语法(条件判断、循环)
  • Module 4: 数据结构(列表、字典、DataFrame)
  • Module 5: 函数与模块
  • Module 9: NumPy、Pandas、可视化

后续应用

  • Module 3: 数据清洗与变量构造(为因果分析准备数据)
  • Module 6: OLS 回归(控制变量回归)
  • Module 8: 计量经济学(IV、DID、RDD 等准自然实验)
  • Module 10: 因果推断模型(DoWhy、CausalML)

推荐阅读

经典教材

  1. Angrist & Pischke (2009): Mostly Harmless Econometrics

    • 第 2 章:随机分配解决了选择问题
    • 实用、直观、案例丰富
  2. Imbens & Rubin (2015): Causal Inference for Statistics, Social, and Biomedical Sciences

    • 潜在结果框架的权威教材
    • 数学严谨但易懂
  3. Pearl (2009): Causality: Models, Reasoning, and Inference

    • DAG(有向无环图)视角
    • 理论深度最高

前沿论文

  • Athey & Imbens (2017): "The State of Applied Econometrics: Causality and Policy Evaluation"
  • Abadie (2020): "Statistical Nonsignificance in Empirical Economics"

在线资源

  • Mixtape Sessions: Scott Cunningham 的因果推断课程
  • YouTube: Ben Lambert 的计量经济学系列

学习建议

DO(推荐做法)

  1. 从案例出发:每个概念都要有具体例子
  2. 对比思考:相关性 vs 因果性的区别
  3. 动手实践:运行 Python 代码,修改参数观察变化
  4. 画图理解:DAG(有向无环图)是理解因果关系的最佳工具

DON'T(避免误区)

  1. 不要死记公式:理解概念比记忆更重要
  2. 不要跳过平衡性检验:这是 RCT 有效性的基础
  3. 不要过度解读:因果效应有边界条件(SUTVA)
  4. 不要忽略标准误:统计推断和点估计同样重要

本章数据集

我们将使用以下真实/模拟数据集:

数据集描述来源样本量
STAR Project田纳西州小班教学实验真实 RCT11,600
Progresa/Oportunidades墨西哥条件现金转移项目真实 RCT506 村庄
Online Education A/B Test在线课程 RCT 模拟数据模拟1,000
Job Training RCT就业培训实验模拟2,000

自测题(开始前)

在学习本章之前,先测试你的理解:

  1. 概念题:什么是反事实(Counterfactual)?为什么它是因果推断的核心?

  2. 案例题:研究发现"使用社交媒体的学生成绩更低",这能证明社交媒体导致成绩下降吗?为什么?

  3. 设计题:如果要研究"远程办公对员工生产力的因果效应",你会如何设计 RCT?

答案提示

  • 如果你能清晰回答问题 1,说明你已经有了因果推断的思维
  • 如果问题 2 让你困惑,本章会帮你建立严谨的因果推理框架
  • 如果问题 3 难以下手,本章将教你完整的 RCT 设计流程

准备好了吗?

反事实框架和 RCT 是现代因果推断的基石,也是经济学、社会学、医学等领域最可信的因果证据来源

掌握这一章,你将:

  • 建立严谨的因果思维方式
  • 理解实验设计的核心原理
  • 能够独立分析 RCT 数据
  • 为学习更高级的准自然实验方法打下基础

让我们开始吧!


本章文件清单

module-2_Counter Factual and RCTs/
├── 00-本章介绍.md              # 本文件
├── 01-potential-outcomes-framework.md  # 潜在结果框架
├── 02-randomized-controlled-trials.md  # RCT 原理与设计
├── 03-average-treatment-effects.md     # 平均处理效应
├── 04-identification-strategies.md     # 识别策略与有效性
└── 05-practical-implementation.md      # Python 实战

预计学习时间:12-16 小时 难度系数:⭐⭐⭐⭐(需要较强的抽象思维能力) 实用性:⭐⭐⭐⭐⭐(现代因果推断的必修课)


下一节01 - 潜在结果框架

让因果推断之旅从这里启航!

基于 MIT 许可证发布。内容版权归作者所有。