4.3 经典时间序列模型ARIMA与EWMA


4.3 经典时间序列模型 ARIMA 与 EWMA

本节摘要:ARIMA 与 EWMA 是"用历史预测现在、以残差判异常"思路的两大代表。本节讲透 ARIMA 的 (p,d,q) 三参数含义、ADF 平稳性检验、ACF/PACF 定阶流程、残差阈值设定方法,以及 EWMA 的平滑系数 α 权衡与检测流程,最后给出两者的选型对比与应用注意事项。核心思想:能预测"该有的值",就能比较"实际值"——残差是异常的信号。

核心问题

阅读完本节,你应当能够:

  1. 解释 ARIMA 的 (p,d,q) 三个参数分别代表什么。
  2. 说出 ADF 检验的作用,以及"差分到平稳"的含义。
  3. 用 ACF/PACF 图辅助确定 p、q 的阶数。
  4. 掌握基于残差的异常判断流程(训练→预测→残差→阈值)。
  5. 在 ARIMA 与 EWMA 之间按数据特征做出选型。

一、问题与直觉

某港口调度系统监控每日集装箱吞吐量。吞吐量有长期上涨趋势(港口在扩建),又有明显的月度波动(船期淡旺季)。某天下午,调度员发现吞吐量比预期低了 8%——这到底是不是异常?

用固定阈值判断,答案是没有答案:因为"预期"本身在变——三个月前 8 万箱是高位,现在 8 万箱可能是异常低点。真正该问的问题是:"以这个序列自己的历史规律来看,今天应该值多少?" 如果实际值显著低于"应该值",那就是异常。

这就是"预测-残差"思路的全部逻辑:先用模型把序列的规律学出来,预测"应该值",再拿实际值与预测值做差,残差超阈值即异常。 相比阈值和 SPC,这套思路的飞跃在于——它认识到了时间结构本身(趋势、季节、自相关)是"正常"的一部分,异常是"违背这种结构"的部分。

ARIMA 与 EWMA 是这个思路的两个代表。ARIMA 野心更大,把自相关结构、趋势、残差全建模;EWMA 更朴素,只用一个平滑系数跟踪"当前水平"。对带趋势季节的数据,ARIMA 是主力;对短期波动为主、要求快的数据,EWMA 更划算。

二、核心原理

2.1 ARIMA:三个字母三种分工

ARIMA(Autoregressive Integrated Moving Average)由三部分组成:

  • AR 自回归 (p):当前值 = 过去 p 个值的线性组合 + 噪声。X(t) = c + φ1·X(t-1) + ... + φp·X(t-p) + ε(t)。它建模"值对值的记忆"。
  • I 差分 (d):对序列做 d 次差分使其平稳。一阶差分把"水平漂移"变平稳,去除趋势。
  • MA 移动平均 (q):当前值 = 过去 q 个时刻的误差项组合 + 噪声。X(t) = μ + θ1·ε(t-1) + ... + θq·ε(t-q) + ε(t)。它建模"冲击的余波"。

一句话记忆:p 是"看自己多少步以前",d 是"差几次才平稳",q 是"吸收多少步以前的意外冲击"。

2.2 建 ARIMA 的标准流程

第一步:平稳性检验(ADF 检验)。 Augmented Dickey-Fuller 检验判断序列是否平稳。p 值 < 0.05 认为平稳;不平稳就差分(d+1),再检验,直到平稳。这一步决定了"能不能用 ARIMA"——不平稳的序列直接建模,模型就是空中楼阁。

第二步:定阶(ACF/PACF 图)。 差分后的平稳序列画 ACF 和 PACF:PACF 在 p 阶后截断(掉进置信带)→ AR 阶数 p;ACF 在 q 阶后截断 → MA 阶数 q。没有明显截断就用 AIC/BIC 信息准则网格搜索定阶,这是更省事的实践做法。

第三步:拟合与检验。 用历史数据拟合模型参数,检查残差是否为白噪声(Ljung-Box 检验)。残差非白噪声说明模型没学干净,要回到第二步重新定阶。

第四步:预测与残差检测。

第五步:阈值设定。 三种方式:固定阈值(经验值);统计阈值(残差均值 ± k×残差标准差,k 取 2–3);动态阈值(随波动性变化)。推荐统计阈值——它随模型和数据自动标定,可解释性也够。

