Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.025 — 2026-07-29
NEWS 约 5 分钟

同一套模型,为何跑出三种答案

同一规格换个软件,政策效果估计竟从 0 跑到 2.38,复现裂缝藏在默认值与报错处理里。

你把同一份食材和同一张菜谱交给六台机器,原以为成品只会略有差别,结果味道却像用了不同配方。统计分析也会这样:数据没变,模型设定看起来相同,只因换了软件包,估计出的政策效果便明显分叉。这件事值得现在看,因为研究者通常把代码和数据视为复现的关键,却容易忽略软件在计算失败时究竟做了什么。

据 Andrew 在 Gelman 博客转述,Scott Cunningham 用同一份巴西市级数据,在 R、Python、Stata 三种语言中各选两个软件包,运行了 96 个差分中的差分规格。差分中的差分(Difference-in-Differences,DiD)会比较处理组和对照组在事件前后的变化差,用来估计一项政策或干预带来的影响。实验发现,即使规格相同,不同软件包给出的结果也可能相去甚远。本文的数字和诊断均来自这一篇转述,原帖、代码、数据及各软件包输出并未随材料提供,因此应把它看作一次值得追查的案例,而非已经完成独立复核的定论。

相同模型名,不等于相同计算

数据涉及 2002—2016 年巴西各市 mental health centers 的错峰推广,并包含人口、经济、卫生基础设施和人口趋势等 29 个协变量。协变量可以理解为研究者希望一并控制的其他差异,以免把人口结构或经济状况的影响误算到政策头上。

Cunningham 设计了 16 种协变量配置,从完全不加协变量,一直到加入全部 29 个变量。这些配置共同构成 96 个规格。结果差异既出现在同一软件包的不同配置之间,也出现在相同规格跨软件包运行时。后者尤其关键:标题所说的“同一套模型”,准确地讲,是指其中那些协变量和模型设定一致、只更换软件包的比较,而不是把全部 96 次运行都当成完全相同的模型。

转述中的 ATT——对实际接受处理者的平均处理效果——最低为 0,最高为 2.38。即使排除零值,部分规格也从 0.45 additional homicides 到 2.38 homicides,相差约五倍。不过材料对单位和尺度的表述并不统一,同时提到“additional homicides”和“municipality population homicide rate”。因此,这组数字足以说明估计分叉很大,却不足以让我们准确解释它对应多少起凶杀案,或效果的完整方向与现实含义。

真正的分叉藏在报错之后

初步诊断指向完全分离(Perfect Separation)。它是逻辑回归中的一种棘手情形:如果某个变量能把两类结果完美分开,常规估计会朝无穷大移动,无法稳定求解。好比一道分类题简单到某条规则能把答案全部切开,模型反而算不出一个有限、可靠的权重。

问题在于,不同软件遇到这种失败时可能采取不同动作。Cunningham 的描述是:有的软件直接拒绝计算;有的软件拒绝后仍传递了不可靠的结果;还有的软件退回到只对常数项运行 logit——也就是用于二分类结果的逻辑回归——尽管用户要求加入协变量。对大数值和 machine epsilon 的处理也可能参与其中。machine epsilon 指计算机能够区分的、非常接近 1 的最小数值间隔,它会影响程序如何判断两个数字是否足够接近。

这些都只是材料中的初步判断,原文用了“似乎来自”“与……有关”一类措辞,尚不能断言某个机制单独造成了全部差异。值得注意的是,把协变量转换为 z-scores 也没有消除分歧。z-score 会把不同量纲的变量转换到可比较的尺度;这一尝试未奏效,说明问题至少不像“数字大小不一致”那么简单。

复现需要保存软件的脾气

这个案例把分析多宇宙(Multiverse Analysis)又推开了一层。同一研究问题本来就存在许多合理选择:用哪些变量、怎样清洗数据、采用什么规格,每种组合都是一条分析路径。现在,软件默认值和失败后的回退动作又增加了一批研究者未必看得见的岔路。

这也是它最值得关注的地方。计算可复现性不只意味着公开数据和代码,还要固定软件版本、默认参数、缺失值规则及报错处理。否则,两段代码即使都写着同一种模型名称,底层执行的计算也可能不同。对使用观察性数据的研究来说,这种差异还会一路传导到最终的政策效果估计。

局限与未知

  • 目前只有单一转述信源,缺少原帖、代码、数据、软件版本和逐包输出,无法独立复核 96 次运行。
  • 完全分离、失败回退、大数值和 machine epsilon 都只是候选解释,各自贡献多大尚不清楚。
  • ATT 的确切单位、尺度及正负方向表述含糊,因此不宜把 0.45、2.38 直接换算成现实中的凶杀案数量。

供稿材料 SOURCES — 1

← 返回 2026-07-29 · 数据板块