10|ARIMA 与 Prophet:两条「自动化」的路,和一盆冷水

「别人都说 ARIMA 更高级,我是不是该换?」

几乎每个刚做完指数平滑的团队都会问我这句话。我的回答通常是反问:你知道它们各自在「自动化」什么吗?

  • ARIMA 自动化的是「把曲线变平稳 + 定阶」;

  • Prophet 自动化的是「拆积木 + 节假日」。

    两者都不是魔法,也都不吃外部变量。搞清楚这点,选型就不靠信仰了。

ARIMA 第一步:差分,把「在第几层」变成「每步迈几级」

非平稳序列(均值随时间漂移)没法直接建模。解法是差分------不看水平,看相邻两期的变化量:
dt=yt− yt−1 d_t = y_t - y_{t-1} dt=yt−yt−1

手算两个例子,感受「几阶才够」:

  • y = 100, 104, 109, 113, 118, 122 → 一阶差分 d = 4, 5, 4, 5, 4平稳了(均值约 4.4、无明显漂移),d = 1。

  • y = 100, 102, 108, 118, 132 → d = 2, 6, 10, 14(还在漂)→ 二阶 d2 = 4, 4, 4平稳了,d = 2。

    第二个例子是「加速度恒定」的序列:一阶差分消掉水平但消不掉加速度,必须再差一次。实务中日销很少需要 d=2------若需要,先怀疑是否有未建模的结构突变或促销脉冲。

    平稳性的廉价体检 :把序列对半切,比较两段的均值与标准差。示例:前半年均值 500、sd 30;后半年均值 620、sd 32 → 均值漂移 24%,非平稳。差分后:前段均值 2.0、后段 2.1 → 漂移 5%,可接受。比看 ADF 检验的 p 值直观得多(p 值该看,但先看这个)。

平稳之后:AR 与 MA 各吃什么

  • AR(p) :用过去 p 期的(差分后)值------「最近几步迈多大,下一步差不多」;
  • MA(q) :用过去 q 期的预测误差------「上次低估了,这次补一点」。

dt=c+ ∑i=1p ϕi dt−i + ∑j=1q θj et−j +et d_t = c + \sum_{i=1}^{p}\phi_i d_{t-i} + \sum_{j=1}^{q}\theta_j e_{t-j} + e_t dt=c+i=1∑pϕidt−i+j=1∑qθjet−j+et

注意这里的 MA 是误差的移动平均,跟第 4 篇「销量的移动平均基线」不是一回事,别混。

AR(1) 手算一步 :设 d_t = 0.6·d_{t−1} + e_t,差分序列 4, 5, 4, 5, 4。下一期差分预测 = 0.6 × 4 = 2.4 ;还原到水平:ŷ = 122 + 2.4 = 124.4。整个 ARIMA 预测就是「差分空间里递推 + 累加还原」两步。

ACF/PACF 读图规则(定阶的传统方法):

形态 ACF PACF 提示
AR(p) 拖尾(缓慢衰减) p 阶后截尾 用 p 个滞后值
MA(q) q 阶后截尾 拖尾 用 q 个滞后误差
都不截尾 拖尾 拖尾 考虑 ARMA 或换方法

实务更省事:在小网格里搜 (p,d,q),取 AIC 最小------自动化工具的本质就是这个。带季节的版本 SARIMA 加一组 (P,D,Q,m),能力与第 7 篇 HW 大致对等,选谁往往取决于团队习惯而非精度。

Prophet:把拆积木做成工程

Prophet 的思路和第 2 篇经典分解一脉相承,只是做成了可加的工程化模型:
y(t)=g(t)+s(t)+h(t)+εty(t) = g(t) + s(t) + h(t) + \varepsilon_t y(t)=g(t)+s(t)+h(t)+εt

g 是趋势(分段线性、自动找拐点),s 是周期(傅里叶级数拟合年/周),h 是节假日(一张表驱动的脉冲),ε 是残差。

各成分量级:

成分 均值 标准差 极差
趋势 g(t) 377.90 50.87 181.80
年周期 s(t) −0.39 39.02 109.99
周周期 13.03 15.38 43.00
节假日 h(t) 6.50 28.33 130.00
残差 ε −0.08 13.37 70.61

四块积木解释了 93.24% 的方差。注意节假日项极差 130------它是可加的独立一块,这正是 Prophet 真正的价值:运营可以直接说「把 618 那天的节假日项调高 20%」,不需要懂模型内部。业务能动手改的模型,才活得久。

手算可加性:若模型给某天 g=380、s=+40、weekly=+33、h=0 → 预测 453;运营把 h 改为 +130 → 预测 583。改一个数、影响可预期,这就是可干预性的含义。