2.3 EWMA:用一个系数跟踪"当前水平"

EWMA 是极简的预测器:S(t) = α·X(t) + (1-α)·S(t-1),S(t) 是当前平滑值(即"预期水平")。α 越大越相信新数据,越小越相信历史。

用 EWMA 检测异常四步:训练确定 α → 逐点计算平滑值 → 实际值减平滑值得残差 → 残差超阈值判异常。

α 的权衡是 EWMA 的全部艺术:α 大 → 响应快、抓突变强,但易被噪声骗出虚警;α 小 → 平滑稳、抗噪好,但反应慢,会漏掉急变。选 α 没有公式,交叉验证最靠谱。EWMA 特别适合在线流式场景——它只依赖上一个平滑值,是天然的增量算法,内存占用恒定。

2.4 ARIMA vs EWMA 选型对比

维度 ARIMA EWMA
建模能力 自相关+趋势+季节(SARIMA) 只跟踪水平
计算成本 定阶+拟合,较重 极轻,O(1) 增量
在线流式 需滚动重估 天然在线
长期趋势/季节 擅长(配合差分与季节项) 不擅长
短期波动 可处理 擅长
可解释性 参数多、解释较难 一个 α,极易解释

选型一句话:数据有明确趋势季节、要精度 → ARIMA;数据短期波动为主、要快要简单、在线流式 → EWMA。

三、工程实践要点

3.1 残差才是检测对象

用 ARIMA/EWMA 做检测,一定要分清主次:模型是手段,残差是对象。 别把精力全花在"让预测更准"上——检测关心的是"残差里有没有不该出现的偏离",而不是"预测误差多小"。一个预测误差大但稳定的模型,配上一个贴合残差分布的阈值,检测效果可能比"预测很准但阈值乱定"的模型好得多。

3.2 三个应用注意事项

数据预处理:建模前处理缺失值、去除明显异常点——否则它们会污染模型参数,让"正常"学歪。

参数调优:ARIMA 的 (p,d,q) 和 EWMA 的 α 都影响检测灵敏度,用滚动验证而不是一次性切分来评估。

模型评估:别只看预测误差,要看检测效果——用第 7 章的召回/精确/F1 来评估"异常是否被正确检出"。

⚠️ 常见坑:ARIMA 对非线性序列强行建模。 ARIMA 本质是线性模型,对突变、间歇性脉冲、长尾这类非线性模式,残差永远"不正常",阈值形同虚设。数据里强非线性成分多,就该考虑第 5、6 章的树模型或深度模型。

💡 关键直觉:预测-残差法的思想远比 ARIMA 这个具体模型长寿。 第 5 章的机器学习、第 6 章的 LSTM/Transformer,本质都在做同一件事——预测"应该值",比残差。掌握"以残差为检测对象"的思路,你就掌握了这套方法家族的共同骨架。

3.3 生产环境升级路径

ARIMA 在生产里常遇到两个升级需求:一是滚动重估(序列漂移后模型失效),二是带上季节项(SARIMA)。EWMA 则常被升级为"EWMA + 残差控制图"(把 SPC 的控制限思想用在 EWMA 残差上)。这些升级都是同一套骨架上的加料,先跑通基础版再逐步加。

3.4 用一个小例子把流程走通

假设要检测某物流仓库的每日出库量异常。过去 180 天数据有明显周内节奏(工作日高、周末低)和缓慢上升趋势。流程如下:

  1. 平稳化:先做 ADF 检验,p 值明显大于 0.05,判定非平稳;做一阶差分后 p 值小于 0.05,平稳了。注意差分一次通常就够,别过度差分把信息也削掉。
  2. 定阶:看差分后序列的 ACF/PACF。PACF 在 2 阶后截断 → p 取 2;ACF 拖尾衰减 → q 取 1,于是 (p,d,q) 试 (2,1,1)。用 AIC 对比几个候选阶数,选最小的。
  3. 拟合与检验:拟合后对残差做 Ljung-Box 白噪声检验,p 值大于 0.05,残差可当白噪声,模型合格。
  4. 预测与检测:用模型预测"今天的出库量",算残差。把历史残差的标准差当标尺,残差超过 3 倍标准差就报警。

