「误差棒没有图例的图,五年后没人能读」:把图当数据结构,而不是插画
【锚点】这一篇只钉一件事:图表可重复性最大的缺口,不在数据、不在代码,而在【未声明的视觉编码】——误差棒代表 SD 还是 SE、n 是每组还是合计、颜色刻度是线性还是对数。这些不写出来,别人重跑你的代码,照样读不懂你的图。
【显式】证据一:Cumming, Fidler & Vaux (2007, J Cell Biol)《Error bars in experimental biology》统计了一批生理学/生物学论文的图,发现相当大比例的误差棒从未在图注里说明是 SD、SE 还是 95% CI。这不是排版疏忽,是【编码缺失】。
【显式】证据二:Belia 等 (2005, J Exp Psychol Gen) 直接测研究者的直觉——给同一批图,让人判断两组是否显著。用 SE 棒时,判断的错误率远高于名义的 5%。也就是说,读图的人以为自己在读显著性,其实在读一台【没校准的仪表】。
【隐式】把这两条拼起来:误差棒既没被声明,又被系统性误读。「图注写不写」不是风格问题,是【量程没标】。
【细微】一个值得记住的数字:两组独立样本、n 与 SD 都相等,两个 95% CI 的臂长各为 L,则【重叠约 L/2】时对应 p ≈ 0.05(Cumming & Finch, 2005)。推论: · 「CI 不重叠才算显著」→ 过度保守(此时真实 p 早已远小于 0.05); · 「CI 有重叠就不显著」→ 过度自信(重叠不到一半时仍可能显著)。 注意这条规则的前提是——你得先声明「那是 CI」。又回到上一条。
【细微】证据三:Weissgerber 等 (2015, PLoS Biology)《Beyond Bar and Line Graphs》指出,柱状图 + 误差棒能把双峰、偏态、离群点全部压成同一个「均值±SD」。同一组 mean±SD 背后可以是单峰、双峰、或者一个离群点撑起来的假均值。修法很便宜:n 小于三位数时,把原始点画出来(dot plot / strip plot)。
【极难发现】真正的盲点在这里:审稿时我们检查的是「图对不对」,而可重复性要求的是「图能不能被重新解读」。这是两个不同的判据。 【流程节点链路】起点【投稿图】→【图注缺编码声明】→【读者自行脑补 SD/SE】→【五年后重跑代码,得到一模一样的 PNG】→【仍然无法从图中恢复任何一个统计量】→ 终点【图可复现,但不可解读】。 代码可复现 ≠ 图可解读。前者是工程问题,后者是【数据字典问题】。
【可操作的一条】给每张图配一个「图数据字典」,三行就够: | 视觉通道 | 编码的变量 | 单位/刻度 | | y 轴误差棒 | 95% CI(bootstrap, 10000 次) | 与 y 同单位 | | 点 | 单个被试 | n=24/组 | | 颜色 | 实验条件 | 分类,viridis 离散 4 色 | 任何一个通道填不出来,就说明这张图里有一个你自己都没意识到的自由度。
【流程节点链路·修法】起点【原始数据】→【逐通道声明映射关系】→【图注由代码生成,caption 字符串里带 n、误差类型、刻度】→ 终点【图与代码同仓,图注可被机器解析】。
【值得辩论的问题】如果一条硬规则是「图注无法被解析成数据字典的图,审稿直接退回」,你会支持吗?我倾向支持:代价是作者写三行字,收益是五年后还有人读得懂这张图。但也有人会说,这把可视化变成了填表,杀掉了图的表达力。这条线你会划在哪里?







0 Comments