跳到主要内容

高级计量与因果推断

Heckman 两步法

工资、支出这类结果只在「被选中的人」身上看得见时,先用 Probit 建模谁进入样本,再用逆米尔斯比率纠正第二阶段斜率。

更新日期 2026-08-29 量表/潜变量

这篇能回答什么

Heckman 两步法回答的是:「只观察参与者的工资(或任何结果),教育回报会被谁选择进入样本这件事污染多少」。第一阶段用 Probit 拟合二元「参与」,得到线性预测 z,再算逆米尔斯比率(IMR);第二阶段只在参与=1 的行上,把 IMR 当作额外回归元做 OLS(HC1 稳健标准误)。IMR 显著,说明选择误差与结果误差相关,应引用纠正后的斜率,而不是裸 OLS。

适合:结果变量在未选中的人身上缺失或无定义(没工作就没有工资),并且你能写出一个选择方程。教学工作表「heckman」有 240 行:参与、工资、教育、年龄、经验。本页把教育、年龄放进选择方程,把教育、年龄、经验放进工资方程——经验充当排他变量。

什么时候不该用

人人都有完整工资、没有「谁被看见」这道关,用线性回归即可。结果在 0 处大量堆积而不是整段缺失,应看Tobit 截断回归。处理组对照可观测、要用倾向得分拉平协变量,用倾向得分匹配。选择变量不是严格的 0/1,第一阶段会拒绝。

如何选择方法

先问偏倚来自「看不见的人」还是「看见的人里混杂没控制」。只对上班者做工资 OLS,等于默认参与与工资误差无关;一旦能力高的人更可能就业,教育系数就把选择效应卷进去。Heckman 把选择单独建模。若处理是人为分组、结局人人可测,用匹配或回归,而不是两步法。

  • Heckman 两步法:1 个二元选择 Y、1–50 个选择 X、1 个结果 Y、1–50 个结果 X;输出 Probit、IMR 与纠正后 OLS。

  • 普通 OLS(只留参与者):默认选择可忽略;本案例 IMR p=0.022,这条路不成立。

  • Tobit:Y 在 0(或上限)堆积,不是整段未观测。

  • 二元 Probit / 逻辑回归:只关心谁参与,不估计工资方程。

输入、输出与限制

输入

选择方程 Y 必须能编成 0/1。选择 X、结果 Y、结果 X 按列送入;结果 Y 在角色上允许定量或定类,本页工资是连续定量。第一阶段只要求选择 Y 与选择 X 非缺失;第二阶段再在参与=1 的行上,对结果 Y、结果 X 与 IMR 删缺失。

  • 选择方程 Y:最少 1 个,最多 1 个,二元定类。

  • 选择方程 X:最少 1 个,最多 50 个,定量或定类。

  • 结果方程 Y:最少 1 个,最多 1 个。

  • 结果方程 X:最少 1 个,最多 50 个。

输出

两张系数表。第一张是 Probit(因变量:参与),列变量、系数、标准误、统计量、P 值;表注写全样本 N(本例 240)并说明由此计算 IMR。第二张是参与者上的 OLS(因变量:工资),多出「逆米尔斯比率 (IMR)」一行;表注写第二阶段 N(本例 198)。两张系数图分别画选择方程与结果方程。洞察根据 IMR 的 p 判断是否存在选择偏差。

产品限制

  • 选择 Y 的取值必须恰好两个水平,否则 Probit 拒绝。

  • 第二阶段有效行少于 10 会拒绝。

  • 结果方程使用 HC1 稳健标准误;第一阶段 Probit 用 statsmodels 默认协方差,两套标准误口径不同。

  • 产品不强制排他约束:你可以让两套 X 完全相同,但识别会变弱。实现提示仍要求「最好有一个 X 只进选择方程」。

  • IMR 对未选中者也算了公式,但第二阶段只保留参与=1,未选中行不进入工资回归。

案例

研究问题。 240 人中,只有选择「参与」的人被记录了工资。直接在这 198 人上把工资对教育、年龄、经验做 OLS,可能高估或低估教育回报——因为受教育更多的人更可能参与。需要先解释谁参与,再报告纠正后的工资斜率。

教学示例来自因果推断表,工作表为「heckman」,第一阶段全样本 240。选择方程 Y = 参与,选择 X = 教育、年龄;结果 Y = 工资,结果 X = 教育、年龄、经验。下载后按同样四个角色复现 IMR = -3.8296(p = 0.022)。

下载教学示例表(因果推断)

