2. 常见静态阈值方法的局限性:固定上下限、移动平均、百分比法

做质控这些年,我见过最多的坑,就是老老实实用静态阈值。你设定一个固定值,前三个月还挺好,第四个月开始天天报警。为什么?因为数据不走寻常路。机器会磨损,原料批次会变,环境温湿度会波动。你用死线去卡活数据,它不报警才怪。

这章我就帮你拆一拆,三种最常见的静态阈值方法,到底哪里不好使。你对照自己的业务,看看中了几枪。

2.1 固定上下限法(硬阈值)

这是最原始的做法。设定上界 UCL、下界 LCL,数据一出界就报警。

# 固定上下限示例
UCL = 105.0
LCL = 95.0

if value > UCL or value < LCL:
    print("报警:超出固定阈值")

我见过一个产线,压力监控设了上下限,结果冬天供暖后压力整体上漂,固定上限没调,一整个月都在误报。后来干脆把报警给屏蔽了——那才是最可怕的事。

⚠ 最要命的副作用:固定上下限对均值漂移完全失明。数据整体偏移但还在“限内”,你就永远看不见问题正在悄悄恶化。

固定上下限还有个大问题:你很难找到完美的边界。设宽了漏报,设窄了虚警。我曾在一个半导体项目中,根据三天调试数据定了阈值,结果换了一个批次材料,虚警率窜到 40%。

说白了,固定上下限只适合那些物理约束明确的场合——比如温度绝对不能超过某个熔点,或者压力不能超过容器耐受值。对普通的过程控制,它就是个睁眼瞎。

2.2 移动平均法(滑动窗口均值)

很多人觉得固定阈值不行,那就做个移动平均吧,抵消短时波动。想法没错,但移动平均有它的致命伤。

# 移动平均示例
window = 5
rolling_mean = data.rolling(window).mean()

if abs(rolling_mean[-1] - rolling_mean[-2]) > limit:
    print("报警:滑动均值变化过大")

移动平均的问题出在“滞后”上。窗口越大,曲线越平滑,但信号越晚才到报警。我记得有一次排查 PCB 厚度数据,窗口设了 20 个点,等均值线跨过阈值,不合格的产品已经堆了 80 个。

  • 滞后性问题:窗口宽了,报警延迟;窗口窄了,噪声过滤不掉。
  • 突变弱化:单个剧烈异常被周围正常点稀释,平均值看着还行,但其实过程已经坏了。
  • 边界丢失:窗口头部的数据只有短暂的移动平均,初期检测基本是空的。
  • 周期数据失效:数据有日周期或班次周期时,移动平均把周期性当噪声平滑掉,你根本看不到规律。
💡 什么时候能用移动平均?我个人习惯是:如果你所在的过程足够平稳、变化非常缓慢,而且你能接受 3-5 分钟的报警延迟,那移动平均勉强胜任。否则,千万别依赖它。

2.3 百分比法(固定倍率警戒线)

另一种省事的做法:取历史均值的 ±5% 作为阈值,或者设定当前值超出均值 30% 就报警。这个做法,我愿称之为“最伪的量化管理”。

# 百分比法示例
mean_val = 100.0
threshold = 0.05   # ±5%

upper = mean_val * (1 + threshold)
lower = mean_val * (1 - threshold)

if value > upper or value < lower:
    print("报警:超出百分比阈值")

百分比法有一个根本缺陷——它不知道你的数据本来有多散。对于一个标准差只有 1 的过程,±5% 的窗口已经很大了,等数据跑出去,已经是严重事故;但一个标准差 10 的过程,±5% 根本不够用,天天误报。你调一个百分比,对两种场景不可能都合适。

我曾经在一条电子元件生产线上踩过这个坑。老板说:设定 ±10% 当阈值。结果一个型号的电阻测量值本来就很集中,±10% 的窗口几乎从不报警;换了另一个型号,测量值散布很大,±10% 天天报警。为什么?因为百分比不知道“变异系数”是什么概念。

❌ 百分比法的三个逻辑漏洞:
  1. 无视数据真实分布,用相对比例代替统计特性。
  2. 对零点和量纲敏感,换算单位后比例数值不变,但业务含义变了。
  3. 无法区分正常波动和异常漂移——百分比只关心中间值的位置,不关心散布。

更让我难受的是,很多团队用百分比法给 KPI 定指标,比如“响应时间不能超过均值的 20%”。你想想看,当均值自己也在漂的时候,这个 20% 什么也拦不住。

2.4 三类方法局限性的横向对比

对比维度 固定上下限法 移动平均法 百分比法
均值漂移检测 不敏感 有滞后 完全失效
散布变化检测 不敏感 不敏感 不敏感
应对周期性数据 不适用 破坏周期 不适用
初期数据需求 需要历史极限 窗口积累后才工作 需要稳定均值
对噪声容忍度 极低 中等 极低
主观调参风险 高 中 极高

这张表你仔细瞄一眼。你会发现,三种方法有一个共同的死穴——它们都关注“位置”而不关注“散布”。数据散开了,均值没变,三种方法一个也发现不了异常。

三种静态阈值方法的核心局限性 常见静态阈值方法 固定上下限法 • 均值漂移不可见 • 误报/漏报平衡难 • 只适合物理硬约束 移动平均法 • 报警滞后明显 • 突变被平滑弱化 • 对周期数据无效 百分比法 • 无视数据分布形态 • 对散布变化无感 • 调参靠运气 三种方法的共同盲区 只关注“均值位置”,忽略“数据散布”的变化
⚠ 实战重灾区:我曾见过某团队同时用固定上下限做进料检验、移动平均做过程控制、百分比法做出货质检——三个方法互相不一致,同一个产品前工序判合格,后工序判不合格。这样的质控体系,不是监控,是制造混乱。

看完这些局限性,你就明白了——静态阈值不是不能用,但它的使用条件非常苛刻。数据必须稳定、周期不允许有、散布不能变、均值不能漂……这些条件在真实产线上几乎凑不齐。

我个人习惯是,只有当过程处于认证后的初期稳定期(而且我确认过没有季节性波动)才敢用静态阈值,并且每周至少检查一次是否需要调整参数。即便如此,风险仍然在。

那怎么办?别急。阈值设定一定要跟着数据的节奏走。后面的章节,我会告诉你什么是真正的动态阈值——让阈值自己去适应数据的变化。