MDE:实验设计的分辨率下限
定义
最小可检测效应(Minimum Detectable Effect, MDE):在给定的显著性水平、检验力、样本量和噪声水平下,一个实验设计能以规定概率检测出的最小真实差异。
它回答的不是”差异存不存在”,而是”这套仪器最小能看清多大的差异”:
- 真实差异 δ≥MDE:设计有规定把握(通常 80%)把它检出来;
- δ<MDE:即使差异真实存在,实验也有很大概率报”不显著”——测了约等于白测。
配对设计的显式公式
对 n 对配对样本(本项目:同一路线在 UE4/UE5 两侧的成绩配对),用配对 t 检验反解:
MDE=(t1−α/2,n−1+t1−β,n−1)⋅nσd
- α:显著性水平(惯例 0.05,双侧),t1−α/2,n−1 是自由度 n−1 的 t 分布临界值;
- 1−β:检验力(惯例 0.80),t1−β,n−1 是相应分位数;
- σd:逐路线差值的标准差——噪声直接进入公式,这就是”先测噪声再谈差异”的数学原因;
- n:样本量的收益是平方根级的,想减半 MDE 需要 4 倍样本。
读法
MDE 把四个设计参数(α、检验力、n、σd)折成一个单一数字,直接回答”我的实验分辨率够不够”。它必须在看到结果之前算好或登记(预登记),否则容易滑向”结果不显著就加样本加到显著为止”的违规操作。
参考
检验力:假设差异存在,你能检出它的概率
两类错误
假设检验在”差异不存在”(H0)与”差异存在”(H1)之间判决,有两类互斥的错误:
| H0 为真(无差异) | H1 为真(有差异) |
|---|
| 判”不显著” | 正确 | 第二类错误(概率 β,漏报) |
| 判”显著” | 第一类错误(概率 α,误报) | 正确(概率 1−β,检验力) |
p 值和 α 管的是误报率;检验力(statistical power)1−β 管的是检出率。统计惯例要求检验力约 80%(β=0.2)。
检验力的三个旋钮
power=f(n↑,σd↓,∣δ∣↑)
- 样本量 n 越大,均值的标准误 σd/n 越小,检验力越高;
- 噪声 σd 越大,信号被淹没得越狠,检验力越低;
- 真实差异 ∣δ∣ 越大,越容易被检出——这是唯一不归实验者控制的旋钮。
MDE 就是把检验力公式反过来用:固定 power = 0.80,解出能被检出的最小 δ。
检验力不足的两个后果
- 漏报:真实差异被判”不显著”——本实验 SimLingo +6.76 的情形;
- 胜者诅咒(winner’s curse):低检验力下仍能显著的结果,其效应量被系统性高估——因为只有涨得特别离谱的样本才能越过显著性门槛。所以低 power 的实验里”显著”和”不显著”都不可全信。
“检验力不足的实验是蒙着眼睛找差异”的准确含义:不是找不到,而是找到的和找不到的都不能下结论。
参考
为什么 n=10 配对下 MDE 恰好约等于噪声
代入数字
配对 t 检验的 MDE 公式(符号含义见”MDE 定义”一篇):
MDE=(t0.975,9+t0.80,9)⋅10σ^d
n=10、α=0.05 双侧、检验力 0.80 时:t0.975,9=2.262,t0.80,9=0.883,常数项
102.262+0.883=3.1623.145≈0.9947
恰好在 1 附近——这是”n=10 配对下 MDE ≈ 噪声水平”这条经验换算的全部来源。它不是什么普遍定律,而是 t 临界值之和与 10 的数值巧合。
本实验的两组代入
项目以重跑噪声(逐路线配对差值的绝对值均值)作为 σ^d 的代理(summary.json 中的 noise_proxy 字段):
- SimLingo:0.9947×20.74=20.63
- AutoMoT:0.9947×1.90=1.89
与 EXP-T3.5-cp3/summary.json 的 mde_final 逐项一致。两组的 MDE/noise 比值都是 0.99。
口径与注意事项
- noise proxy 是均值绝对差,不是差值的标准差。严格配对 t 检验里 σ^d 应是逐路线差值的样本标准差;本项目差值是双峰分布(两条翻转 + 八条近零),标准差本身不稳定,用绝对值均值作噪声标尺是工程上的保守选择,MDE 的解释相应降级为”分辨率粗标尺”。
- 换算只在此 n 成立。MDE 按 1/n 缩放:路线扩到 20 条,常数变为 (t0.975,19+t0.80,19)/20=(2.093+0.861)/4.472≈0.66,同噪声下 MDE 缩到约 0.66×20.74≈13.7。这就是”扩路线压 MDE”的定量依据(见”扩种子还是扩路线”一篇)。
参考
没有证据 ≠ 证据为无
两种说法的实质性差别
观测到 +6.76、检测下限 20.63 之后,两种表述在逻辑上不等价:
- 错误:“渲染升级没有提升 SimLingo”——这是对 δ=0 的断言,而实验没有能力做出这个断言(MDE 20.63 意味着 0 和 +20 之间的任何真值都会产生同样的观测分布);
- 正确:“观测到正向差异,在当前检验力下不显著”——报告观测方向 + 显式声明仪器的分辨能力边界。
统计学经典表述是 absence of evidence is not evidence of absence(没有证据不等于证据为无)。“不显著”是关于实验与数据的陈述,不是关于世界的陈述。
为什么错误说法危害更大
“没有提升”会被下游引用成事实性结论,直接关闭后续研究方向;而”本设计测不出”保留着两个开放分支:差异可能真实存在(只是仪器不够格),也可能确实为零。诚实的表述把判断权连同噪声、MDE、样本边界一起交给读者——本实验 CP5 终审报告的口径即”结论限定在受控对齐条件下的存在性案例,每个结论附噪声、MDE、边界三个条件”。
可审计表述的最小要素
一个可复核的”不显著”结论应同时给出:
- 观测值:+6.76(不是 0,也不是”没变化”);
- 仪器分辨率:MDE 20.63、噪声 20.74(说明为何不能下断言);
- 边界条件:n=10 条百米级对齐路线、单 Town10、白天锁死——超出此域不外推。
参考
分辨率的来源:噪声除以根号 n
两个模型的公式对照
同一组 10 条路线、同一个评分器、同样的配对设计,MDE 公式里唯一不同的输入是噪声 σ^d:
MDE=0.9947×σ^d
- AutoMoT:行为稳定,重跑零差异或近零差异,σ^d=1.90 → MDE = 1.89
- SimLingo:卡死翻转主导,σ^d=20.74 → MDE = 20.63
分辨率差了 11 倍,完全由模型行为稳定性这一个变量决定。模型稳定性就是实验仪器的画质。
反解 SimLingo:要让 +6.76 显著需要什么
设观测差异 δ=6.76 恰好等于 MDE,解出对噪声的要求:
σ^d≤0.9947δ≈6.79(n=10)
即在不扩样本的前提下,需要把重跑噪声从 20.74 压到 6.8 以下——对二元翻转主导的噪声,这等价于”消除大部分临界路线”,不现实。另一条路是扩 n:
MDE≈n3.145×σ^d<6.76⇒n>6.763.145×20.74≈9.65⇒n≥94
n=10 时要 94 条路线才够——这就是”检验力定格在十条”的真实含义:差距不是一星半点,而是接近一个数量级。(注:常数随自由度变化,n 变大后 t 趋近 z,上式为近似。)
容易看错的点
- MDE 小不是”实验做得好”的勋章,MDE 大也不是——它如实反映被测对象的稳定性。AutoMoT 的 1.89 是模型自己挣来的分辨率。
- 两个模型用同一把”设计尺子”(n=10 配对),但每把尺子实际的分辨率是设计 × 被测对象共同决定的。
参考
预登记:把”事后挑说法”变成”按规章执行”
规则本身
本项目风险登记册(docs/plan/03-risks.md R16,编号 R4-N1)在跑实验之前就写死了治理规则:
- MDE ≤ 5 个 DS 点,或 MDE ≤ 观测差异 → 维持原设计,正常下结论;
- MDE > 5 个 DS 点且吃掉观测差异 → 自动触发扩容讨论,在 CP3 检查点对账,备选项:seeds 3→5 或扩路线集;
- 不显著时的报告口径同步写死:“在检验力 X 下未观察到显著差异”,禁止为凑显著性改口径。
另有一条结构性约束:CP3 是最后一个治理点,过了 CP3 样本量锁死,之后任何”再加点数据试试”都不可行。
实际对账
SimLingo 的 MDE 算出 20.63,超过 5 分警戒线四倍,且远大于观测差异 +6.76——规则触发,扩容讨论必须展开。这不是研究者看到结果后的心情,而是预登记条款的机械执行:规则推着你走,而不是结果牵着规则走。
为什么预登记是防堕落装置
没有预登记,研究者手握无限的”分析自由度”:换口径、换子集、换统计检验,直到某个版本显著为止(p-hacking 的温床)。预登记把这些自由度在数据到来之前全部焊死:
- 结论强度由事前规则裁定,不由事后偏好裁定;
- 触发条款时留下的不是”要不要加样本”的纠结,而是”执行哪个已登记的扩容分支”的选择题;
- 报告可信度来自读者可以核对规则先于数据存在(本项目体现为 git 提交时间线与 CP 检查点报告链)。
参考
扩容的方向选择:砸向方差最大的分量
两个候选的对比
R4-N1 登记的扩容分支有两个,对症与否完全不同:
扩种子(3→5)——已被证伪。种子间波动与重跑噪声同样大(SimLingo 19.9 ≈ 12.91/20.74;AutoMoT 2.04 ≈ 1.90/0.00),说明种子抽样面对的是同一个混沌回路,加种子只是把同一种噪声重新掷几遍,1/S 收敛无从谈起。CP3 明确否决此分支。
扩路线(10→20)——直击方差大头。噪声的 96% 由 2/10 条路线的二元翻转贡献(UE5 侧两条翻转合计 199.3 / 总量 207.4)。路线数翻倍带来两层收益:
- 权重摊薄:单条翻转在均值中的权重从 1/10 降到 1/20,一条 ±100 分的翻转对均值的扰动从 ±10 分降到 ±5 分;
- MDE 收缩:MDE∝1/n,n 从 10 到 20,常数从 0.9947 降到约 0.66,同噪声下 MDE 从 20.63 压到约 13.7。
成本账为什么反常地便宜
扩路线方案的成本不对称:UE4 侧 20 条全量基线数据在 T1.2 复现时已跑完、已在盘上,零成本复用;UE5 侧只需补跑 10 条,约 6 小时 GPU。即只花一侧一半的钱,就把口径扩回 20 条、MDE 压缩约三分之一。
(该方案写入 CP3 报告待拍板,最终在时间预算内未执行,检验力定格在 n=10——按预登记口径,结论保持”不显著”。)
可复用的决策流程
扩容讨论的正确顺序:先做方差归因,再选扩容维度。
- 测 seed_spread 与 rerun noise,同尺度比较——判断噪声在种子维还是行为维;
- 看逐路线差值分布——判断噪声是否集中在少数路线;
- 只有方差大头所在的维度,扩容才有收益。本实验两条证据都指向路线维,种子维零收益。
参考
Spearman 相关:n=10 时直觉不能上桌
分析对象与结果
研究设计 R4-N2 想验证的间接归因链:逐路线的渲染域差距(KID,Kernel Inception Distance,衡量两组图像在 InceptionV3 特征空间分布差异的核距离指标)是否与分数变化幅度相关。用斯皮尔曼等级相关(Spearman’s rank correlation,对秩次而非原值计算的相关,对单调但非线性的关系稳健):
| 模型 | ρ | p 值 | 判定 |
|---|
| SimLingo | −0.382 | 0.276 | 不显著 |
| AutoMoT | −0.044 | 0.904 | 不显著 |
数据源:EXP-T3.5-cp3/summary.json · kid_vs_delta_correlation。
为什么 −0.382 的方向符合直觉也不算数
SimLingo 的 ρ=−0.382 方向上是”KID 越大、提升越小”,符合渲染归因的直觉。但 n=10 时,双侧 α=0.05 的 Spearman 临界值约为 ∣ρ∣≈0.648——样本量只够检出非常强的相关。−0.382 的绝对值远够不到门槛,p=0.276 意味着纯随机排序也有 27.6% 的概率产生这么强的表观相关。
这是小样本相关分析的结构性事实:n=10 的检验力只配称为探索性分析,其产出是”生成假设”,不是”验证假设”。方向再怎么顺眼,p 值不合格,直觉就不能被端上桌写进结论。
报告口径
CP3 报告的处理方式:如实给出两个 ρ 和 p 值,标注”n=10 探索性”,并明确写”本设计内未获得掉分与渲染域差距相关的统计证据”。没有隐藏不利的 p 值,也没有把方向一致的 −0.382 当成”弱证据”包装——弱证据在 n=10 这个检验力下根本不存在,只有”检出”与”未检出”。
参考
相关性分析的前提:因变量得先存在
逻辑链条的断裂点
研究设计里的归因链是:渲染域差距(KID)→ 性能掉分(ΔDS < 0)→ 逐路线相关性。这条链要能运转,第二步必须先有货——得有真实观察到的掉分,才有”掉分大小”这个因变量可供相关分析。
实测结果:两个模型 UE5 zero-shot 的批次均分变化都是正的(SimLingo +6.76,AutoMoT +32.90),零掉分。于是:
- 逐路线 ΔDS 里虽然仍有正负波动(SimLingo 有 −41.1 到 +83.7 的路线级起伏),但没有一个可被确认的”掉分事件”——所有负 ΔDS 都在噪声带内,无法与随机翻转区分;
- “掉分与 KID 相关”这个命题失去了研究对象,归因链在第一环就断了。
为什么这不能算”相关分析失败”
统计上,相关分析要求因变量有真实方差。当观测到的 ΔDS 方差主要来自重跑噪声(而非对渲染差异的系统性响应)时,算出的 ρ 量是”噪声与 KID 的相关”,不是”掉分与 KID 的相关”——即使它碰巧显著,也不支持原命题。这与 p 值无关,是命题可检验性的问题。
负结果的规范报告
“没测到掉分”本身是好事(说明 UE5 迁移无伤害),但它同时注销了一条预登记的分析路线。规范的处理是三层都写清楚:
- 事实层:未观察到掉分,两模型方向均为正;
- 推断层:R4-N2 归因链在本对齐集上不可检验,报告按此口径(CP3 §四、CP5 §五-1 原文:“渲染归因的间接证据链在本对齐集上不成立”);
- 边界层:不据此断言”渲染差距永远不会导致掉分”——更长路线、更难场景下命题仍可能可检。
负结果按负结果的规范报告,与研究失败是两回事:问题被诚实地收窄了,而不是被掩盖了。
参考
统计不显著时的三种堕落姿势及其对策
姿势一:p 值操纵(p-hacking)
换着法子切数据、换统计检验、换子集、换离群点规则,磨到某个版本 p < 0.05 为止。根源是”分析自由度的花园小径”(garden of forking paths):每一步选择都看似无害,但选择是在看到数据之后做的,多重比较的假阳性率随之爆炸——20 种切法里平均就有 1 种天然显著。
对策:预登记。分析规则先于数据写死(本项目 R4-N1/R4-N2 均登记在风险册),结果出来照章执行。
姿势二:摘樱桃(cherry-picking)
只报告支持结论的切片。对应本实验的诱惑:10 条路线里 7 条上涨、3 条下跌,只讲那 7 条就是一篇”渲染升级有效”的故事。隐蔽之处在于每一条被报告的数据都是真的,造假发生在选择里而非数据里。
对策:全量公开。逐路线配对表(含 3 条下跌和 2 条翻转)随结论一起发布,读者可自行重算均值与噪声。
姿势三:过度概括(overgeneralization)
把小样本、受控条件下的结果说成普适定律。对应本实验的诱惑:把”10 条百米级 Town10 短路线、白天锁死”的结论写成”UE5 渲染对 E2E 模型无害”。结论的外推边界(路线长度、场景多样性、天气、模型族)必须显式写进 limitation。
对策:口径随结论走。每个结论附边界条件;CP5 的做法是固定 limitation 节 + 结论措辞限定为”受控对齐条件下的存在性案例证据”。
三者的共同结构
三种堕落共享一个机制:用观测后(post-hoc)的自由度伪装观测前(pre-hoc)的结论强度。对策也共享一个机制:把自由度尽量前移、锁死、公开——预登记锁分析、全量公开锁选择、边界声明锁外推。
参考