数据寓言#9:国师的账本

📖 虾哥数据寓言 · 第 9 期
用故事讲透一个数据分析概念
国师的账本
老王登基二十年。朝堂上最受尊敬的人,不是宰相,不是大将军。
是国师。
国师姓姜,七十岁,满头白发,说话慢条斯理。侍奉过三代君王,靠的是一样本事——预言。
每年冬至,姜国师在大殿之上,当着满朝文武宣读来年预言。去年他列了七条:北方蝗灾、南方大水、西北边境起冲突、太子妃有喜、粮价秋后下跌、钦天监出纰漏、西域贡马数量减半。
应验了五条。
文武百官跪了一地。
这一年,新来了一位录事,叫陈砚。二十出头,刚从中书省调来史馆。他的差事很简单——整理姜国师三十年来的预言档案,编纂成册,入史书。
陈砚干了三天,发现一件事。
正史档案只记录了"应验"的预言。每一条后面,一行朱笔小字:"某年某月某日,应验。"三十年,六百三十七条。整整齐齐。
那没应验的呢?
一条都没有。
陈砚去问史馆的老前辈。老前辈正在晒太阳,听完眼皮都没抬。"没应验的?"他笑了笑,"没应验的,谁记它做什么。"
陈砚没放弃。
他去了史馆后面那间杂物房。门推开的时候,灰尘呛得他咳了半盏茶。里面堆着几十年没清理的旧卷宗——发黄的、虫蛀的、被雨水泡过又晾干的。
陈砚在里面翻了整整七天。
翻出来的东西,让他坐在地上,后背贴着墙,很久没动。
姜国师不是每年七条预言。
是每天三到五条。

每一天。风雨无阻。早朝散后,姜国师回到自己的值房,摊开一张纸,写上几条——谁的官职要变动、哪个地方有灾、边境是否起兵戈。写完了,封起来,交给史馆存档。
每天四张纸。三十年。一万多天。
四万多条预言。
陈砚铺开一张大纸,把四万条和六百三十七条放在一起。算盘拨了两遍。
应验率:大约百分之一点五。
他盯着这个数字。一个人,三十年,每天猜几件事,猜了四万次。蒙对了不到百分之二。
和瞎蒙有什么区别?
陈砚犹豫了两天。第三天早上,他求见老王。
他把三十年的原始卷宗铺满了偏殿的地面。四万多张泛黄的纸条。每一张都是姜国师的亲笔。
"陛下,"陈砚跪在地上,声音在发抖——但不是因为害怕,"国师的预言应验率,只有不到百分之二。"
殿上安静得能听见蜡烛燃烧的声音。
姜国师站在一侧。陈砚注意到他的手在抖。
"臣翻了最早的记录。"陈砚拿起一张发黑的纸。"国师第一年预言了一千三百八十条。应验了十九条。"
"没有人记住那十九条错的。只记住了那十九条对的。"
"三十年后,六百三十七条'应验'摆在那里。没有人问过——另外四万条在哪。"
老王从龙椅上站起来。他没有看姜国师。他走到那些纸条中间,弯腰捡起三张。
第一张:"三月初七,御史台将起争端。"——背面没有朱批。 第二张:"五月初一,城西有灾。"——没有朱批。 第三张:"八月十五,南方贡象将病一头。"——没有朱批。
没应验的,从来没有人觉得有记下来的必要。
老王转过身,看着姜国师。盯了很久。
"姜卿,"老王说,"你知道朕为什么三十年没怀疑过你吗。"
姜国师没有回答。
"因为朕只看到了那六百条。"
老王让陈砚把那三张没应验的纸条放在国师面前的案上。
"从今天起,"老王的声音不大,但每个字都砸在地上,"史馆记录预言——每一条都记。应验的记。没应验的也记。一条都不准扔。"
姜国师第二天告老还乡。老王没有挽留。
后来陈砚在史馆的墙上挂了一幅字。只有两行——
猜得够多,总能蒙对。 算全了账,才知是蒙。
概念解析:多重比较问题
这个故事讲的是数据分析里一个被严重低估的概念——多重比较问题(Multiple Comparisons Problem)。
简单说:当你做足够多次比较或测试,纯随机也会产生一些看起来"显著"的结果。你只报告那几个"显著"的,扔掉剩下九成八——别人看你就跟看神仙一样。
故事里的数字逻辑
❶ 姜国师做了约 40,000 次"比较"(每天3-5条预言 × 30年)
❷ 正史记录了 637 次"显著"结果(应验的)
❸ 应验率 1.5%——正好是瞎蒙的水平
在统计学里,我们通常用 p<0.05 作为"显著"的标准——意思是,如果零假设成立(比如"国师没有预言能力"),纯随机产生这个结果的概率不到5%。
但这里有一个绝大部分人忽略的前提:这个5%是针对单次比较说的。
你做20次独立的统计检验,每次用 p<0.05 的标准——至少有一次"假阳性"的概率不是5%,是 1 - 0.95²⁰ ≈ 64%。
姜国师做了四万次"检验"。他不需要任何预言能力——纯蒙也能蒙对几百次。然后史馆只挑这几百次写进正史。
不是姜国师骗了老王。是"只记对的、不记错的"这套记录机制,天然会制造国师。

