跳到主要内容

3σ 法则

一、直观理解:离开“平均 ± 三倍平常波动”就先亮黄灯​

3σ 法则(Three-Sigma Rule)把一列近似单峰、对称的数据想象成一条以均值为中心的道路:路面宽度由标准差 σ\sigma 刻画。走得离中心超过三条车道(3σ3\sigma)的点,先标成异常候选,再决定是测量错误、罕见事件,还是分布本身有厚尾。

在正态分布下有著名的经验覆盖率:

  • 约 68% 的数据落在 μ±1σ\mu\pm 1\sigma;
  • 约 95% 落在 μ±2σ\mu\pm 2\sigma;
  • 约 99.7% 落在 μ±3σ\mu\pm 3\sigma。

因此,若数据真近似正态,落在 3σ3\sigma 之外的点非常少,作为初筛阈值简单有效。工业质量控制里的控制图、数模竞赛里的传感器毛刺检查,都常从这一思想出发。

但务必建立正确预期:

  • 3σ 不是“凡越界必删除”的自动法令;
  • 偏态、重尾、多峰、混合总体下,“99.7%”不再成立;
  • 均值和标准差本身会被极端值污染,出现“异常把门槛抬高、再藏住自己”的现象。

二、适用场景与优缺点​

类型说明
适用场景单变量、近似正态或至少单峰对称的连续指标;传感器、实验重复测量中的毛刺筛查;需要可解释、可手算的初筛规则;样本量中等偏好、希望先得到候选名单再人工复核。
核心优点规则清晰、计算极快;与正态理论衔接自然;阈值 μ±3σ\mu\pm 3\sigma 便于写进论文与程序;可推广为 kσk\sigma(k=2.5,3,3.5k=2.5,3,3.5)做灵敏度分析。
局限与缺点强依赖对称近似正态;被异常值反向污染(非稳健);多变量相关结构下的联合异常看不出来;时间序列中的水平漂移会导致大量误报;类别变量不适用。

使用 3σ 前通常需要完成以下检查:

  1. 画直方图、核密度或 Q-Q 图,判断是否大致单峰对称;
  2. 确认单位正确、无录入串位(如把 1.5 写成 15);
  3. 区分横截面与时间序列:后者可能需先去趋势、分期估计;
  4. 决定 kk 取 3 还是更松 / 更紧,并计划与箱线图等稳健方法对照;
  5. 明确“检出”之后的动作:复核、Winsorize、删除、还是单独建模。

三、核心原理:用位置 + 尺度构造截断区间​

1. 基本判定式​

对一维样本 x1,…,xnx_1,\ldots,x_n,先估计

μ^=xˉ=1n∑i=1nxi,σ^=s=1n−1∑i=1n(xi−xˉ)2\hat\mu=\bar x=\frac{1}{n}\sum_{i=1}^{n}x_i,\qquad \hat\sigma=s=\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar x)^2}

若

|x_i-\hat\mu| > k\hat\sigma

则将 xix_i 标为异常候选。经典 3σ 取 k=3k=3。

等价的区间形式:

xi∉[μ^−kσ^,  μ^+kσ^]x_i\notin \big[\hat\mu-k\hat\sigma,\;\hat\mu+k\hat\sigma\big]

2. 为何是“候选”而不是“错误”​

统计上的“罕见”≠ 业务上的“错误”。高考满分、极端天气、金融危机日收益率,都可能落在 3σ3\sigma 外,却是真实且关键的信号。3σ 的产出应是待核查列表,删除与否取决于题目目标。

3. 稳健改进:用中位数与 MAD​

为减轻“自己抬门槛”,可用:

m=median(x),MAD=median(∣xi−m∣)m=\mathrm{median}(x),\qquad \mathrm{MAD}=\mathrm{median}\big(|x_i-m|\big)

再构造

ziMAD=0.6745 (xi−m)MADz_i^{\mathrm{MAD}}=\frac{0.6745\,(x_i-m)}{\mathrm{MAD}}

当 |z_i^{\mathrm{MAD}}|>3 时标记(系数 0.6745 使正态下 MAD/0.6745\mathrm{MAD}/0.6745 与 σ\sigma 一致)。这常称为修正 Z 分数法,比经典 3σ 抗污染。

4. 多变量情形的局限​

逐列做 3σ 会漏掉“每个坐标都不极端、但组合不可能”的点。多变量异常需要马氏距离、LOF、隔离森林等。3σ 只负责单变量边缘筛查。

5. 与假设检验的关系​

在 X∼N(μ,σ2)X\sim N(\mu,\sigma^2) 且参数已知时,P(|X-\mu|>3\sigma)\approx 0.0027。参数未知、样本有限时,这只是近似规则,不是精确的假设检验 pp 值程序。

四、关键决策 / 如何选参数​

1. 倍数 kk 怎么选​

kk倾向适用直觉
2 ~ 2.5更严,候选更多质量控制、对毛刺零容忍
3默认近似正态的通用初筛
3.5 ~ 4更松略重尾、或样本很大不想误报过多

应报告不同 kk 下的检出个数,避免“只展示对结论有利的一种阈值”。

2. 是否迭代删除​

