尽管对固定批次数据进行的基本统计检验可以识别漂移,但它们通常会引入显著的延迟。当批次数据收集并分析完毕时,模型可能已经处理了一段时间的漂移数据,这可能影响业务成果。对于需要更快响应的应用,例如高频交易、实时竞价或关键控制系统,等待完整批次通常是不可接受的。序列分析方法提供了一种替代方案,它在数据点到达时进行分析,旨在更快地检测变化。核心思想是在每个新数据点或小微批次到达后就做出决策(是否检测到漂移),而不是等待预定的大批量数据。这使得当分布开始发生偏移时,可以更早地发出预警。序列与批次方法的比较设想一下,您正在监测用于欺诈检测的平均交易价值。批次方法: 您可以收集一整天的数据,计算平均交易价值,然后使用t检验或KS检验将其与前一天或参考窗口的平均值进行比较。显著差异会触发警报。检测延迟至少为一天(即批次窗口)。序列方法: 您每次有新交易时都更新一个统计量。如果此统计量超过预设阈值,则立即触发警报。漂移开始后几分钟或几小时内即可检测到,具体取决于变化的大小和检验的灵敏度。这种速度伴随着需要考量的事项。序列检验通常基于对数据分布和预期变化性质的特定假设进行设计。它们通常涉及设置参数,以平衡未发生漂移时的误报率与已发生漂移时的检测速度。序列分析中的要点用于漂移检测的序列分析实质上是一种序列假设检验。我们持续检验:$H_0$:数据生成过程未改变(无漂移)。$H_1$:数据生成过程已改变(有漂移)。经典固定样本检验通常在收集 $N$ 个样本后才做出决策。与此不同,序列检验会在每个样本(或小批组)之后评估证据,并决定是否:1. 接受 $H_0$(暂时得出无漂移结论)。2. 接受 $H_1$(发出漂移信号)。3. 继续采样(证据尚不充分)。序列检验的两个重要性能指标是:误报平均运行长度 (ARL$_0$):在 $H_0$ 为真时,检验错误地发出漂移信号之前处理的平均观测次数。您希望这个值越大越好。检测平均运行长度 (ARL$_1$):在实际发生漂移后,直到检验发出信号为止处理的平均观测次数。您希望这个值越小越好。序列检验的设计涉及选择参数,以实现在保持可接受的高ARL$_0$的同时,达到所需(低)的ARL$_1$。序列概率比检验 (SPRT)最早且最基础的方法之一是瓦尔德的序列概率比检验 (SPRT)。当您能够指定零假设 ($H_0$,无漂移) 和备择假设 ($H_1$,有漂移) 下的数据分布时,它尤其有效。设 $f_0(x)$ 为 $H_0$ 下的概率密度(或质量)函数,$f_1(x)$ 为 $H_1$ 下的密度函数。在观测到 $n$ 个数据点 $x_1, x_2, ..., x_n$ 后,似然比为:$$ L_n = \frac{\prod_{i=1}^n f_1(x_i)}{\prod_{i=1}^n f_0(x_i)} $$SPRT 使用两个阈值 $A$ 和 $B$,通常根据所需的第一类错误率 $\alpha$(误报概率)和第二类错误率 $\beta$(漏检概率)来定义:$A \approx (1-\beta)/\alpha$$B \approx \beta/(1-\alpha)$在步骤 $n$ 的决策规则是:如果 $L_n \ge A$:停止并接受 $H_1$(发出漂移信号)。如果 $L_n \le B$:停止并接受 $H_0$(得出无漂移结论)。如果 $B < L_n < A$:继续观察下一个 $x_{n+1}$。示例: 假设我们监测正态分布特征 $X \sim N(\mu, \sigma^2)$ 的均值 $\mu$,其中 $\sigma^2$ 已知。$H_0: \mu = \mu_0$(例如,训练期间观测到的均值)$H_1: \mu = \mu_1$(例如,我们希望快速检测到的特定偏移均值)可以计算似然比 $L_n$,并且通常使用其对数 $\log L_n$ 以提高计算稳定性,从而实现加法更新而非乘法更新。SPRT优点: SPRT 在数学上是最佳的,因为它在所有具有相同或更低错误率 ($\alpha, \beta$) 的检验中,能最小化预期的样本量(ARL$_0$ 和 ARL$_1$)。SPRT挑战: 其主要缺点是需要精确指定 $f_0$ 和 $f_1$。在实践中,定义一个单一的、有代表性的“漂移”分布 $f_1$ 可能很困难,因为漂移可能以多种方式出现。累积和 (CUSUM) 控制图CUSUM图广泛用于统计过程控制,并很好地适用于漂移检测。它们在检测过程参数(如均值或比例)中微小、持续的偏移方面很有效。核心思想是累积与目标值的偏差。设 $X_i$ 为时间 $i$ 的观测值,$\mu_0$ 为目标均值(在 $H_0$ 下)。用于检测均值增加的单边CUSUM统计量 $S_n$ 可以递归计算:$$ S_n = \max(0, S_{n-1} + (X_n - (\mu_0 + k))) $$其中 $S_0 = 0$。$X_n$:步骤 $n$ 的观测值(或迷你批次的平均值等汇总统计量)。$\mu_0$:$H_0$ 下的目标均值。$k$:“松弛”或“容忍”参数,通常选择为希望快速检测到的偏移量的一半(例如,$k = |\mu_1 - \mu_0| / 2$)。它有助于在过程受控时,防止CUSUM累积噪音。$S_n$:步骤 $n$ 的CUSUM统计量。它累积高于调整后目标 $(\mu_0 + k)$ 的偏差。$\max(0, ...)$ 确保如果偏差低于目标,它会重置为零,从而防止过去的负偏差掩盖当前的积极偏移。如果 $S_n$ 超过预定义的决策阈值 $h$,则会发出漂移(向上偏移)信号。参数 $k$ 和 $h$ 的选择是为了平衡 ARL$_0$ 和 ARL$_1$。存在用于检测下降或双向变化的类似公式。{"layout": {"title": "检测均值偏移的CUSUM图", "xaxis": {"title": "时间步"}, "yaxis": {"title": "CUSUM统计量 (Sn)"}, "shapes": [{"type": "line", "x0": 0, "y0": 8, "x1": 100, "y1": 8, "line": {"color": "#f03e3e", "width": 2, "dash": "dash"}, "name": "Threshold"}], "annotations": [{"x": 75, "y": 8.5, "text": "漂移信号阈值 (h=8)", "showarrow": false, "font": {"color": "#f03e3e"}}], "legend": {"yanchor": "top", "y": 0.99, "xanchor": "left", "x": 0.01}}, "data": [{"type": "scatter", "mode": "lines", "name": "CUSUM统计量", "x": [0, 10, 20, 30, 40, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "y": [0, 0, 0, 0, 0, 0, 0.1, 0.3, 0.6, 0.8, 1.2, 1.5, 1.9, 2.4, 2.8, 3.4, 4.0, 4.7, 5.3, 6.0, 6.5, 7.1, 7.8, 8.6, 9.1, 9.8, 10.4, 11.1, 11.6, 12.3, 13.0, 13.5, 14.2, 14.9, 15.3, 16.0], "line": {"color": "#228be6"}}]}随时间变化的CUSUM统计量示例。过程均值在大约时间步50时向上偏移。CUSUM统计量最初保持在零附近,然后在此偏移后开始积极累积,在大约时间步67时超过检测阈值 $h=8$,发出漂移信号。CUSUM优点: 通常比SPRT更容易实现,因为它不需要为 $H_1$ 指定完整的分布。它在检测微小、持续的偏移方面非常有效。CUSUM挑战: 需要仔细调整 $k$ 和 $h$。性能取决于偏移量相对于 $k$ 的大小。如果 $k$ 是为小偏移量优化的,那么对于检测非常大、突然的偏移,它可能比SPRT慢。优点与权衡SPRT和CUSUM等序列方法的主要优点是,与固定批次方法相比,它们有潜力显著加快检测速度,特别是对于中等或小的偏移。它们在证据可用时进行审查,最大限度地减少漂移开始到被检测之间的延迟。这种及时性在许多生产ML系统中具有很高的价值。然而,这种速度伴随着一些复杂性:参数调整: 选择合适的阈值 ($A, B, h$) 和参数 ($k$,特定 $H_1$) 需要仔细斟酌,通常涉及模拟或分析以理解 ARL$_0$ 和 ARL$_1$ 之间的权衡。不当的调整可能导致过多的误报或检测缓慢。假设: SPRT 需要明确定义的假设,而 CUSUM 假定特定类型的偏移(例如,均值偏移)。如果实际的漂移模式与假设存在显著差异,性能可能会下降。多变量数据: 将这些方法直接应用于高维数据通常不切实际。常见方法包括将序列检验应用于:单个特征。从多变量数据导出的单变量汇总统计量(例如,降维技术的输出,或预测概率等指标)。在多变量数据上计算的单变量漂移指标的输出(例如,将 CUSUM 应用于马哈拉诺比斯距离)。序列分析为快速漂移检测提供了一套强大的工具,在流式处理场景中尤其有价值。它们充当高效的早期预警系统。当序列检验发出潜在漂移信号时,它可以触发使用多变量方法(在其他章节中讨论)进行更全面的、可能计算量更大的调查,或者启动模型再训练等自动化响应。