鲁棒离群值筛选:IQR fence 与鲁棒均值/方差(数学说明)

本文档聚焦于一种在统计物理/蒙特卡洛数据分析中非常常见的鲁棒统计策略:

  • Tukey 的 IQR fence(四分位距栅栏)剔除极端离群值;
  • 在剩余样本上计算均值/标准差,得到对“极少数异常点”不敏感的统计量。

典型应用场景包括:

  • binning 后的统计量仍残留偶发 spike;
  • bootstrap/重采样的拟合参数分布中,极少数迭代落入不物理的局部极小值(例如临界点 Tc 跑到远离数据范围的负数),导致普通 mean/std 被严重“污染”。

1. 问题:为什么普通 mean/std 会被极端离群值污染?

给定一组样本:

$

{xi}{i=1}^n\subset\mathbb{R}, $

普通样本均值与样本标准差为

$

\bar{x}=\frac{1}{n}\sum{i=1}^n xi,\qquad s=\sqrt{\frac{1}{n-1}\sum{i=1}^n (xi-\bar{x})^2}. $

当存在极少数 $|x_i|$ 极大的离群点时:

  • \[\bar{x}\]

    会向离群点方向明显偏移;
  • \[s\]

    会被离群点的平方项放大,导致误差条失真。

这类“离群点”往往不是物理分布的真实尾部,而是算法层面的异常:例如某一次拟合收敛到不物理局部极小值。

2. IQR 与 Tukey fence(箱线图规则)

2.1 四分位数与 IQR

定义第一/第三四分位数(25% 与 75% 分位):

$

Q1 = \mathrm{Quantile}{0.25}({xi}),\qquad Q3 = \mathrm{Quantile}{0.75}({xi}). $

四分位距(interquartile range, IQR):

$

\mathrm{IQR} = Q3 - Q1. $

IQR 的特点:

  • 仅由中间 50% 的样本决定,对极端尾部天然不敏感;
  • 因此常被用来构建鲁棒的离群值判据。

2.2 Tukey fence

给定倍数 $k>0$,定义下/上栅栏(fence):

$

L = Q1 - k\,\mathrm{IQR},\qquad U = Q3 + k\,\mathrm{IQR}. $

保留位于区间 $[L,U]$ 内的样本集合:

$

S = {xi\mid L\le xi\le U}. $

$S$ 之外的点视为离群值并剔除。

3. “很宽松的 fence(k=10)”是什么意思?

经典箱线图中,常见的经验值是:

  • \[k=1.5\]

    :mild outliers(温和离群)
  • \[k=3\]

    :extreme outliers(极端离群)

在 bootstrap 拟合参数分布中,我们通常不希望“清洗正常波动”,而只想去掉极少数极端不物理解

因此可以选取一个非常大的 $k$(例如 $k=10$):

  • 对正常统计波动而言,fence 会非常宽,几乎不会删点;
  • 但对于像 Tc=-8.6 这种远离主体分布的点,仍会被剔除。

3.1 正态分布量纲解释(近似)

若样本近似来自正态分布 $x\sim\mathcal{N}(\mu,\sigma^2)$,则

  • \[Q_1\approx \mu-0.674\sigma\]

  • \[Q_3\approx \mu+0.674\sigma\]

  • \[\mathrm{IQR}\approx 1.349\sigma\]

因此

$

L\approx \mu-(0.674+1.349k)\sigma,\qquad U\approx \mu+(0.674+1.349k)\sigma. $

$k=10$ 时,fence 大约覆盖

$

\mu\pm 14.16\sigma. $

这几乎不会删除正态分布的真实样本,但能有效屏蔽“算法性离群点”。

4. 鲁棒 mean/std(在过滤后集合上计算)

对过滤后的集合 $S$(样本数 $|S|$),定义鲁棒统计量:

$

\bar{x}{\mathrm{robust}}=\frac{1}{|S|}\sum{x\in S} x, \qquad s{\mathrm{robust}}=\sqrt{\frac{1}{|S|-1}\sum{x\in S}(x-\bar{x}_{\mathrm{robust}})^2}. $

这样做的关键点是:

  • 过滤步骤用 IQR 构造边界(鲁棒);
  • 均值/方差步骤在主体样本上计算(仍保持与传统误差条的直观对应)。

5. 边界条件与工程化细节

在实际代码中,通常会加入一些保护条件以避免“过度处理”:

  1. 忽略非有限值:先丢弃 NaN/Inf(以及可选的 missing)。
  2. 样本数阈值:当 $n< n_{\min}$ 时不做 fence(例如 $n_{\min}=8$),因为分位数不稳定。
  3. IQR=0:若 $\mathrm{IQR}=0$,说明样本几乎退化为常数,此时 fence 无意义,跳过过滤。
  4. 过滤后为空则回退:若 fence 导致 $S=\varnothing$,回退到原样本(宁可不删,也不人为制造偏差)。

6. 与“dropmaxmin”剪裁的关系

另一种常见做法是排序后直接去掉最小/最大若干个值(trim):

  • dropmaxmin=1 等价于删除最小值与最大值各 1 个。

它与 IQR fence 的区别:

  • trim 的删除量固定(与分布形状无关);
  • IQR fence 的删除量自适应(由分布主体的 IQR 决定)。

在“极少数极端离群点”的场景下,IQR fence 往往更合适:

  • 不需要手动指定要删几个点;
  • 如果没有明显离群点,通常不会删点。

7. 诊断指标:删了多少点?

实务上建议同时输出:

  • 原始分布的 min, Q1, median, Q3, max
  • 过滤后的 mean_robust, std_robust
  • N_removed = n - |S|

若你发现 N_removed 很大(例如远超过个位数),往往意味着:

  • 分布严重多峰(拟合对初值很敏感),或
  • jitter 半径过大导致大量跑偏,或
  • 拟合窗口/模型假设与数据不匹配。

这时更应优先调整拟合策略(窗口/jitter/模型)而不是继续“更激进地删点”。