选型决策树:五步走完不纠结

  1. 有价格/促销/流量等外部变量吗?→ 有:回归或机器学习(第 8、11 篇),别用 ARIMA/Prophet。
  2. 需要批量服务几千 SKU 吗?→ 是:全局机器学习(第 11 篇)。
  3. 单序列、强季节、无外部变量?→ HW/ETS 自动搜索。
  4. 单序列、无明显季节、想自动定阶?→ ARIMA。
  5. 需要节假日表、业务要可干预?→ Prophet。

一盆冷水:复杂模型经常赢不了简单模型

这是这个领域最反直觉、也最重要的事实:在 M3/M4 公开竞赛里,简单方法(尤其带季节的指数平滑)经常击败复杂模型。 包括神经网络、包括ensemble。

原因不神秘:零售序列的信噪比低、结构会漂移、样本(周期数)少;复杂模型的自由度在这种数据上更容易拟合噪声。复杂模型的真正价值在两点:吃外部变量 (第 8、9 篇)和批量规模化 + 分位数输出(第 11、12 篇)。单序列精度上,别指望奇迹。

所以我的建议永远是:先让 Seasonal Naive 和 HW 跑起来拿到地板,再决定要不要为「吃外部变量」付出复杂度的成本。

读者问答

Q1:ARIMA 能给区间吗? 能,基于残差正态假设的解析区间。但和 HW 的 √h 区间一样,它假设误差结构稳定;实务中我更信滚动回测的经验分位数区间(第 12 篇)。

Q2:Prophet 的拐点(changepoint)会自动乱加吗? 会,尤其数据噪声大时。对策:限制拐点数量与位置先验(如只允许在已知业务事件附近),或干脆用线性趋势 + 节假日表------多数零售场景够用。

Q3:SARIMA 和 HW 到底选谁? 误差常常在 1% 以内。选 HW 的理由:状态可解释、在线更新、实现简单、易做分位数扩展;选 SARIMA 的理由:团队熟悉、诊断工具成熟。选维护成本低的,别选论文里好看的。

实操清单

  1. 上 ARIMA 前先做分段均值/方差体检,确认差分阶数 d。
  2. 定阶用网格 + AIC,别肉眼读 ACF/PACF 定终身;读图只用于 sanity check。
  3. Prophet 的节假日表与促销日历共用一张表(第 9 篇),避免两套口径。
  4. 任何「换更高级模型」的提案,先回答:它能吃哪些 HW 吃不到的变量?吃不到就别换。
  5. 回测里永远保留 Seasonal Naive 与 HW 作为对照行。

带走三句话:差分把「在第几层」变成「每步迈几级」,d 阶数靠分段均值体检 + 差分验证;Prophet = 趋势+周期+节假日的可加模型,强在可干预;M3/M4 的冷水:简单方法经常赢,复杂模型的价值在外部变量与规模化。

下一篇:SKU 从 10 个变成 10 万个,「一个序列一个模型」立刻崩盘。解法是把时间序列塞进表格------附 20 列宽表 schema 和泄漏审计步骤。

相关推荐
ADAI_Bowen3 小时前
2026 年 8 月建筑设计 AI 工具分析:基于几何保真、可控与编辑能力
人工智能·机器学习·计算机视觉
运维全栈笔记4 小时前
Windows 本地部署 Codex 全攻略:CC Switch 接入 DeepSeek 与模型自由切换
windows·深度学习·机器学习·chatgpt
桃西西呀5 小时前
买房怕买贵?我把真实成交价丢进决策树,看它到底按什么给房子定价
人工智能·机器学习·llm
CIO_Alliance6 小时前
AI微调系列(1)| 全量微调、LoRA、QLoRA 三种方案怎么选
前端·人工智能·神经网络·机器学习·embedding·企业ai转型
桃西西呀6 小时前
苹果刚发布 iPhone Duo,可 3104 款手机参数一聚类,参数分了档,价格却不匹配
人工智能·机器学习·llm
小白说大模型6 小时前
《FDE前沿部署工程师实战教程》企业 Agent 项目实战:从需求分析到 PoC 落地
人工智能·spring·机器学习·自然语言处理·chatgpt·数据挖掘·需求分析
IT毕设实战小研7 小时前
基于大数据的公共交通运营数据分析与可视化的设计与实现
大数据·人工智能·随机森林·机器学习·数据挖掘·数据分析·课程设计
TAN-90°-7 小时前
Deep Learning for Computer Vision——Large Scale Distributed Training
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·语言模型
ECT-OS-JiuHuaShan8 小时前
哲学是迭代学,数学是拓扑学
开发语言·人工智能·学习·算法·机器学习·php·拓扑学