机器学习数学基础 120 章

多重比较与选择偏差

层级:C|深入

1. 尝试越多,偶然“最好”越容易出现

同时检验 100 个无效特征、训练 500 个超参数组合或反复切数据,至少一个看起来显著/优秀的概率远大于单次错误率。选择过程必须算入不确定性。

2. Family-wise error rate

FWER 是一组检验中至少一个第一类错误概率:

FWER=P(V1),FWER=P(V\ge1),

VV 为假拒绝数。若 MM 个独立真原假设各用 α\alpha

FWER=1(1α)M.FWER=1-(1-\alpha)^M.

M=20,α=0.05M=20,\alpha=0.05 时约 0.642,而非 0.05。

3. Bonferroni 与 Holm

Bonferroni:每项用 α/M\alpha/M,由 union bound 保证 FWERα\le\alpha,无需独立,但可能保守。

Holm step-down:排序 p 值,从最小开始与 α/(Mk+1)\alpha/(M-k+1) 比较,控制 FWER 且不比 Bonferroni 差。

相关检验或特定结构还有 Hochberg、Westfall–Young 等。

4. False discovery rate

FDR=E[Vmax(R,1)],FDR=E\left[\frac{V}{\max(R,1)}\right],

RR 是拒绝总数。Benjamini–Hochberg(BH)在独立/某些正依赖条件下控制 FDR:排序 p(k)p_{(k)},找最大 kk 满足

p(k)kMq.p_{(k)}\le\frac{k}{M}q.

拒绝前 kk 项。FDR 适合大规模发现,不等同“每个被发现项有 qq 概率错误”。

5. 置信区间与多重性

每个参数 95% 区间不保证所有区间同时 95% 覆盖。Bonferroni simultaneous interval 可用单项置信水平 1α/M1-\alpha/M;回归曲线可用 confidence band。

只报告筛选后显著项的普通区间会过窄并远离零,称 winner's curse。

6. 模型/超参数选择偏差

在同一验证集比较 MM 个模型,取最好者:

m^=argminmR^val(m).\hat m=\arg\min_m\hat R_{val}(m).

即使每个验证误差近似无偏,最小值因选择而向下偏。候选越多、验证噪声越大,偏差越强。

解决:独立测试集、嵌套 CV、减少无原则搜索、报告搜索空间与所有试验、重复评估。

7. 数据窥探与 researcher degrees of freedom

选择指标、子群、时间窗、异常规则、模型、特征、种子、停止时点中的任何一步若由结果驱动,都增加隐性多重性。只对最终 p 值做三项校正,无法修复未记录的数百次探索。

预注册、不可变实验配置、完整日志与 exploratory/confirmatory 分离能降低风险。

8. 特征筛选泄漏

先用全数据筛选与标签相关的特征,再做 CV,会让验证折标签影响特征集合。正确做法:在每个训练折内部重新执行所有监督筛选与预处理,再应用到该验证折。

无监督预处理如标准化也应在训练折拟合,以避免分布信息泄漏。

9. 排名与赢家诅咒

观测分数

θ^j=θj+ϵj.\hat\theta_j=\theta_j+\epsilon_j.

选择最大 θ^\hat\theta 的对象通常同时有较大真实值和正噪声,所以后续复测会回落。体育、基金、模型榜单和特征效应都如此。

层级收缩、empirical Bayes 和独立复现可缓解。

10. 子群分析

大量人群切片必然发现某些极端差异。应:

  • 预设关键子群;
  • 考虑交互检验而非各组分别显著与否;
  • 校正多重性;
  • 保证每组样本与隐私;
  • 独立复现;
  • 避免把探索发现当因果结论。

“A 组显著、B 组不显著”不等于两组效果显著不同。

11. 早停与 checkpoint 选择

用验证集每 epoch 选最好 checkpoint 也是多次选择。通常必要,但最终泛化评估应在未参与早停的测试集。模型越大、训练越久、查看越频繁,验证集也可能被逐步过拟合。

12. 多随机种子

只报告最好种子是选择偏差。应预设种子数,报告均值、标准差/区间和配对差异;调参所用种子与最终评估种子应区分。对随机性大的方法,单次 seed 结论很脆弱。

易错点

  1. 单项 α=0.05\alpha=0.05 不控制一组实验 FWER。
  2. FDR 不是单个发现错误概率。
  3. 搜索后最佳验证分数有乐观偏差。
  4. 全数据特征筛选后 CV 是泄漏。
  5. “一组显著一组不显著”不证明组间差异。

常见问答

Q1:超参数优化是否需要 p 值校正?

通常不直接做经典 p 值校正,而用嵌套验证/独立测试估计完整选择流程;原理仍是把搜索纳入评估。

Q2:Bonferroni 太保守怎么办?

根据目标选 Holm、BH、置换 max-T、层级检验或预设主指标。不能因保守就完全忽略多重性。

Q3:公开榜单为何容易被过拟合?

参赛者反复根据榜单反馈修改,相当于对固定测试子集进行适应性查询,最终排名误差乐观。

练习

  1. 20 个独立真原假设各 0.05,FWER 约多少?
  2. Bonferroni 每项阈值是什么?
  3. FWER 与 FDR 区别?
  4. 嵌套 CV 外层和内层分别做什么?
  5. 为什么最好 seed 不能代表方法?

答案与提示

  1. 10.95200.6421-0.95^{20}\approx0.642
  2. 0.05/20=0.00250.05/20=0.0025
  3. 前者控至少一个假阳性,后者控发现中假发现比例的期望。
  4. 内层选模型/超参,外层评估整个选择流程。
  5. 它同时选择了有利随机噪声,产生 winner's curse。