在 StatsX 中操作

  1. 步骤 1 · 打开因果表

    导入因果推断 xlsx,切到工作表「heckman」,不要停在 panel、psm 或 rdd。单文件不超过 20 MB。

  2. 步骤 2 · 确认 0/1 与连续列

    参与应为二元;工资、教育、年龄、经验为定量。参与若被读成文字「是/否」,先在表里改成 0/1。

  3. 步骤 3 · 选择 Heckman 两步法

    目录搜索「Heckman」或「两步」。四个角色都要填,缺一不可。

  4. 步骤 4 · 拆开两套方程

    选择方程 Y 放参与,选择 X 放教育与年龄;结果 Y 放工资,结果 X 放教育、年龄与经验。点击运行。

  5. 步骤 5 · 先看 IMR 再看教育

    第二张表找到逆米尔斯比率。p=0.022 则引用纠正后的教育 0.199,不要回头只报未纠正 OLS。

上传因果推断教学示例
将因果推断表拖入工作台上传区。
列画像确认参与为二元
确认参与是二元定类,工资与教育为定量。
在目录中选择 Heckman 两步法
选定「Heckman 两步法」。
分别指定选择方程与结果方程
选择 Y/X 与结果 Y/X 分开勾选;经验只放进结果 X。

如何阅读输出

第一阶段 Probit,全样本 240。教育 0.1583(SE 0.0367,统计量 4.313,p < 0.001):受教育年限越高,参与概率越高。年龄 -0.0158(p = 0.082)未过 0.05。截距 const = -0.2464(p = 0.644)本身不必解释。

第一阶段:样本选择方程 (Probit) | 因变量: 参与
变量系数(Coef)标准误统计量P值
const-0.24640.5333-0.46210.644
教育0.15830.03674.313<0.001
年龄-0.01580.0091-1.73660.082

左右滑动可查看完整表格

进入第一阶段的全样本量: 240。由此计算出逆米尔斯比率(IMR)并带入第二阶段。

第二阶段只留 198 名参与者。教育 0.199(SE 0.0949,p = 0.036),年龄 0.0433(p < 0.001),经验 -0.011(p = 0.066)。关键行是逆米尔斯比率 (IMR) = -3.8296(SE 1.676,统计量 -2.285,p = 0.022):选择偏差可检出,工资斜率应以本表为准。

第二阶段:结果方程 (OLS) | 因变量: 工资
变量系数(Coef)标准误统计量P值
const10.8421.2818.4636<0.001
教育0.1990.09492.09710.036
年龄0.04330.01133.8332<0.001
经验-0.0110.006-1.83920.066
逆米尔斯比率 (IMR)-3.82961.676-2.2850.022

左右滑动可查看完整表格

第二阶段仅保留被选择观测的样本,有效样本量: 198。

Heckman 两阶段结果表
工作台中的 Probit 与 OLS 表,数字应与上表一致。
选择方程 Probit 系数图
教育 Probit 系数 0.1583,年龄 -0.0158;虚线为零。
结果方程 OLS 系数图含 IMR
IMR = -3.83 主导横轴尺度;教育 0.199 仍为正。

【Heckman两阶段】修正样本选择偏差。 【IMR诊断】统计显著(p=0.022, α=0.05),存在选择偏差,应参考第二阶段系数。

解读顺序:选择方程里有没有至少一个显著预测(本例是教育)→ IMR 是否显著 → 再读纠正后的工资斜率。IMR 为负,表示未被观测到的「更容易参与」的特征,在参与者子样本里对应更低的工资残差方向,具体符号依赖参数化,论文里应报告点估计与 p,而不是只写「有偏误」。42 人(240−198)没有进入第二阶段,因为参与≠1 或结果列缺失。

理论与公式

记 S=1 表示结果被观测到。选择方程是潜变量 Probit:

对 S=1 的观测,逆米尔斯比率为标准正态密度比上分布函数;把它放入结果方程:

若 corr(u, e)≠0,忽略 λ 的 OLS 不一致。本实现用 `predict(..., which="linear")` 得到 z,再算 φ(z)/Φ(z)(S=1);第二阶段 `OLS.fit(cov_type="HC1")`。经验只进 X、不进 Z,提供排他识别。IMR 的 p=0.022 对应「ρ 是否为零」的可行检验。

注意事项

  • 两步法标准误在理论上应做 Heckman 修正;本页第二阶段是把 IMR 当普通回归元的 HC1,与 Stata `heckman, twostep` 的校正方差不会逐格相同。

  • 没有真正排他的 Z(经验这类变量)时,IMR 与 X 共线,教育系数会抖。

  • 选择方程若几乎不能预测参与,λ 接近常数,纠正没有信息。

  • 把工资缺失的人填 0 再 OLS,会把「没参与」和「工资为零」混在一起,那是另一套错误,不是 Heckman。

  • 横截面两步法纠正的是选择偏差,不是政策的平行趋势或断点局部随机。

常见问题

参考文献

  • 陈强. 高级计量经济学及 Stata 应用[M]. 高等教育出版社.

  • Heckman, J. J. Sample Selection Bias as a Specification Error[J]. Econometrica, 1979, 47(1): 153–161.

  • Wooldridge, J. M. Econometric Analysis of Cross Section and Panel Data[M]. MIT Press.

  • Cameron, A. C., & Trivedi, P. K. Microeconometrics[M]. Cambridge University Press.