现实中的"国师账本"
这个陷阱在真实世界遍地都是。说三个。
例一:医学研究。一种新药做临床试验,测了二十个指标——血压、心率、血糖、胆固醇、肝功……测完之后,有两个指标出现了"p<0.05 显著改善"。药厂只报告这两个。问题是:测了二十个指标,纯随机也会有一两个撞上。这不是药有效——这是多重比较的必然产物。FDA 审核时强制要求校正多重比较,原因就在这。
例二:股票推荐大师。你收到一封邮件:"下周这只股票必涨。"下周一,真的涨了。第二封又来了,又对了。连续对了五次。你准备打钱了。但你不知道的是——大师第一天给一万人发了邮件,一半说涨一半说跌。第二天,只给猜对的那五千人继续发。第三天,两千五。到第五天,还有三百人收到了连续五次"精准预测"。你是那三百分之一。九千七百人早在第二轮就被踢出了群发列表。
例三:AI 模型 benchmark。一个新模型发布了,官方报告它在 MMLU、HumanEval、GSM8K 上全面领先。但你没看到的是——这个模型在内部测试集上跑了五十个 benchmark,挑了三个最好的报。剩下四十七个成绩一般的,发布会 PPT 上不会出现。这不是作弊——这是多重比较的自然结果。
怎么不当"老王"
三条,不复杂,但每一条都反直觉。
第一,问一句"测了多少次"。 看到任何"有效/显著/领先"的结论,先问:这人一共测试了多少个指标、跑了多少次实验、做了多少个比较?测了 100 个指标只报 3 个——这不是发现,这是筛选。
第二,找预注册。 正经研究会提前公开自己的计划——测什么、怎么测、预期什么结果。这叫预注册(pre-registration)。做完之后,不管结果好坏全报。姜国师如果被要求每天早上当众封存预言、年底当众开箱核对——他的国师位坐不过第一年。
第三,信复现,不信首发。 一次显著不算数。换人、换数据、换条件再做一次,结果还显著——才值得认真看。能复现的才可能是真的。复现不了的东西,大概率是多重比较的噪音。
最后说一句。多重比较问题不是在教你不信任何研究结果——是在教你一件事:
信一个结论之前,先问——"没猜中的那些在哪。"
找得到那本完整的账本。你才知道你是不是在跟国师说话。
👇 关注亮虾哥 👇
连锁零售IT老司机 | 非程序员用AI省80%时间
每天一篇AI干货,让AI替你打工 🦐
这个陷阱在你工作里长什么样?评论区聊聊
#数据寓言 #数据分析 #多重比较 #统计学陷阱 #国师的账本
