一台机器原来每件产品有 1 / 3 的概率出现某种标记。机器出问题后,这个概率会升到 2 / 3 。我们按顺序检查产品,希望尽快发现改变,却不知道它会从哪一件开始。如果把从第一件到现在的全部证据一直相乘,前面很长一段正常记录可能压住刚刚出现的异常。CUSUM 的办法是:同时考虑每一个可能的改变起点,只保留其中最有力的一段证据。 它看起来需要保存许多候选段,实际上只需更新一个数。
这个方法还带来一个容易误读的数:正常运行时,平均等多久才误报。平均等待很长,并不表示永远误报的概率很小。本页从同一个三状态例子算出这两种量,说明阈值究竟保证什么。
形式陈述
未知的是起点,改变前后的模型已经给定
令 X 1 , X 2 , … 相互独立,F n = σ ( X 1 , … , X n ) 。改变前后分布分别有共同支配密度 f 0 , f 1 。P ∞ 表示始终使用 f 0 ;P ν 表示 X 1 , … , X ν − 1 使用 f 0 ,从第 ν 个观测开始使用 f 1 。所以本页的 ν 是第一个改变后的下标 。
先假定两种分布相互绝对连续,且 f 0 ≠ f 1 。单步似然比 理路 似然函数 Likelihood function 固定可观测数据后,由共同支配密度定义、仅在参数间作相对比较的似然函数。 和对数增量为
(1) L n = f 1 ( X n ) f 0 ( X n ) , Z n = log L n . 在时刻 n ,假设改变发生在 k ≤ n ,相对于始终正常模型的似然比是 L k : n = ∏ i = k n L i 。取所有候选起点的最大值:
(2) V n = max 1 ≤ k ≤ n L k : n , V 0 = 1 , V n = max ( 1 , V n − 1 ) L n . 递推的证明只需分两类:起点 k = n 给出 L n ,较早起点的最佳值是 V n − 1 L n 。新的候选段总可以从当前观测重新开始。
常用的反射对数形式是
(3) C 0 = 0 , C n = max ( 0 , C n − 1 + Z n ) . 归纳可得 e C n = max ( 1 , V n ) 。因此,对 A > 1 ,
(4) τ A = inf { n ≥ 1 : C n ≥ log A } = inf { n ≥ 1 : V n ≥ A } 是同一个停时 理路 停时 Stopping time · 停止时刻 是否已经发生可由当前信息判断、因而不依赖未来的随机时刻。 。这里取“达到或超过”,并约定空集的下确界为 ∞ 。V n 可以小于一,而 e C n 总至少为一;不要把两者的数值直接写成相等。若允许 L n = 0 ,式 (2) 仍有意义;式 (3) 要以 log 0 = − ∞ 理解,而不应让程序计算普通浮点对数零。
反射是把过去最低的累计和扣掉
设 S 0 = 0 、S n = ∑ i = 1 n Z i 。所有后缀和满足
(5) C n = S n − min 0 ≤ j ≤ n S j . 证明是将 ∑ i = k n Z i = S n − S k − 1 取最大值,并加入空段的零。这个公式也解释了重置:当新的 S n 成为历史最低点时,C n = 0 ,此前的不利证据不再拖累未来候选段。
在报警时若令 j ∗ 为 S 0 , … , S τ A − 1 的最后一个最小点,j ∗ + 1 是一个最大似然的候选改变起点。选择最后一个只是解决并列的约定。它不是对真实改变时刻的置信区间,也没有自动给出定位误差概率。
用有限状态转移,精确算出等待时间
若递推在报警前只有 m 个可能状态,可把它看作Markov 链 理路 Markov 链 Markov chain 未来条件分布在给定当前状态后与更早历史无关的随机过程。 。令 Q i j 为一步从暂态 i 到暂态 j 的概率;一行缺少的概率就是这一步报警的概率。设 τ 是从当前状态起,还要等待的观测数,1 为全一列向量,则
(6) P i ( τ > n ) = e i ⊤ Q n 1 , u i = E i τ . 第一式来自连续 n 步都留在暂态。这里 n = 0 时右端是一,符合下一次检查至少还需一步。
如果存在整数 b 和 ε > 0 ,使每个暂态在接下来的 b 步内都有至少 ε 的报警概率,那么
(7) ‖ Q k b ‖ ∞ ≤ ( 1 − ε ) k . 把时间按块分开,每块仍存活的条件概率至多 1 − ε ,即得这个界。因此 ∑ n ≥ 0 Q n 收敛,望远镜相消给出它等于 ( I − Q ) − 1 。对整数非负等待时间作尾概率求和,得到
(8) u = ( I − Q ) − 1 1 , u = 1 + Q u . 所以“解一个线性方程”有明确的前提。若根本无法从某些状态报警,矩阵可能不可逆;不能把一个形式逆矩阵当作有限均值证明。
直觉
固定起点的SPRT 理路 序贯概率比检验 Sequential probability ratio test · SPRT 累积简单假设似然比并在越过上下边界时停止的序贯检验。 比较的是“从开始到现在,哪一种固定模型更像”。变点检测问的是“最近是否有一段已经变了”。CUSUM 的最大后缀允许把前面正常的观测放在候选起点之前,但它仍然使用事先指定的 f 0 , f 1 。若改变后的参数也未知,还需要另一个估计或混合步骤,本页没有把它藏进公式中。
本页的 log 与下面两项 KL 散度统一使用自然对数;链接页默认的底二版本须乘以 log 2 才得到这里的单位。在对数可积的条件下,KL 散度 理路 KL 散度 Kullback–Leibler divergence · Relative entropy 同一可测空间上分布 P 相对于 Q 的对数 Radon–Nikodym 导数在 P 下的积分。 给出
(9) E ∞ Z 1 = − D ( f 0 ‖ f 1 ) < 0 , E 1 Z 1 = D ( f 1 ‖ f 0 ) > 0. 正常时累计证据通常往下走,反射把它留在零附近;改变后通常往上走。不过,“通常向下”不等于“永远到不了上边界”。反射不断提供新机会,偶尔连续出现一串有利观测,仍会触发报警。
图片加载失败 图左的折线展示一条观测路径,不是均值轨迹。图右把相同递推压缩成三个暂态,因而能算所有路径的概率。图中的回到零也只丢掉当前候选段的累计证据,没有声称机器被修好了。
例子与边界
三个状态,两个不同的运行长度
回到开头的 Bernoulli 例子:f 0 的成功概率为 1 / 3 ,f 1 为 2 / 3 。成功时 L = 2 ,失败时 L = 1 / 2 。用 log 2 作单位,状态每次上升一格或下降一格,下降到零后不再变负。
取 A = 8 ,即第三格报警。记当前实际成功概率为 p 、q = 1 − p ,暂态按 0 , 1 , 2 排列:
(10) Q ( p ) = ( q p 0 q 0 p 0 q 0 ) . 例如从第二格失败,回到第一格;从第二格成功,直接报警,所以第三行之和为 q 。均值方程逐行是
(11) u 0 = 1 + q u 0 + p u 1 , u 1 = 1 + q u 0 + p u 2 , u 2 = 1 + q u 1 . 任意暂态接下来连续三次成功都会报警,概率至少 p 3 > 0 ,因而前面的有限性证明适用。精确求解得到
(12) u ( 1 / 3 ) = ( 33 , 30 , 21 ) ⊤ , u ( 2 / 3 ) = 1 8 ( 51 , 39 , 21 ) ⊤ . 从零开始,正常时平均 33 次检查才报警;若一开始就已经改变,平均检测延迟是 51 / 8 = 6.375 次。改变发生前若累计状态已在第一格,之后的平均延迟是 39 / 8 ,不是重新从零计算的 51 / 8 。
最坏历史延迟怎样得到
在给定同一串改变后观测的情况下,从较高初值出发的反射过程始终不低于从零出发的过程。这是映射 c ↦ max ( 0 , c + z ) 的单调性逐步传递的结果。因此较高初值的报警不晚于零初值。
对这个例子,在 τ A ≥ ν 的历史上,改变前状态是 0 , 1 , 2 之一;独立性使改变后的未来不再依赖更早历史。已经提前报警的历史给出零延迟。于是
(13) sup ν ≥ 1 ess sup E ν [ ( τ A − ν + 1 ) + ∣ F ν − 1 ] = 51 8 . 上界来自单调耦合;等号在 ν = 1 、确定的零初值处取得。这计算了当前规则 的最坏历史延迟,并没有证明它优于所有其他规则。CUSUM 的更强最优性定理需要另述准则和条件,本页不借用那个结论来替代校准。
平均误报等待,不是永远不误报的概率
正常时连续三次成功的概率是 1 / 27 。不重叠的三次观测块相互独立;前 k 块都不是全成功的概率为 ( 26 / 27 ) k 。只要有一块全成功,不论块前状态如何,都已在块内报警。所以
(14) P ∞ ( τ 8 < ∞ ) = 1 , E ∞ τ 8 = 33. 两式完全相容。不能把阈值 8 解读为“无限期误报概率至多 1 / 8 ”。如果实际任务只监测十次,应算相应的有限时间量:
(15) P ∞ ( τ 8 ≤ 10 ) = 1 − e 0 ⊤ Q ( 1 / 3 ) 10 1 = 13609 59049 . 同样的现象不限于三状态链。若两个独立同分布模型不同,且 E ∞ L = 1 ,则存在 c > 1 满足 P ∞ ( L ≥ c ) > 0 ;否则 L ≤ 1 且均值一会迫使 L = 1 几乎处处。足够长的全有利块使后缀积达到任意固定 A ,并给出几何块尾界。此事件在改变后也有正概率,因为其概率是 E ∞ [ L 1 { L ≥ c } ] 。因此两种模型下都能得到有限均值。相反,若模型完全相同,L ≡ 1 ,CUSUM 在 A > 1 时永不报警。
推论与应用
与 SR 的比较给出一个保守预算
Shiryaev–Roberts 检测 理路 Shiryaev–Roberts 变点检测 Shiryaev–Roberts detection · Shiryaev-Roberts procedure · SR 变点检测 · Generalized Shiryaev–Roberts procedure 对每个可能改变起点的似然比求和,以带新增单位预算的递推监测变化,并通过有界停止证明平均误报等待下界。 把相同的候选后缀积求和,而非取最大。零初值时记其统计量为 R n ,则逐路径有 R n ≥ V n 。对相同 A > 1 ,它的报警时刻 τ A S R ≤ τ A 。由 SR 页的有界停止论证,正确正常模型下
(16) E ∞ τ A ≥ E ∞ τ A S R ≥ A , P ∞ ( τ A ≤ N ) ≤ min ( 1 , N / A ) . 后一个界来自 A P ( τ A S R ≤ N ) ≤ E ( τ A S R ∧ N ) ≤ N 。它不是一个对无限期有用的固定小概率界。对三状态例子,精确的 33 比保守下界 8 更有校准价值。
最大和求和也会产生真正不同的规则。在公平硬币正常模型、改变后必定成功的模型中,成功给 L = 2 ,失败给零。阈值 A = 6 下,CUSUM 要连续三次成功,平均等待 14 次;SR 两次成功已有 R = 6 ,平均只等 6 次。这个比较说明相同数值阈值不是相同的误报约束,不能据此宣布哪个方法在公平条件下更快。
实施时需要交付什么
在线递推每个观测只用常数次算术操作与一个当前状态;若还需候选起点,只需额外记住最近重置位置。有限状态校准则是另一个计算:m 状态的稠密线性求解约需 O ( m 3 ) 次域运算,递推 N 步存活分布约需 O ( N m 2 ) 次;本例矩阵稀疏,可以更快。精确有理数的分子分母还会增长,不能把这些操作数当作位复杂度。
运行长度证书终点 要求同时交付:递推与显式后缀的一致性、转移矩阵、有限吸收理由、精确均值、指定时域的报警概率,以及改变初值或阈值后的重算。程序不把一个模拟平均数当作误报保证,也不对未知或失配的 f 0 自动担保。
参考资料
[1] G. V. Moustakides, A. S. Polunchenko, A. G. Tartakovsky, Numerical Comparison of CUSUM and Shiryaev–Roberts Procedures for Detecting Changes in Distributions , 2009 作者版本,§§2.1–2.2 与 §3 的首次转移方程。本文独立推导离散有限状态例子,不采用其连续模型的数值近似误差结论。
[2] G. V. Moustakides, Optimal Stopping Times for Detecting Changes in Distributions , Annals of Statistics 14 (1986), 1379–1387。核读 pp.1379–1380 的模型、最坏历史延迟和单调性。本文只计算给定规则的延迟,不援引该文后面的最优性证明,也不把其连续似然条件用于离散例子。