有人反复:估 μ,σ\mu,\sigma → 删越界点 → 再估……直到收敛。这会强烈改变分布,只建议在确认是仪器错误且比例极低时谨慎使用,并完整记录每一轮。

3. 分组还是全体​

男女身高、不同工艺批次混在一起,组间差会被当成异常。应按自然组别分别估计 μ,σ\mu,\sigma,或先建模去掉固定效应再检查残差。

4. 样本太小​

n<30 时 ss 本身很不稳,3s3s 界限可能离谱。宜改用箱线图、或结合业务上下限。

5. 与训练集 / 测试集​

若异常规则用于特征清理并影响后续模型,应在训练折上估计 μ,σ\mu,\sigma,再应用于验证折;并说明测试阶段是否允许“新出现的极端真实值”。

五、MATLAB 示例​

% 构造近似正态主体 + 两个明显毛刺
rng(1);
x = [10 + 1.2 * randn(40, 1); 80; -5]; % 最后两个为异常候选

% ----- 经典 3σ -----
mu = mean(x);
sigma = std(x, 0); % 样本标准差
k = 3;
lower = mu - k * sigma;
upper = mu + k * sigma;
isOut_3s = (x < lower) | (x > upper);

% ----- 稳健版:修正 Z 分数(MAD)-----
med = median(x);
MAD = median(abs(x - med));
if MAD == 0
zMad = zeros(size(x));
else
zMad = 0.6745 * (x - med) / MAD;
end
isOut_mad = abs(zMad) > 3;

T = table(x, isOut_3s, abs((x - mu) / sigma), isOut_mad, abs(zMad), ...
'VariableNames', {'x', 'out_3sigma', 'abs_z', 'out_MAD', 'abs_zMAD'});
disp(T);

fprintf("3σ 区间: [%.3f, %.3f], 检出 %d 个\n", lower, upper, sum(isOut_3s));
fprintf("MAD 法检出 %d 个\n", sum(isOut_mad));

% 可视化
figure;
histogram(x, 15); hold on;
xline(lower, "--r", "\mu-3\sigma");
xline(upper, "--r", "\mu+3\sigma");
xline(mu, "-k", "\mu");
scatter(x(isOut_3s), zeros(sum(isOut_3s), 1) + 0.5, 60, "r", "filled");
title("3\sigma 法则筛查");
xlabel("x"); ylabel("频数");
grid on;

% 不同 k 的灵敏度
ks = [2, 2.5, 3, 3.5, 4];
counts = arrayfun(@(kk) sum(abs(x - mu) > kk * sigma), ks);
disp(table(ks', counts', 'VariableNames', {'k', 'n_outliers'}));

对数据矩阵按列筛查:

X = [x, 100 + 5 * randn(size(x))]; % 第二列干净
muX = mean(X, 1);
sigX = std(X, 0, 1);
isOutMat = abs(X - muX) > 3 .* sigX; % 隐式扩展
disp("各列检出个数:");
disp(sum(isOutMat, 1));

六、如何解释结果​

输出应理解为:

在“数据近似正态、用样本均值和标准差刻画中心与波动”的假设下,这些点的偏离程度超过了预设倍数。

报告建议包含:

  1. 变量名、样本量、是否分组估计;
  2. μ^\hat\mu、σ^\hat\sigma、kk 与具体区间;
  3. 候选点的索引、原始值、对应 ∣z∣|z|;
  4. 分布诊断图(直方图 / Q-Q)——证明方法假设是否勉强成立;
  5. 与箱线图或 MAD 法的对照结果;
  6. 对每个(或每类)候选点的处置:保留 / 修正 / 删除 / 单独分析,以及理由;
  7. 处置前后下游模型指标的变化(敏感性分析)。

若 3σ 一个都检不出,而箱线图检出很多,通常说明分布偏态或有不对称长尾,应改用稳健方法并在论文中解释差异。

七、常见误区​

1. 把 3σ 当成任意分布的普适定律​

没有正态或至少对称单峰,“99.7%”叙事不成立。幂律、指数分布的右尾会系统性“越界”。

2. 检出后无脑全部删除​

可能删掉的正是研究事件(故障、违约、极端需求)。先分类:错误值 vs 真实极端值。

3. 用已被污染的 μ,σ\mu,\sigma 做唯一依据​

少数极大值抬高 ss,导致边界外扩、漏检。应并行报告 MAD 法或先修剪再估。

4. 在明显分组的数据上整体套 3σ​

混合分布的组中心差会被当成离群。

5. 对多变量问题只做逐列 3σ 并声称“已处理全部异常”​

边缘正常、联合异常仍然存在。

八、小结​

3σ 法则用“均值 ± kk 倍标准差”快速标出单变量上的极端候选,在近似正态的测量数据上简单、好讲、好复现。

它的核心思想可以概括为:

先用中心和典型波动搭一条安全带,再把冲出安全带的点拉出来人工问责。

它适合作为异常排查的第一道闸,而不是最终判决。论文中应展示分布假设、阈值灵敏度,并与稳健方法对照;候选异常的去留必须回到题目背景,而不是只看是否大于 3σ3\sigma。