打开新闻经常能看到几组互相打架的数据:官方公布的平均工资年年涨,但身边人「钱越来越不够花」的抱怨明显在变多;统计公报里某城市房价「同比微跌 0.5%」,但小区里挂牌价反而都在往上抬;某种养生方法在朋友圈口耳相传地有效,但同样的方法放进大样本临床试验后没有显著效果。这类「体感与统计数据背离」的情形在生活里非常常见——但很多时候它们不是任何一方的错觉,而是数字在被汇总、报告、使用的过程中悄悄发生了畸变。
这篇文章介绍日常数据里最常见的七类统计陷阱,按「陷阱来源」分四组:(1) 从单个体观察归纳到群体——小样本偏差与幸存者偏差;(2) 用均值和方差描述一群数据——偏态分布下的均值误导,和不做显著性检验的比较;(3) 把相关性当作因果性——混杂变量与辛普森悖论;(4) 当指标本身被博弈——挑樱桃与古德哈特定律。每类陷阱都从一个生活或工程里能直接代入的例子讲起,再补上成因、数学本质,以及在专业场景里通常用什么办法对抗它。学一点对抗这些陷阱的统计直觉,目的不是变成精算师,而是在被算法投喂、被数据修辞包围的时代里保住一点判断力。
本文的视角放在「日常数据使用层面」,关注的不是某个工程系统该怎么搭,而是普通读者面对一组数字时最容易掉进哪些坑、又能怎么爬出来。
1. 个案的归纳:小样本与幸存者
1.1 身边统计学:小样本偏差与可得性启发
我们都听过几个类似的句式——「我二大爷抽烟喝酒吃肥肉活到 98 岁,可见养生根本没用」、「我亲戚那个老中医可神了,吃了三副药就好了」、或者「我认识的某某买什么涨什么,跟他买准没错」。这些表述的共同特征,是把一个生动具体的熟人作为某个全称结论的全部证据。
人脑给亲历个案的权重远高于它在统计意义上应得的权重。Tversky 与 Kahneman 把这条认知现象命名为可得性启发(availability heuristic)——一件事「容易从记忆里调出来」会被错读成「这件事的概率高」。而个案的可得性恰恰由生动度、近期性、亲历性同时拉高——亲戚老中医的故事比一万人临床试验的报告生动得多。结果是个体经验在大脑里的权重远超它在总体中的统计权重,归纳出来的结论常常和总体真实分布完全错位。
统计学上对应的概念是大数定律(law of large numbers)。设总体均值 、方差 ,独立同分布地采样 个样本得到样本均值 ,则
时样本均值的方差就是 ,离总体均值有多远完全不可控; 变大以后方差才以 的速度向 收缩,样本均值才依概率收敛到总体均值。「我二大爷活到 98 岁」与「全人类都这样」之间,缺的是整整一个 的极限过程。
专业上的对策是两点。第一,依靠样本规模足够大、能代表总体的随机抽样——人口抽样调查、临床随机对照试验都建立在这条之上。第二,在看到任何「我身边」「我认识的人」式归纳时,先在脑子里把它打回 的轶事——一件被讲述出来的轶事最多算一份证据,不构成对总体的统计结论。
1.2 幸存者偏差:被筛掉的样本
二战时英国空军请数学家亚伯拉罕·瓦尔德(Abraham Wald)分析轰炸机弹孔分布,希望知道该在哪里加固机身。直接读数据可以看到,机翼和机尾上弹孔最密集,引擎和驾驶舱反而几乎没有。空军最初的方案是「弹孔多的地方加装甲」。瓦尔德的判断恰好相反:应该加固的是几乎没有弹孔的位置——因为弹孔本身只反映「中弹了又能飞回来的飞机受过什么伤」;引擎或驾驶舱中弹的飞机大概率根本飞不回基地,所以在统计样本里直接缺席。
另一个常被引用的版本是「辍学创业能当首富」——比尔·盖茨、马克·扎克伯格、史蒂夫·乔布斯…如果只数幸存者,确实能列出一连串显赫名字;但辍学创业失败的样本数远远更多,且大多默默无闻。用「成功者」这个被筛过的样本去归纳「辍学创业容易成功」,和瓦尔德的轰炸机案是完全同一种错误。
两个例子的共性是:我们能看到的样本,已经经过一道没意识到的「死亡筛选」——飞不回来的飞机和创业失败的人都没进入观测。这种偏差不是采样过程做错了什么,而是观测过程本身被一个隐含变量(生还、成功)切断了。
形式化地说,记总体的随机变量是 ,观测条件是 (轰炸机里 = 「飞回来」),那么我们看到的不是 的分布,而是条件分布 。一个最简单的例子是单边截断:如果只观测 ,则
直接照搬「生还样本均值」会把整体均值系统性高估。只在飞回来的飞机上算弹孔分布,得到的不是真实弹道分布的样本,而是它在「生还集合」上的截断版。
专业上的对策是显式地把样本池的准入条件写出来,并尽量估计「沉默的数据」。RCT 是从设计端避免这种筛选——所有被采样的对象,不管结果如何都要被跟踪和观测。在只能做观察性研究的场合,需要先识别筛选机制(survivorship、self-selection、参与意愿等),再用倾向得分匹配(PSM)或 Heckman 修正之类的方法尽量回补缺失部分。
2. 描述统计的陷阱:均值与方差
2.1 偏态分布下的均值误导
一句流传很广的吐槽:「张家有钱一千万,九个邻居穷光蛋,平均一算个个都是张百万。」把它写成数字就是一组 10 个样本: 万元。算下来 mean = 100 万、median = 0、众数 = 0。用「平均财富 100 万」去描述这十户人家的真实状况,是对 9 户人家的彻底失真。
同类例子在生活里更常见:招聘平台年年发布的「应届毕业生平均薪资」,少数互联网或金融顶薪 offer 把均值往上拉得很远,普通人看了普遍觉得「对不起,我又给国家拖后腿了」;社交平台的「人均粉丝数」、自媒体的「人均收入」也是同一种修辞。
成因是这类数据的底层分布并非对称的钟形分布,而是严重偏态,常见的形态是幂律分布(power law)或更宽的重尾分布——少数极端值(outliers)占据绝大部分总量,多数样本聚集在低端。
数学本质很直接:均值 对每个点权重相同,离群越远的点对均值的拉扯越大。把单点 替换成 ,均值的变化是
绝对值线性正比于 ;而中位数只关心样本的排序位置,把张家的一千万换成一亿,中位数纹丝不动。对偏态数据来说,均值对极端值的敏感度是中位数的若干倍——少数离群值就能把它拉到远离总体「典型水平」的位置。
专业上的对策是:偏态明显时报中位数 + 四分位距(IQR)或十分位/百分位数,别只给均值;进一步可以看分布形态(直方图、KDE)和方差。看到任何「人均」「平均」时,先问一句这组数据的分布形态像不像钟形——如果不是,中位数才是普通样本的真实写照。
2.2 没做显著性检验的比较
校长在年级会议上点名两个班的期末均分:A 班 85、B 班 86,相差 1 分。校长大怒,认为 A 老师教学退步了,要求当众检讨。这个判断合理吗?
答案完全取决于两件事:每个班的方差和样本量。两个班的均值差 1 分是「噪声」还是「信号」,不能从均值差本身判断,必须和方差、样本量一起看。
情况一(差异不显著):两个班都是 60 人的普通班级,方差极大——最高 100 分、最低 20 分。两组方差都大约是 (标准差 20 分)。这种规模下,均值的标准误约为 分,1 分的差距远在一个标准误之内,对应的 ——这 1 分大概率是采样噪声。
情况二(差异显著):A、B 班是一次标准化拔尖考试,A 班全员稳定在 84–86 分、B 班全员 85–87 分,标准差只有约 1 分;且参考的不是 60 人,而是上千人。同样的均值差 1 分对应几十倍的标准误,,1 分就是实质差距。
把这件事形式化为两样本 t 检验,检验统计量是
大不大不取决于均值差本身,而取决于它相对于「自身随机波动幅度」的倍数——分母里的 正是均值差的标准误(standard error),刻画的是「同一种采样方式重复跑很多次、均值差自身会有多大波动」,方差越大它越大、样本量越大它越小。p 值的语义是「在原假设 下观察到当前结果或更极端结果的概率」。 时拒绝 ,认为差异不是噪声; 较大时则没有足够证据排除「这就是噪声」这个可能。这套机制和 A/B 实验完全是同一套——更完整的推导见文章 《从潜在结果到假设检验:A/B 实验里的统计与因果推断》 §4。
顺带提一类「无意义精确度」的修辞:某护肤品广告写「使用四周皮肤弹润度提升 34.567%」,精度到小数点后三位,看上去极度科学。但如果样本只有 10 个志愿者、个体差异大,34.567% 的「精度」纯属表演——真实的置信区间宽度可能轻松覆盖 ±20%。没有样本量和方差打底的小数位,是统计语境里最廉价的虚张声势。
专业上的对策很简单:看到任何「A 比 B 好 X%」的比较,先问三件事——样本量 多大?标准差 多大? 值或置信区间是多少?这三个数没有的话,差异本身没有意义。
3. 相关性不等于因果性:混杂变量
每年夏天,冰淇淋销量激增,水库溺水死亡人数也激增。两条曲线肉眼相关性极强。如果直接用「相关」推「因果」,就得出「吃冰淇淋导致溺水」这种荒谬结论。真实原因是夏天气温升高同时驱动了「冰淇淋销量」和「下水游泳人数」——前者直接推高销量、后者间接推高溺水死亡数。气温就是这里的混杂变量(confounder)。
把这个结构画清楚:处理变量 (冰淇淋销量)、结果变量 (溺水死亡数)、混杂变量 (气温)同时影响 和 。从数据上看 与 强相关,但这条相关性不来自 这条因果通路,而来自 同时驱动二者形成的「假相关」。只要 没被控制住, 与 的相关性里就混着真因果效应和混杂效应两部分,无法直接拆开。
数学本质用 Pearl 的 do-calculus 表达最干净。给定混杂 :
两条式子的差别只在最后一项—— vs 。当 与 不独立时(如「冰淇淋销量」和「气温」),这两个概率不同, 和 也就不同——后者才是真实的因果效应。让两者相等的充分条件是 ,即处理变量和潜在混杂之间相互独立——这恰恰是 RCT 通过随机分配 强行制造出来的性质。
专业上的对策有两条路。一是在设计端就做随机化——能跑 RCT 就跑 RCT,比如医学试验和工业 A/B 实验。二是当 RCT 不可行(成本、伦理、可行性等),用计量经济学的识别策略在观察性数据里逼近因果效应:Difference-in-Differences(双重差分,利用「政策冲击前后 × 处理组对照组」交叉差分剥离时间趋势)、Instrumental Variables(工具变量,找一个只通过 影响 的外生变量)、Propensity Score Matching(基于倾向得分把处理组和对照组在协变量分布上拉齐)等。这些方法各有失效场景,但共同点是:它们都在显式地为「没法随机化」这件事补假设——没有免费的因果识别。
进一步阅读:随机化为什么能消化反事实、ATE 怎么用 Difference-in-means 估计、以及随机化在 A/B 实验中的形式化推导,见文章 《从潜在结果到假设检验:A/B 实验里的统计与因果推断》 §2-3。
4. 辛普森悖论:样本结构变化下的合并悖论
假设我们看深圳两个片区的二手房成交价。某年「过去」的成交分布是这样:南山(豪宅区)成交 6 套,每套 2 万 / 平米;宝安(刚需区)成交 1 套,每套 1 万 / 平米。当年的整体均价是
到了「现在」,成交结构发生了剧烈变化——南山只成交 1 套、单价 3 万 / 平米(涨 50%),宝安成交 6 套、单价 1.5 万 / 平米(涨 50%)。两个片区的单价都涨了 50%,但整体均价变成
合并跌幅约 。每个片区的单价都暴涨 50%,整体均价反而跌了约 8%。挂牌价、单点成交都对得上「房价在涨」的体感;可一旦把数据按全市加权合并,结论就翻了脸。这就是辛普森悖论(Simpson’s paradox)。
另一个被反复引用的版本是 1973 年的 UC Berkeley 录取案。学校总体录取率女性低于男性,乍一看像「系统性歧视女性」。但分院系看,几乎每个院系对女性的录取率都不低于男性——真实原因是女性更倾向于申请录取率本身就更低的院系(如英语、心理学),男性更倾向于申请录取率更高的院系(如工程)。「申请院系的分布」就是把「性别 → 录取率」这条相关性翻转的混杂变量。
成因的数学形式很简洁:合并均值是各组均值的加权和
它既依赖各组均值 ,也依赖各组权重 。即便每个 同步上涨,只要 从「高均值组」迁向「低均值组」,合并 也可能下降。深圳房价例子里,南山权重从 6/7 跌到 1/7、宝安从 1/7 涨到 6/7——权重剧烈再分配的影响盖过了每个组内单价的 50% 上涨。
专业上的对策有两条。
对策一(标准化加权 / standardized rate):固定一组「标准权重」,再用这组权重去合并不同时期的组均值,让权重变化本身不被算进合并均价。比如在深圳房价例子里,假设两个片区各占 50%,重算两期均价:
数据和体感终于对得上。标准化加权的核心是把「权重变化」这个混杂变量冻结住,让对比里只剩各组内的变化——这也是流行病学计算「年龄标准化死亡率」时同一套方法的来源。
对策二(Cochran-Mantel-Haenszel 检验):对二分类结果(如录取与否、转化与否),用 Cochran-Mantel-Haenszel 检验 在每一层(如各院系)算 odds ratio,再用层内样本量加权合并。UC Berkeley 案就是用这套方法剥离掉「申请院系」这个混杂之后,证明合并后的录取 odds ratio 并不指向「系统性歧视女性」。
同一个机制在 A/B 实验里也会出现:实验中途调整 ctrl 与 exp 的流量比例,会让早期用户与晚期用户的 不一致——把简单的均值差当作 ATE 估计就会重现一次辛普森式偏差。详见文章 《从潜在结果到假设检验:A/B 实验里的统计与因果推断》 §3.4。
5. 当指标成为目标:挑樱桃与古德哈特定律
前面四组陷阱都来自数据本身的结构——样本太小、被筛过、分布有偏、有混杂变量。最后一组陷阱不一样:它来自人对数据的主动干预——选择性披露、和把指标当成被博弈的目标。
5.1 挑樱桃(Cherry-picking)
Cherry-picking 的字面意思就是「只摘最甜的那颗樱桃」。一个典型场景:基金经理路演时只展示业绩最好的那只基金——同公司同期还有十只跑输大盘的基金被有意忽略。另一个常见手法是在长期 K 线图上精心截取一段单调上涨的时间窗口——把图表起止日期挪一挪,同一只股票既能看上去「五年翻三倍」也能看上去「一年腰斩」。
数学本质是「多重比较 + 选择性报告」。设我们做了 次彼此独立的假设检验——基金例子里就是 只基金各自和大盘做一次「跑赢与否」的检验,K 线例子里就是 个时间窗口各自做一次「涨跌是否显著」的检验——每次单独的显著性水平为 ,那么「至少有一次显著」的概率是
只挑那次显著的发布,等价于偷偷把检验水平从 放大到 。做了 20 次独立比较只报最好的一次,本质上是把 5% 显著性放大到了 ~64%——名义显著但实际上是噪声。
5.2 古德哈特定律与眼镜蛇效应
1862 年英国殖民政府为减少德里街头的眼镜蛇数量,按蛇头悬赏抓蛇。结果是不少民众开始在家偷偷养眼镜蛇赚赏金;殖民政府发现后取消悬赏,养蛇人就把蛇都放生了——德里的眼镜蛇数量比悬赏开始前还多。这是眼镜蛇效应(cobra effect)的命名来源。
同一套故事在公司 KPI 里反复上演:用「代码行数」考核程序员,结果是程序员开始写大量重复、无意义的代码;用「Bug 修复率」考核工程师,工程师就开始给自己提 Bug 再自己修;用「客服平均通话时长」考核客服中心,客服开始无故挂断电话来压短通话时长。当一个指标从「观测信号」变成「考核目标」,被考核者的行为会朝着「优化指标本身」漂移,而不是朝着指标背后所代表的真实价值漂移。
古德哈特定律(Goodhart’s Law)把这条经验现象总结成一句话:「当一项指标成为目标时,它就不再是一个好指标。」放进现代强化学习的框架里,这就是 reward hacking——优化代理目标(proxy objective)会让它和真实目标(true objective)之间的相关性随着优化进行而下降,甚至最终反转。
专业上的对策不是「换一个更好的单一指标」,而是从根上承认任何单一指标都会被博弈:
- 多维制衡指标设计:永远不靠单一指标做决策。考核代码行数同时考核故障率与维护成本;A/B 实验里短期 CTR 同时挂上长期留存与净化指标;广告点击率同时挂上人均收入与用户投诉率——让博弈一个指标的代价被另一个指标 catch 住。
- 对抗性指标 + 穿透式审计:在主指标外引入一个会随着「主指标被博弈」反向变差的对抗性指标(如 KPI 不只看「Bug 修复数」,也看「同一模块的回归 Bug 率」);定期做穿透式审计,回到指标背后所代表的真实价值上交叉验证。
- 遮蔽目标本身:在某些场景里,干脆不向被考核者明示目标函数的具体形式——这本质上是用「不可被反推的奖励函数」来抵御 reward hacking。
挑樱桃和古德哈特定律的共同点是,它们都不需要任何统计错误,光是「人会响应指标」这条机制就足以让基于指标的决策崩坏——这也是为什么这一类陷阱靠数学方法本身防不住,必须在制度和流程层面做约束。
6. 结语
把整个七类陷阱串起来看,它们其实在反复回答同一个问题——一组数字想告诉你的事,和它真实代表的事,差距有多大。前四类陷阱里这个差距来自数据结构本身的失真,最后一类来自人对数据的主动干预。下面几条没在正文里直接强调、但用之前最好心里有数:
- 个案不是证据。「我身边某某」式归纳的样本量永远是 1;任何这种归纳出来的结论要先打回 处理。一个有说服力的统计结论,背后必然是一个足够大、足够随机的样本——具体多大取决于效应量和方差,但绝不是「我和我表哥」。
- 偏态数据看中位数,不看均值。财富、收入、流量、粉丝、停留时长,几乎所有「人产生的、能拉到极端值的指标」都是偏态分布。看到这类数据的「平均」「人均」时第一反应应该是「中位数是多少」「分布形态像不像钟形」。
- 没做显著性检验的差异比较都是噪声。看到「A 比 B 好 1%」的句式,先问 多大、 多大、 多少。没有这三个数,差异是信号还是噪声完全无法判断;带小数点的「精确度」反而是修辞,不是证据。
- 相关性不是因果性,结构变化更不是。冰淇淋销量与溺水数同涨不代表前者导致后者;各片区都涨更不代表合并均价会涨。看见任何「X 和 Y 同向变动」的图,第一步是找 ——有没有同时驱动两者的混杂变量;任何按某种分组合并出来的指标,第二步是检查「分组权重有没有变」。
- 指标一旦成为目标就不再是好指标。任何单一指标决策都会带来 Goodhart 风险;解决的不是换一个更好的指标,而是引入对抗性指标 + 穿透式审计 + 多维制衡。