累积和(CUSUM)控制图 · 互动讲解

依据 GB/T 17989.4-2020《控制图 第4部分:累积和控制图》(修改采用 ISO 7870-4:2011)

统计学小白友好 单文件 · 离线 · 零依赖 13 节 · 可拖拽演示 · 3 个计算器

① 缘起:为什么还要学 CUSUM?

你已学过常规(休哈特)控制图。它很好,但对很小的过程偏移反应迟钝——这正是 CUSUM(Cumulative Sum,累积和)要解决的。

常规控制图用“单点是否越出 ±3σ 控制限”来报警。但如果过程均值只是悄悄地从 10.0 滑到了 10.3(仅 0.3σ),单个点几乎都不会越限,要等几十个点才偶然“抓到”一个。这种微小但持续的漂移,休哈特图很吃力。

CUSUM 的思路很朴素:把每个观测值与目标值的偏差累加起来。偶尔的噪声会正负抵消,但持续的方向性偏移会不断累积,像滚雪球一样很快露出马脚。标准里用了一个很生活化的比喻——

🏌️ 高尔夫记分卡:球员每洞用“实际杆数 − 标准杆”记分,再把各洞偏差累加。单洞打平(+0)没信息,但连续几洞都 +1、+2……累积和曲线就会一路向上爬,立刻暴露“状态在变差”。这就是累积和方法的本质。

CUSUM 控制图是常规控制图的有益补充:对小偏移更敏感、更易用,并且能精确定位变点(过程到底是什么时候开始变坏的)。本讲解按“直觉 → 公式 → 手算 → 判异方案 → 方案设计”的顺序展开。

📌 本页所有交互完全离线。你可以拖动滑块、点“载入示例”,看到数字实时变化——这正是把标准“读活”的方式。

② CUSUM 的基本思想 & V 型模板几何

CUSUM 图 = 把“每个观测值 − 目标值”依次累加后描点。曲线的斜率就代表当前均值相对目标值的偏差。

2.1 核心公式(最朴素形式)

Ci = Ci−1 + (xi − T),其中 C0 = 0
T = 目标值(target);xi = 第 i 个观测值
上升段 ⇒ 均值 > T;水平段 ⇒ 均值 = T;下降段 ⇒ 均值 < T;越陡,偏差越大

下面这个演示用一段“有两次变点”的虚拟数据画累积和轨迹,并叠上一个 V 型模板(判定准则)。拖动滑块改变参考值 k 与决策区间 h,观察 V 型模板的形状和前导距离 d 如何变化,以及轨迹何时“游出”模板臂(报警)。

前导距离 d = h/k = 10.0
V 型模板的几何关系(标准图 5):臂的斜率 = k(即目标值 ±kσ 的过程水平线),垂直判定线高度 = h,前导距离 d = h/k(即把基点放在第 i 点,模板两臂在 i−d 处张开到决策区间)。“标准累积和”即 k=0.5σ、h=5σ,故 d=10。

③ 手算示例:电机电压(标准 6.1–6.7)

标准用一个 40 个电机电压值(目标 10 V)的例子,串起“折线图 → 单值休哈特图 → 累积和图 → 曼哈顿图”的完整对比。这里我们把累积和的计算做成可运行计算器。

3.1 构建步骤(标准第 5 章)

1
选一个参照值 / 目标值 T(过去结果的平均通常是不错的参照)。
2
按有意义的顺序(如时间)排列表格,对每个结果减去参照值。
3
把第 2 步的偏差逐步累加,将累加值描成累积和图。
4
为最佳视觉效果,点间画不宽于 2.5 mm 的水平刻度。
5
合理选刻度:纵坐标同间隔取 2σ(均值累积和则 2σ),避免过度敏感或迟钝。

3.2 计算器:载入标准数据,复算累积和

ixᵢxᵢ−T累积和 Cᵢ
点击“载入标准电机数据”并“计算累积和”。
⚠️ 关于标准里的一处出版差异(值得你注意):按标准 6.1 正文列出的 40 个电压值逐差累加,终点 CUSUM = +8;但标准表 1 给出的末值为 +11(相差约 3 个单位),且单值图中心线的均值标注为 10.28(正文数据均值为 10.20)。本页一律以正文列出的实测值为准精确复算——这本身也是个好教训:用控制图时,永远要自己动手验证。

④ 累积和图的解释 & 曼哈顿图

CUSUM 图妙在:一段直线的斜率,直接给出该段的平均水平。标准给出“线段端点累积和之差 ÷ 观测数”的算法。

式 (1)/(2): 某段平均值 = T + ( 线段末端累积和 − 线段起点累积和 ) / 介于其间的观测数
例(电机 1–10 号): 平均值 = 10 + ( 20 − 0 ) / 10 = 12.0 V

对电机数据,标准用最佳拟合直线把过程分成 4 段水平期,给出各段均值:

