8.1 本章介绍(工具变量与两阶段最小二乘法)
"The credibility revolution in empirical economics has been driven, in large part, by the search for plausible instruments.""实证经济学的可信度革命,在很大程度上是由对可信工具变量的追寻所驱动的。"— Joshua Angrist & Jörn-Steffen Pischke, Mostly Harmless Econometrics (《基本无害的计量经济学》)
当 OLS 和匹配都失效时,我们需要一个"外部推手"
📌 本章目标
完成本章后,你将能够:
- 🎯 理解内生性问题以及为什么 OLS 和匹配方法有时都无法解决
- 🎯 掌握**工具变量(IV)**的核心思想:通过外生变异识别因果效应
- 🎯 熟悉有效工具变量的三大条件(相关性、排他性、独立性)
- 🎯 推导并理解 Wald 估计量和两阶段最小二乘法(2SLS)
- 🎯 理解**局部平均处理效应(LATE)**的含义
- 🎯 使用 Python(
linearmodels、statsmodels)进行 IV/2SLS 估计 - 🎯 诊断弱工具变量并进行相关检验
- 🎯 复现经典 IV 研究(Angrist & Krueger 1991, Card 1995)
🤔 为什么需要工具变量?
从反事实思想说起
在前面的章节中,我们已经学习了多种因果推断方法:
| 章节 | 方法 | 核心思路 | 局限 |
|---|---|---|---|
| M1 | RCT | 随机分配,消除所有混淆 | 很多场景无法做实验 |
| M7 | 匹配/PSM | 根据可观测变量匹配可比个体 | 依赖"可忽略性假设" |
匹配方法的阿喀琉斯之踵:它假设所有混淆变量都是可观测的(Conditional Independence Assumption, CIA)。
大白话:只要我们控制了所有可观测的协变量 ,处理分配就和潜在结果无关了。
但现实往往不是这样!
一个让人头疼的例子:教育回报
研究问题:多上一年学能让你多赚多少钱?
朴素做法:用 OLS 回归——
问题在哪里?
想一想,能力(ability)这个变量:
- 能力高的人 → 倾向于多读书(影响 Education)
- 能力高的人 → 即使不多读书,工资也更高(影响 Wage)
但我们很难直接测量一个人的"能力"!它藏在误差项 里。
这就是经典的内生性问题(endogeneity)。
后果:OLS 估计的 是有偏的,而且这个偏差的方向通常是向上的(因为能力同时推高教育和工资)。
匹配方法能解决吗?
不能!匹配(PSM)只能控制可观测的混淆变量。如果"能力"无法观测(或者说,我们根本不知道还有哪些不可观测的混淆变量),匹配就无能为力了。
DAG:一图胜千言
用因果图来表示这个问题:
U (能力/不可观测)
↗ ↘
Education ——→ Wage其中:
- 是不可观测的混淆变量(unobserved confounder)
- 同时影响 Education 和 Wage
- 这条 的路径是一条后门路径(backdoor path)
- 因为 不可观测,我们无法堵住这条后门路径!
这时候,我们需要一个全新的思路。
💡 工具变量:核心直觉
找一个"外部推手"
核心想法:既然 Education 和 (包含能力等不可观测因素)是相关的,我们能不能找到一个变量 ,它:
- 确实影响 Education( 会"推动"一部分人多读书)
- 但不直接影响 Wage( 只通过 Education 这条路径影响工资)
- 与不可观测因素无关( 与 不相关)
这样的 就叫做工具变量(Instrumental Variable, IV)。
DAG 表示
Z (工具变量) ——→ Education ——→ Wage
↑ ↑
\ /
U (能力)关键点:
- 影响 Education()
- 不直接影响 Wage( 与 Wage 之间没有直接箭头)
- 与 无关( 和 之间没有箭头)
大白话:工具变量就像一个"外部推手"——它推了一下 Education,但这个推力本身和一个人的能力、家庭背景等无关。然后,我们只看这个"被推动"的那部分 Education 变化对 Wage 的影响,这个影响就是干净的因果效应。
经典比喻:被随机分配的"鼓励"
想象一个场景:
一所大学随机给一部分高中生寄送招生宣传册(),另一部分没寄()。
收到宣传册的人更可能上大学(Education ↑),但宣传册本身不会让你更聪明或更有能力。
那么,我们可以比较收到和没收到宣传册的人的工资差异,再除以他们上大学比例的差异,就得到了教育的因果效应!
这就是 IV 的精髓——用一个与混淆变量无关的"鼓励"(encouragement),来提取处理变量中干净的、外生的变异。
📜 历史脉络:从供需分析到诺贝尔奖
Wright (1928):IV 的起源
工具变量的思想可以追溯到将近一百年前。
Philip Wright (1928) 在研究黄油和亚麻籽的供给与需求时,面对一个经典的联立方程偏误(simultaneous equations bias)问题:
- 供给曲线:
- 需求曲线:
- 市场均衡:
问题在于价格 同时由供给和需求决定,直接用 OLS 回归价格对数量的关系,得到的既不是供给曲线也不是需求曲线!
Wright 的天才之处:他找到了只影响供给(但不直接影响需求)的变量作为工具变量——比如天气条件。天气影响农作物产量(供给),但不直接影响消费者的需求偏好。用天气作为 IV,就能识别出需求曲线的斜率。
Angrist & Krueger (1991):出生季度与教育回报
这是现代 IV 研究中最著名的应用之一。
核心想法:美国义务教育法规定,孩子满 16 岁才能辍学。但入学年龄与出生日期有关——1月出生的孩子和12月出生的孩子进入同一年级,但16岁时处于不同的年级。因此,出生季度(quarter of birth)会影响一个人的受教育年限。
为什么这是一个好 IV?
- 相关性 ✅:出生季度确实影响受教育年限(通过义务教育法)
- 排他性 ✅:出生在哪个季度不太可能直接影响一个人的工资(这一点后来有争议)
- 独立性 ✅:出生季度基本上是随机的,与个人能力无关
主要发现:教育每增加一年,工资大约增加 7-10%。
2021 年诺贝尔经济学奖
2021 年,Joshua Angrist、Guido Imbens 和 David Card 共同获得诺贝尔经济学奖。其中:
Angrist & Imbens 的贡献在于为工具变量方法提供了严格的理论基础——特别是**局部平均处理效应(LATE)**的概念(Imbens & Angrist, 1994)。他们告诉我们:IV 估计的到底是"谁"的因果效应?答案是——**顺从者(Compliers)**的因果效应。
Card 的贡献在于将 IV 方法应用于劳动经济学,特别是教育回报和移民的经济效应。他利用与学院的距离(proximity to college)作为教育的工具变量(Card, 1995),估计了教育的因果回报。
诺贝尔委员会的评语: "他们为我们提供了关于劳动市场运作方式的新见解,并展示了从自然实验中可以得出什么样的因果推断结论。"
🗺️ 本章结构
本章将按照以下顺序展开:
第 1 节:本章介绍(当前)
- IV 的动机和核心直觉
- 历史脉络和诺贝尔奖
- 章节路线图
第 2 节:工具变量的直觉与原理
- 内生性问题的严格定义
- 有效工具变量的三大条件
- DAG 图示
- Wald 估计量的推导
- 经典 IV 案例
第 3 节:两阶段最小二乘法
- 2SLS 的两个阶段
- 多工具变量和过度识别
- LATE 的严格定义(Compliers, Always-takers, Never-takers, Defiers)
- Python 实现(
linearmodels.iv.IV2SLS)
第 4 节:弱工具变量与诊断检验
- 弱工具变量问题
- 第一阶段 F 统计量(Stock & Yogo 规则)
- 过度识别检验(Sargan/Hansen J 检验)
- 内生性检验(Hausman 检验)
第 5 节:经典案例与 Python 实现
- Angrist & Krueger (1991):出生季度 → 教育 → 工资
- Card (1995):距离学院 → 教育 → 工资
- 完整 Python 实现与结果解读
第 6 节:本章小结
- 核心概念回顾
- IV vs OLS vs Matching 比较
- 常见陷阱和最佳实践
- 推荐文献
🛠️ Python 工具包
核心库
| 库 | 主要功能 | 安装 |
|---|---|---|
| linearmodels | IV/2SLS 估计 | pip install linearmodels |
| statsmodels | OLS 回归、诊断检验 | pip install statsmodels |
| numpy | 数值计算 | pip install numpy |
| pandas | 数据处理 | pip install pandas |
| matplotlib | 可视化 | pip install matplotlib |
| seaborn | 高级可视化 | pip install seaborn |
基础设置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import statsmodels.api as sm
import statsmodels.formula.api as smf
from linearmodels.iv import IV2SLS
# 中文字体设置(根据操作系统选择)
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
# 设置样式
sns.set_style("whitegrid")
plt.rcParams['figure.figsize'] = (12, 7)
pd.set_option('display.float_format', '{:.4f}'.format)linearmodels 的安装
# 使用 pip
pip install linearmodels
# 或使用 conda
conda install -c conda-forge linearmodels快速示例:
from linearmodels.iv import IV2SLS
# IV2SLS 估计
# 语法:dependent ~ exogenous [endogenous ~ instruments]
iv_result = IV2SLS.from_formula('wage ~ 1 + exper [educ ~ quarter_of_birth]', data=df).fit()
print(iv_result.summary)📖 IV 在因果推断工具箱中的位置
| 方法 | 处理"不可观测混淆"? | 核心假设 | 估计量 | 经典应用 |
|---|---|---|---|---|
| OLS | ❌ 不能 | ATE(有偏) | 描述性分析 | |
| 匹配/PSM | ❌ 不能 | CIA(可忽略性) | ATT | 观测数据 |
| IV/2SLS | ✅ 能! | 排他性 + 相关性 | LATE | 教育回报、健康 |
| RDD | ✅ 能 | 连续性假设 | LATE(断点处) | 政策断点 |
| DID | 部分 ✅ | 平行趋势 | ATT | 政策评估 |
关键对比:
- OLS 和匹配都需要"没有不可观测混淆"的假设
- IV 方法可以在存在不可观测混淆的情况下识别因果效应
- 但 IV 需要找到一个有效的工具变量,这往往是最大的挑战
📚 必读文献预览
奠基性工作
- Wright, P. G. (1928). The Tariff on Animal and Vegetable Oils. — IV 方法的起源
- Imbens, G. W., & Angrist, J. D. (1994). "Identification and Estimation of Local Average Treatment Effects." Econometrica. — LATE 定理
- Angrist, J. D., & Krueger, A. B. (1991). "Does Compulsory School Attendance Affect Schooling and Earnings?" QJE. — 出生季度 IV
推荐教材
- Angrist & Pischke (2009). Mostly Harmless Econometrics, Chapter 4
- Cunningham (2021). Causal Inference: The Mixtape, Chapter 7
- Huntington-Klein (2022). The Effect, Chapter 19
🚀 准备好了吗?
工具变量是因果推断中最优雅也最具挑战性的方法之一。它的优雅在于——你不需要观测所有的混淆变量,只需要找到一个"外部推手"。它的挑战在于——好的工具变量往往可遇不可求。
记住核心思想:
"An instrumental variable is like a natural experiment — it provides exogenous variation in treatment that allows us to identify causal effects even in the presence of unobserved confounders." — Joshua Angrist
让我们开始深入学习 第 2 节:工具变量的直觉与原理!
找到那个"外部推手",打破内生性的枷锁! 🔧