这个过程的价值在于"可重复、可解释"——每一步都有统计依据(ADF 的 p 值、PACF 的截断、Ljung-Box 的检验),出问题时能回溯是哪一步出了问题。这是 ARIMA 类方法在工业界长盛不衰的重要原因:它不只是给结果,还给了一整套可审计的推理链条。

3.5 EWMA 在在线监控里的落地要点

EWMA 最迷人的地方是它的递推性质:算下一时刻的平滑值,只需要当前值和上一个平滑值,不需要保存整段历史。这让它成为高吞吐在线监控的天然选择——内存占用恒定、每点计算 O(1)、天然流式。

落地时三个要点:α 的选择(从 0.2–0.3 起步,看残差是否在可接受范围);残差阈值的滚动标定(用滑动窗口的残差分布更新阈值,别用固定阈值);与 SPC 控制限结合(把 EWMA 平滑值当作控制图的中心线估计,残差画到控制图上,同时吃"越界判据"和"趋势判据")。EWMA + 残差控制图,是"在线 + 渐变敏感 + 可解释"三项兼得的高性价比组合,值得作为监控系统的标准件使用。

实战问答

问:ARIMA 定阶太麻烦,有没有自动化的办法?

有。用自动定阶工具(如 pmdarima 的 auto_arima)做网格搜索,按 AIC/BIC 自动选最优 (p,d,q)。但自动化不等于免检——模型出来后仍要做残差白噪声检验和验证集评估,防止自动定阶选到过拟合的阶数。

问:数据量很少(比如只有几十个点)能用 ARIMA 吗?

勉强能,但可信度低——ARIMA 要估计的参数不少,样本太少估计不稳。几十个点建议先 EWMA 或差分+简单统计,攒到几百个点再上 ARIMA。

问:EWMA 的 α 到底怎么选?

两个抓手:一是交叉验证(用历史数据滚动验证不同 α 的预测误差,选最小的);二是业务节奏(想要反应快就大 α,想要稳就小 α)。经验上 0.1–0.4 是常见区间,从 0.2 起步。 注意 α 太大(>0.5)时 EWMA 几乎等于"跟着单点走",平滑意义就没了。

问:ARIMA 预测不准,还能用它做检测吗?

能。检测关心的是"残差里有没有异常偏离",不是"预测误差多小"。 一个预测误差偏大但稳定的模型,配上一个贴合残差分布的阈值,检测效果可能比"预测准但阈值乱定"的模型好得多。把关注点从"预测准"挪到"残差稳",是 ARIMA 检测的正确心态。

问:带明显季节性的数据,ARIMA 还能用吗?

基础 ARIMA 不行,但**季节性 ARIMA(SARIMA)**可以——它在 (p,d,q) 之外再加季节参数 (P,D,Q,m)。不想自己配季节参数,也可以先做 STL 分解(第 2.3 节)剥离季节,再对残差用普通 ARIMA。两条路都行,前者一次建模、后者分步更直观。 实际操作里,"STL + 普通 ARIMA"往往是更省心的选择,因为分解步骤本身已经帮你把周期结构看清了,残差也更干净,检测的可解释性更强。如果季节强度不高(周期波动占比小),也可直接上带少量滞后特征的回归,没必要非 ARIMA 不可。

一节小结

  • ARIMA 三参数:p 自回归阶数、d 差分次数、q 移动平均阶数;先 ADF 检验平稳,再 ACF/PACF 定阶。
  • 标准流程:检验平稳 → 定阶 → 拟合 → 残差白噪声检验 → 预测 → 残差阈值检测。
  • 残差阈值:推荐统计阈值(残差均值 ± k×标准差),随模型自动标定。
  • EWMA:S(t)=α·X(t)+(1-α)·S(t-1),α 权衡响应速度与抗噪,天然适合在线流式。
  • 选型:趋势季节明确用 ARIMA,短期波动+在线用 EWMA。
  • 核心思想:预测-残差-阈值是一套跨模型家族的共同骨架,第 5、6 章的模型都在这个骨架上长肉。

下一节彻底放下"分布假设"——LOF 与 DBSCAN 用密度和距离说话,能抓任意形状的异常。参数敏感是它们最大的脾气,也是最值得琢磨的地方。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U