电机区间本页复算均值标准图 3 标注均值
1–10 号12.0012
11–18 号9.7510
19–31 号7.857.5
32–40 号11.8912.6

“曼哈顿图(Manhattan chart)”是把这些水平段还原成真实电压刻度的阶梯图(标准图 3),让非技术人员也能一眼看懂“过程什么时候高、什么时候低”。

点击“画曼哈顿图”查看(需先在 ③ 计算过电机累积和)。

⑤ 截顶 V 型模板(Truncated V-mask)

V 型模板是 CUSUM 最直观的判定工具:把模板基点(最新观测点)放在累积和图上,若轨迹落进两臂之内则受控,游出臂外则报警。

5.1 结构(标准图 5)

  • 基点 O,两垂直判定线 OB、OC,长度均为 H = 5σe
  • 两倾斜臂 BA、CD 为判定线,斜率 k = 0.5σe
  • 前导距离 EO = 10 个观测区间(即 d = h/k = 10)
  • 单侧失控 ⇢ 用“半 V 型模板”

5.2 怎么用

随着数据点累积,把基点逐次移到最新点:

  • 轨迹在臂内 ⇒ 直到该点,过程均值无显著偏移
  • 轨迹游出臂外 ⇒ 发出显著偏离信号,过程失控
  • 穿过点的直线斜率 ⇒ 可估计实际均值偏移幅度

下面把标准 V 型模板(k=0.5, h=5)叠到电机累积和轨迹上。拖动滑块移动模板基点,看哪段轨迹会“撞”到臂外而报警。

k = 0.5σ,h = 5σ(固定标准方案)

⑥ 表格化累积和(Tabular CUSUM)

不用画图也能判异——把累积和写成表格、用数值准则代替模板。这是工业软件里最常用的形式。

6.1 双侧公式(标准 8.8)

上累积和(检测均值上升): C+i = max( 0 , C+i−1 + (xi − T) − )
下累积和(检测均值下降): Ci = max( 0 , Ci−1 − (xi − T) − )
报警准则: C+i >  或  Ci >
k = 参考值(斜率,单位 σ);h = 决策区间(单位 σ);σ = 标准误差 σe
📐 几何等价:把 V 型模板的“斜臂斜率 k”换成“水平判定线 hσ”,统计效果完全一致。C⁺ 只在均值偏高时累积、偏低时归零;C⁻ 反之。

6.2 计算器

ixᵢdev=(xᵢ−T)−kσC⁺ᵢdev=−(xᵢ−T)−kσC⁻ᵢ
点击“载入…数据”并“计算”。
🔎 把电机数据(σ≈3.6)用标准 k=0.5/h=5 判定,不会强烈报警——因为各段偏移仅约 ±0.6σ,属“小偏移”。这正是 CUSUM 的诊断价值(看斜率找变点)大于“报警”的典型场景。点“载入含突变演示数据”可看到一次清晰的 +1σ 持续偏移如何被迅速抓出。

⑦ 判定准则有效性:平均链长 ARL

比较两套判异准则好坏,最直观的指标是 ARL(Average Run Length,平均链长):发出一次信号前平均要采多少个样。

真实过程期望的 CUSUM 响应理想 ARL
处于/接近目标很大(少误警)
远离目标很小(快检测)1

拖动下面的“真实偏移 δ(单位 σ)”滑块,对比 休哈特 3σ 图CUSUM 标准方案(k=0.5,h=5) 的 ARL。你会看到:

🎲 ARL 用蒙特卡洛模拟估计(每次跑若干条虚拟过程、统计平均多少点报警)。休哈特 ARL 也有解析公式 ARL=1/[2(1−Φ(3−δ))] 作为对照。模拟带随机性,数值会有小幅波动——但“小偏移下 CUSUM 远优于休哈特”的结论始终成立。

⑧ 累积和方案设计(标准表 11 / 表 12)

建 CUSUM 图不是拍脑袋,标准给出了一套“标准方案”:按你想检测的偏移大小,查表得到 (k, h)。分两类:CS1(零偏移时 ARL 长,误警少)与 CS2(ARL 短,反应快但虚警多)。

8.1 标准方案表(k = 目标偏移的一半,即 k = δ/2)

类型拟检测偏移 δ参考值 k决策区间 hARL₀(δ=0)δ=0.75σ 时 ARLδ=1.0σ 时 ARLδ=1.5σ 时 ARL

8.2 方案选择器

8.3 建立流程(标准图 12,13 步)

1
确定监控对象(关键参数 / 产品特征)
2
确定子组大小(参数常取 n=1,产品特征常取 n=5)
3
选 CUSUM 方案(表 11)
4
收集试用期数据(≥25 个子组)
5
估计标准误差 σe
6
确定目标值 T
7
建立 CUSUM 工具(模板 / 表格)
8
绘制 V 型模板
9
计算试用数据累积和
10
绘累积和图
11
识别特殊原因
12
消除特殊原因
13
持续用 CUSUM 监控
💡 拿不准选哪个?标准建议:先用 CS1 第 2 类(k=0.5, h=5.0) 起步——这是“标准累积和”方案。

