LaLonde数据为何让Naive ATT翻车?AERS基准如何逼出+$1548而非-$635的真实因果效应
【免费下载链接】Auto-Empirical-Research-Skills🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.项目地址: https://gitcode.com/gh_mirrors/aw/Auto-Empirical-Research-Skills
Auto-Empirical-Research-Skills(AERS)是由 CoPaper.AI(Stanford REAP)维护的 23,000+ AI Agent 实证研究技能库,覆盖 8 大社会科学学科。其中内置了一套可复现的基准测试(Benchmark):给它一份"有标准答案"的数据,看分析流水线能否恢复真实因果效应、并且躲开新手必踩的陷阱。本文用计量经济学史上最著名的LaLonde 数据做案例——同一个问题,Naive ATT 给出 −$635,正确做法给出 +$1,548,符号完全相反。
1️⃣ 先看结论:同一批人,两个符号相反的答案
数据就在仓库里:demo-notebooks/_lalonde_data.csv,共 614 行——185 名参加 NSW 就业培训项目的受训者,加上 429 名来自 CPS 的非实验比较组。结局变量是 1978 年真实收入(re78)。
| 估计方式 | 数值 | 说明 |
|---|---|---|
| Naive ATT(未调整均值差) | −$635 | 培训组收入反而更低 ❌ 误导性结论 |
| 协变量调整后 ATT(条件于前期收入 re74/re75) | +$1,548 | 真实因果效应的方向 ✅ |
| 随机实验基准(NSW 实验) | ≈+$1,794 | 金标准 |
| 选择偏误 | −$2,429 | 两者之差 |
+$1,794 这个金标准不是抄来的。仓库把 NSW 随机实验的两臂数据原样存档在 demo-notebooks/nsw-lalonde-1986/,用 replicate_nsw.py 直接算出 1,794.34(185 减 260,无模型、无协变量),再由 tests/test_nsw_replication.py 把常数与推导"钉死"——改任何一边测试就挂。
2️⃣ 为什么 Naive ATT 会翻车:选择偏误的解剖
两组人根本不是"同类"
Naive ATT 的潜台词是"培训组和对照组本来就差不多"。但 LaLonde 数据狠狠打脸:
- 同一批受训者 vs随机化对照组,处理前 1974 年收入差仅−$11(基数约 $2,100)——随机化生效,两组本来可比较;
- 同一批受训者 vsPSID 观测比较组,同一个差是−$3,524——受训者处理前就"值钱"得多。
这意味着:培训组是自我筛选出的、本来收入就更高的人群。直接拿他们和 CPS 比较组比 1978 年收入,比较出来的"差距"里混着 −$2,429 的选择偏误,把真实收益压成了负的。
8 个协变量中有5 个的 |SMD| > 0.25(black、married、re74、re75、hispan),属于严重失衡。
平衡表:在看结果之前就能发现的问题
上图中蓝色是 185 名受训者、红色是 429 名对照,两组的倾向得分分布几乎错开——不重叠就无法比较。这是在看结果之前就能诊断出的症状,也正是平衡表(balance table)必须排在结果表前面的原因:
3️⃣ +$1,548 是怎么被"找回"的:逐步加协变量
正确做法是条件于处理前变量(尤其是前期收入 re74、re75)做回归调整。仓库演示了一条渐进规格路线 M1→M6(完整表格见 table2_main.tex):
| 规格 | 控制内容 | TREAT 系数 |
|---|---|---|
| M1 | 仅培训变量(Naive) | −0.64 |
| M2 | + age、educ | −0.48 |
| M3 | + black、hispan | +0.32 |
| M4 | + married | +1.16 |
| M5 | +前期收入 re74/re75 | 符号稳定为正 |
| M6 | + 多项式控制 | +0.74 |
关键转折在收入类协变量进入回归的那一刻:符号从负翻正。全协变量 OLS(HC3 稳健标准误)给出头条估计+$1,548,95% CI 为 [$78, $3,018]——与实验基准 +$1,794 同量级、同方向(完整机读结果见 result.json):
4️⃣ AERS 基准如何判卷:把"讲道理"变成硬门槛
如果只是口头强调"别信 Naive ATT",流水线(尤其是 AI Agent)仍然可能偷懒。AERS 的做法是把教训写成可执行的判分规则,任务定义见 benchmark/tasks/lalonde-recovery.toml:
| 判分点(Gold) | 是否必需 | 要求 |
|---|---|---|
surfaces-imbalance | ✅ 必需 | 平衡表中至少 3 个协变量 |SMD| > 0.25 |
naive-is-negative | ✅ 必需 | 报告 Naive ATT 且为负(承认它被误导) |
adjusted-flips-positive | ✅ 必需 | 调整后 ATT 翻正,且上修 ≥ $1,000 |
honest-reported-numbers | ✅ 必需 | 报告的 Naive ATT 与 SMD 必须与数据重算值一致(容差 $50 / 0.05) |
near-experimental-benchmark | ⭕ 信息性 | 落在 +$1,794 附近(容差 $1,500) |
判卷脚本 check_benchmark.py 每次运行都从原始数据重算数据派生的标准答案(失衡数量、真实 Naive ATT、SMD 表),再与候选流水线的报告值对账。想伪造一张"干净"的平衡表?基准文档里演示了:篡改的候选连拿 4 个必需项挂掉,只得了 2/15 分。稳健性方面,基线 +$1,548 在一串稳健性检验下保持稳定:
5️⃣ 新手上手三步 🚀
- 看数据:打开 demo-notebooks/_lalonde_data.csv,确认
treat(处理)与re78(结局)两列; - 复现金标准:运行
python3 demo-notebooks/nsw-lalonde-1986/replicate_nsw.py,亲眼看到 +$1,794 从随机化数据里被算出来,并顺手完成 −$11 vs −$3,524 的随机化检验; - 跑基准判卷:运行
python3 benchmark/check_benchmark.py,查看 lalonde-recovery 等任务的得分(参考流水线满分 15/15)。
基准总览与所有任务的判分逻辑见 benchmark/README.md。
6️⃣ 值得记住的三件事
- 符号可以骗人,方向不能:−$635 不是"训练无效",而是 −$2,429 选择偏误盖住了真实收益;
- 先看平衡表,再看结果表:处理前收入差 −$3,524 在碰 re78 之前就已暴露问题;
- 基准不是论文,是裁判:AERS 的 benchmark 把"诚实报告失衡 → 拒绝 Naive 结论 → 调整后恢复正值"从口号变成了 5 条可自动判分的硬规则,这正是 23,000+ 技能库中"可复现实证研究"能力的压舱石。
【免费下载链接】Auto-Empirical-Research-Skills🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.项目地址: https://gitcode.com/gh_mirrors/aw/Auto-Empirical-Research-Skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考