辛普森悖论(Simpson's Paradox)指的是:把数据分成若干组分别比较时,某一方全面占优;可一旦把各组数据合并成总数,胜负却反了过来。
先看一组最简单的数字。假设两个模型在同一套评测上跑,题目分成「简单题」和「难题」两类:
| 简单题 | 难题 | 合计 | |
|---|---|---|---|
| 模型 A | 90 / 100 = 90% | 90 / 900 = 10% | 180 / 1000 = 18% |
| 模型 B | 801 / 900 = 89% | 9 / 100 = 9% | 810 / 1000 = 81% |
A 在简单题上赢(90% > 89%),在难题上也赢(10% > 9%),总分却被 B 甩开六十多个百分点。这不是算错了:A 的分数几乎全部来自难题,B 的几乎全部来自简单题,而合计本质上是按样本量加权的平均。权重一变,结论就能翻个面。
打个比方:两支球队打热身赛,主力对主力 A 赢,替补对替补 A 也赢;但 A 的替补上场时间远多于 B,总比分就成了 B 领先。只看总比分,你会以为 B 更强。
这里的关键角色是混杂因素(confounder)——既影响「谁被分到哪一组」、又影响「结果好坏」的那个变量,在上面的例子里就是题目难度。当分组样本在两边严重失衡时,聚合数字衡量的其实已经不是能力,而是「谁摊到了更多难题」。
和相邻概念的区别:
- 相关不等于因果:说的是观察到关联不代表有因果。辛普森悖论更尖锐——它连关联的方向都能给你反过来。
- 幸存者偏差(Survivorship Bias):问题是样本缺失,只看活下来的。辛普森悖论里样本一个没少,全算进去了,只是聚合方式掩盖了结构。
- 生态学谬误(Ecological Fallacy):把群体层面的结论硬套到个体身上。辛普森悖论正相反,是分层结论和群体结论打架。
对做 AI 的人来说,这意味着几件很具体的事:
1. 别只报一个总分。 模型 A/B 对比、上线前后的指标变化,只要流量分配、题目难度、用户构成在两边不一致,总分就可能是「辛普森」的。分层报告是底线。
2. 先问清问题,再选聚合方式。 「在同类任务上谁更强」和「放进真实流量里谁更强」是两个不同的问题,答案可以互相矛盾,而且都正确。口径选错,结论就是自欺。
3. A/B 实验尤其危险。 分流不匀、渠道用户混在一起、按天看和按周看结论不同,都可能触发反转。分析前先按关键维度切一遍,看结论稳不稳。
4. 评测集要控制维度配比。 各能力项的题量比例就是那个「权重」,权重一变,排行榜就变。看榜单先看它怎么配题,具体口径以官方页面为准。
一句话总结:辛普森悖论不是数据造假,而是提醒你——「总体更好」和「处处更好」根本不是一回事。报指标之前,先想清楚你到底在问哪个问题。