⑨ 标准误差 σ 的估计

CUSUM 的全部尺度(hσ、kσ)都依赖 σ。建图前必须先可靠估计它(标准 9.3.4)。

子组大小 n > 1

极差法: σe = R̄ / d₂
标准差法: σe = s̄ / c₄
再换算均值标准误差: σ = σ / √n

子组大小 n = 1(单值)

移动极差法:σ = m / 1.128
(相邻两观测的极差,取平均后再除 1.128)

常用系数(d₂ 取自标准表 13,c₄ 同前):

n2345678910
d₂1.1281.6932.0592.3262.5342.7042.8472.9703.078
输入极差与 n,点击“估计 σ”。
对电机单值数据:移动极差 R̄m=4.10,σ≈4.10/1.128≈3.64(与第 ⑥ 节默认 3.6 一致)。

⑩ 目标值 T 的选择

目标值选错,CUSUM 会“假阳性”地一路爬升或下掉。标准 9.2 给出两类来源。

给定值(given)

来自规范、图纸的标称值,或管理层给定的期望水平。适用于对“应当达到什么”有明确要求时。

基于性能的值(performance-based)

用试用期数据的平均(x̄)作目标。适合探索性、无明确规格的过程。但试用期要足够长(≥25 点)以稳定估计。

🌊 “摆动”现象(swing):若目标值本身是随时间变化的(如冰淇淋销量有季节性),却用了恒定目标,CUSUM 图会周期性地升—降—升,制造误导性的“失控”假象。对策:目标值也应随时间分段设定,让 CUSUM 专注剔除真正的“季节性以外的异常”。

⑪ 快速初始响应 FIR(Fast Initial Response)

普通 CUSUM 从 0 开始累积,若过程“一开始就偏了”,要等一阵才报警。FIR 给它一个“有利的起点”:把初始值设为 h/2

常规: C+0 = C0 = 0
FIR:   C+0 = C0 = h/2
效果:过程一开始就偏移时,报警更快;若本就受控,累积和自然回落到 0,虚警率几乎不变。

下面用蒙特卡洛比较“开/关 FIR”时的 ARL(在固定 δ 下)。你会看到:受控时(δ=0)两者 ARL 接近,已偏移时 FIR 明显更短

点击“运行对比”。

⑫ 波动监控 & 离散数据的 CUSUM

CUSUM 不止监控“位置(均值)”,也能监控“波动(散度)”,还能用于计数型数据(标准 9.4–9.6)。

12.1 波动监控(散度)

把子组标准差 s(或极差 R)当作被监控量,套用同样的 CUSUM 流程监控 σ 是否变大。但要注意:标准不建议直接用 s 图的 CUSUM 替代普通 s 图——更稳妥的是用 9.4 的专门方案(对 s/c₄ 等做变换后再累积)。

12.2 离散(计数)数据的 CUSUM

p 图(不合格品率):对标准化值 zi = (pi − p̄) / √( p̄(1−p̄)/n ) 做 CUSUM
c 图(缺陷数):对 zi = (ci − c̄) / √c̄ 做 CUSUM
即把“比例 / 计数”先标准化成近似单位正态,再按常规 CUSUM 处理——这样前面所有 k、h、ARL 的结论都能复用。
📎 这部分与前面讲过的 ⑥ 表格化 CUSUM 完全同构,只是把“xᵢ”换成了“标准化后的统计量”。如果你已经吃透均值 CUSUM,这里只是换个输入量。

⑬ 小结 & 怎么用这份讲解

一句话记住 CUSUM

累积偏差、看斜率、小偏移敏感、能定位变点。它是休哈特图的好搭档,不是替代。

本页交付的 3 个可运行计算器

  1. ③ 电机累积和:从 40 个电压值复算 CUSUM,验证“斜率=均值偏差”。
  2. ⑥ 表格化 CUSUM:输入 k、h、σ、T,算 C⁺/C⁻ 双侧判异;含“含突变”演示数据。
  3. ⑨ σ 估计:极差/移动极差 → σ,支撑前面所有尺度。

本页交互演示

✅ 全部数值已用 Node 独立复算核对:电机 CUSUM 末值 +8(正文数据)、4 段均值 12.0/9.75/7.85/11.89、休哈特 2σ ARL 在 δ=0/1/1.5σ 分别为 370/22/7.5、标准 V 型模板 k=0.5/h=5/d=10。标准表 1 末值 +11 为出版差异,本页以正文实测值为准。

参考

GB/T 17989.4-2020《控制图 第4部分:累积和控制图》(MOD ISO 7870-4:2011)。本讲解为教学用途,对标准原文做了通俗化与交互化转译;凡涉及重大质量决策,请以标准正式文本与组织规范为准。

沟通