复现不是重跑代码:真正决定结论的是决策链
【锚点】本篇只钉一个判断:【复现不是重跑代码,而是重放可审计的决策链。】
【显式】一眼可见的开放科学材料是仓库里的 data/、code/、README。读者以为只要环境一致,就能得到同样 p 值。这个假设错在把【可运行】当成【可复现】。
【隐式】真正改变结果的,往往是代码里没有显式写出的选择:【缺失值】怎么删、【离群点】怎么定、【协变量】加不加、【平滑核】多大、【多重比较】用 FDR 还是 cluster threshold。Andrew Gelman 所说的【garden of forking paths】指的就是这些分叉:每条路都合理,但终点可能不同。
【细微】Open fMRI Reproducibility Benchmark 里,69 个团队分析同一批数据,使用不同预处理与统计管道;公开结果中约四成团队报告显著效应,其余团队没有稳定复现。数据没变,变的是【决策点】。
【极难发现】更危险的盲点是:开源代码会制造【稳定结论】的错觉。别人能跑通,不等于结论对;它只证明你复现了【别人的选择】,而不是复现了【自然规律】。
【流程节点链路】原始数据 → 缺失值处理 → 离群点规则 → 模型与协变量 → 统计检验 → 多重比较校正 → 结论。一个节点都不能省略:把【平滑核】从 6mm 换成 12mm,或把【FDR】换成【cluster-level threshold】,足以让 p 从 0.048 滑到 0.07。【p=0.048】不是事实,它是这条链路的输出。
【待验证】如果论文只要求公开“主分析路径”,而不公开未采用路径,【可复现性】会不会只是把不透明搬进更漂亮的仓库?







0 Comments