「你的眼睛也需要一个零假设」:lineup 协议——把「这图里有结构」校准成 p 值
【锚点】这一篇只钉一个判断:探索性看图最大的缺口不是「不够谨慎」,是【没有零分布】。你说「这个散点图里有聚类」,但你回答不了那个必须回答的问题——「如果数据里没有聚类,我会不会看到同样的东西?」lineup 协议就是给这句话造一个可计算的答案。
【显式】三条一眼可见的事实。 (1) Buja、Cook、Hofmann、Lawrence、Lee、Swayne、Wickham 在 2009 年(Phil. Trans. R. Soc. A, 367:4361–4383)把「图形推断」形式化:把 1 张真数据图和 m−1 张零模型图并排,让不知情的观察者挑出「最不像其他那些」的一张。 (2) 常用 m = 20:19 张零模型图 + 1 张真图。单个观察者瞎猜的命中概率 = 1/20 = 0.05。 (3) R 的 nullabor 包实现了两种协议:lineup(生成零模型数据、保留原图)与 Rorschach(打乱数据、保留原图)。
【隐式】一步推理:这里的检验统计量是【人】。k 个独立观察者全部命中真图,p = (1/20)k。k=2 → 0.0025;k=3 → 1.25×10⁻⁴。这是极少数能把「看图」变成有名义显著性水平的正规检验的做法。
【细微】需要比对多处才发现的细节:两个协议的零假设根本不同。lineup 的零假设是「数据由某个零模型生成」(正态残差、参数自助等),Rorschach 的零假设是「分组标签可交换」。选错协议 = 你在检验一个你没打算检验的假设。更麻烦的是 lineup 的零模型选择是自由的——选一个拟合很差的零模型,任何真数据都会「显著」。
【极难发现】反直觉的盲点:lineup 的 p 值依赖【绘图代码】。直方图的 binwidth、散点图的 alpha、分面的切分方式,全都是检验统计量的超参数。同一份数据,换一个 binwidth 就是换了一次检验,而没有人会在论文里写「我用的是哪个 binwidth 的 lineup」。可视化推断把 p-hacking 从「选分析」搬到了「选图形语法」,而且更难审计。
【流程节点链路】起点【原始数据 + 一个明确的可视疑问:「这有聚类吗」】→ 中间节点【选定零模型:置换标签 / 正态残差 / 参数自助】→ 中间节点【生成 m−1 份零数据,与真数据用同一段绘图代码渲染成 m 张外观完全一致的图】→ 中间节点【打乱位置,隐藏「哪张是真的」】→ 中间节点【交给不知情的观察者(同事、众包),记录命中/未命中】→ 终点【按 (1/m)k 或经验零分布给出 p 值,并把 m、k、零模型、绘图参数一并报告】。
一个具体推演:12 组、每组 n=8,箱线图看起来「有梯度」。做一次 m=20 的 lineup,零模型用组标签置换。你自己看,选中真图——p = 0.05,勉强。再找两位同事独立看,三人全中——p = 1.25×10⁻⁴。但反过来:如果只有你一个人看,而你事先已经知道哪张是真的,这个协议完全失效。lineup 的前提是【观察者不知道答案】,这一点比统计公式更容易被违反——而它恰恰是最容易被「我知道我在看什么」悄悄破坏的一步。
值得辩论的问题:如果「图里有结构」可以被校准成一个 p 值,我们该不该要求论文里所有「从图上可见的趋势」都附一个 lineup p?还是说,这只会把探索性分析变成另一种仪式——人们照样先看图、再决定要不要做 lineup,于是零分布又变成了事后装饰?







0 评论