# ARIMA模型详解：预测实用指南

> 用通俗易懂的语言讲解ARIMA模型：AR、I、MA各组成部分，如何选择p、d、q，残差诊断，预测方法，以及商业应用场景。开始预测

Source: https://www.electe.net/zh/%E9%82%AE%E5%AF%84/arima-models-explained

Site guide: https://www.electe.net/zh/llms.txt

ARIMA是一种统计预测方法，它将自回归、差分和移动平均结合成一个模型，记作ARIMA(p,d,q)。本指南将说明每个组成部分的原理及适用场景。

你可能正面临一个常见的业务问题：下个月能卖出多少产品、应该补多少库存，或者即将到账的现金是否足以覆盖计划中的支出？电子表格中的趋势线可以显示方向，但它往往忽略了当前结果如何依赖于近期历史、异常误差以及变化中的模式。

用通俗语言**讲解的ARIMA模型**能帮助你理解预测背后到底发生了什么。你将了解这三个组成部分是如何配合的、平稳性如何决定差分阶数、ACF和PACF图如何指导模型选择，以及为什么在任何人信任输出结果之前残差检验都至关重要。你还将看到普通ARIMA在哪些情况下会失效，尤其是在季节性、结构性突变、缺失观测值和促销驱动需求方面。

无需高深的数学知识。本指南的目标是培养实用判断力，让你能够判断ARIMA何时是一个有用的基准模型、何时需要季节性扩展，以及何时更丰富的预测方法更适合你的中小企业。

## 目录

- 为什么ARIMA对商业预测依然重要
-
  - 该框架为何依然实用
- ARIMA模型的三大构成要素
-
  - 自回归捕捉动量
  - 差分消除漂移
  - 移动平均从误差中学习
- 通过差分使数据平稳
-
  - 用日常语言解释差分
  - 避免机械化的转换
- 利用ACF、PACF和信息准则选择p、d、q
-
  - 解读两种图表
  - 用AIC和BIC作为决胜依据
- 估计模型并检查残差诊断
-
  - 实用诊断清单
  - 检查失败时该如何调整
- 商业场景中的实践预测
-
  - 预测所影响的三项决策
  - 轻量级实现方式
- ARIMA力所不及之处,以及ELECTE如何实现工作流自动化
-
  - 在选择模型前检查数据是否就绪
  - 关键要点

## 为什么ARIMA对商业预测依然重要

某位经理要求下季度的销售预测。团队打开一张电子表格,延伸近期趋势,得出一个数字。当需求稳定时,这样做或许可以接受,但时间序列数据往往带有**自相关性**,也就是说近期观测值与更早的观测值相关。一次销售激增可能影响下一期,而持续的下滑即便直线趋势图显示相反情况,也可能延续下去。

ARIMA正是为这类序列而设计的。它利用序列自身的历史数据和过去的预测误差,来建模数值随时间演变的方式。这使其适用于需求规划、现金流监控和运营风险审查等短期问题,前提是底层数据具备合适的结构。

### 该框架为何依然实用

根据预测参考资料[《Forecasting: Principles and Practice》](https://otexts.com/fpp2/arima.html)所述，ARIMA 与指数平滑法一起，仍然是**两种应用最广泛的时间序列预测方法之一**。它之所以能持续被采用，源于一种有益的平衡：

- **可解释性强：**你可以说明模型依赖的是近期数值、差分处理，还是过去的误差。
- **尊重时间顺序：**模型不会把每个观测值当作孤立的行来处理。
- **支持清晰的工作流程：**你可以检查序列、在需要时进行变换、估计候选模型，并验证残差。
- **可作为基准：**你可以用一个透明的统计模型来对比更复杂的方法。

零售分析师可能会用 ARIMA 来估算近期销售额，从而决定促销活动是否需要额外库存。财务团队可能会用它来监控一段短期的现金流动，并识别实际结果何时偏离预期表现。这些预测并不能取代商业判断，而是为其提供一个结构化的起点。

> **实用原则：**只有当预测的假设与你的数据实际表现相符时，预测才有意义。

读完本指南后，你将了解 **AR**、**I** 和 **MA** 分别代表什么，**p**、**d** 和 **q** 如何描述模型，ACF 和 PACF 模式如何辅助阶数选择，以及残差诊断如何揭示误导性的拟合结果。你还将掌握从普通 ARIMA 过渡到 SARIMA 或更复杂模型的判断规则。

## ARIMA 模型的三大组成部分

这个名称看起来很专业，但只要把它的各个组成部分拆开来看，ARIMA 就会变得更容易理解。每个组成部分都回答了关于该序列的一个不同问题。

### 自回归捕捉动量

**自回归（Autoregression，简称 AR）**探讨的是当前值是否呼应了过去的值。可以把它想象成行驶中车辆的动量：如果需求在近期持续上升，那么下一个观测值可能会保留部分这种走向。模型通过滞后值来体现这种持续性，滞后值是指序列中较早的观测值。

ARIMA(p,d,q) 中的 **p** 是自回归项的数量。更高的 p 值让模型能够考虑更多历史数值，但增加项数并不会自动提升预测效果，多余的历史数据可能会带来噪音或不必要的复杂性。

### 差分消除漂移

**差分（Integration，简称 I）**指的是差分处理。你不是直接对原始销售水平建模，而是用当前值减去前一个值，来研究各期之间的变化。这就像把一座山丘推平，这样你就能观察地形，而不会被整体坡度所干扰。

**d** 是使序列达到平稳所需的非季节性差分次数。平稳序列的统计特性会随时间保持相对稳定。如果原始序列存在漂移，差分处理可以让其模式更容易建模。

### 移动平均从误差中学习

**移动平均，或称 MA，**使用先前的预测误差。假设某次预测因需求突然变化而出现偏差。MA 分量让后续预测能够考虑到这些近期的偏差，就像恒温器在超调或欠调之后进行修正一样。

**q** 是预测方程中包含的滞后预测误差的数量。AR 关注过去的数值，MA 关注过去的误差。二者与差分结合，形成一个能够体现持续性、趋势消除和短期修正的模型。

George Box 和 Gwilym Jenkins 在 **1970 年的 Box-Jenkins 方法论**中推广了 ARIMA，该方法论确立了识别、估计和验证这一实用的迭代工作流程。因此，ARIMA 并非作为一个孤立的公式被引入，而是作为一套针对真实世界时间序列的建模体系发展而来，在拟合自回归和移动平均项之前先进行差分处理，正如 [IBM 的 ARIMA 概述](https://www.ibm.com/think/topics/arima-model)中所描述的那样。

> ARIMA(p,d,q) 结合了**过去的数值**、**差分**和**过去的预测误差**。字母告诉你模型使用了什么，数字告诉你每种成分使用了多少。

## 通过差分使数据平稳

ARIMA 要求序列在建模之前**是平稳的**。实际而言，序列不应因未受控制的趋势而持续改变其基本行为。其平均水平和波动幅度应保持足够稳定，使观测值之间的关系具有意义。

先从直观检查开始。持续上升的销售曲线、不断下降的财务余额，或随水平上升而波动加剧的情况，都可能表明存在非平稳性。你并不是要仅凭图表就证明这一诊断，而是在寻找证据，判断原始尺度是否可能掩盖了你需要预测的短期模式。

### 用日常语言理解差分

假设月度销售额每月增长约 **5%**。由于确切的销售水平持续攀升，模型可能主要检测到的是增长趋势，而非相邻变化之间的关系。一阶差分会将每个水平值替换为相对于上个月的变化量。趋势被消除后，所得序列可能会显得更平稳，其短期波动也可能更易于分析。

差分阶数 **d 是一个建模决策，而非随意猜测**。Box 和 Jenkins 建议对非平稳序列进行一次或多次差分，直至达到平稳，这一规则在 [NIST 工程统计手册](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc445.htm)中有所总结。

一个有用的工作流程如下：

1. **绘制原始序列图:** 观察趋势、离散程度的变化、缺口以及突发的水平变化。
2. **在需要时进行一阶差分:** 将每个观测值与其紧邻的前一个观测值进行比较。
3. **检查变换后的序列:** 查看平均行为和变异性是否现在看起来更加稳定。
4. **当序列已充分平稳时停止:** 进一步的差分可能会去除有意义的结构,使解读变得更困难。

### 避免机械式变换

过度差分会使序列产生不必要的噪声。它还可能在相邻的变化之间产生人为的依赖关系,从而使后续的ACF和PACF分析变得复杂。目标并不是尽可能多地进行差分,而是在去除非平稳行为的同时保留有用的信号。

运营数据在进行差分之前通常需要预处理。缺失的日期、缺货、报告中断以及不规律的采集时间表都可能扭曲从一个时期到下一个时期的变化。如果您的序列中存在缺口,在将差分视为主要解决方法之前,请[浏览缺失数据填补指南](https://www.electe.net/post/missing-data-imputation)。

## 利用ACF、PACF和信息准则选择p、d和q

一旦差分产生了一个可用的平稳序列,您就需要为**p**和**q**确定候选值。有两种图有助于您对这些选择进行推理:**自相关函数,即ACF**,以及**偏自相关函数,即PACF**。

ACF衡量序列与其自身在不同滞后阶数下的早期值之间的关系。PACF则关注在考虑了更短滞后阶数之后,某个特定滞后阶数下的关系。这两种图都不能给出确定的答案,但它们的形状为初步分析提供了有用的参考。

### 解读这两种图

如果**PACF在滞后p之后截尾**,而ACF逐渐衰减,这表明存在AR(p)结构。如果**ACF在滞后q之后截尾**,而PACF逐渐衰减,这表明存在MA(q)结构。这些规则在平稳化之后可作为指导,但不能替代验证过程。

ACF 模式PACF 模式建议模型逐渐衰减在滞后 p 之后截断ARIMA(p,d,0) 候选模型在滞后 q 之后截断逐渐衰减ARIMA(0,d,q) 候选模型两者都逐渐衰减两者都逐渐衰减考虑混合 ARIMA(p,d,q) 候选模型在已知周期上重复出现峰值PACF 中存在季节性结构考察季节性扩展

图表可能会显示出多种看似合理的配置，这很正常。你不应该不断调整 p 和 q，直到视觉上的模式看起来完美为止，因为一个与历史数据高度吻合的模型，在预测未来观测值时可能表现不佳。

### 使用 AIC 和 BIC 作为决胜依据

**AIC 和 BIC**在比较拟合度的同时会对不必要的参数进行惩罚。在对拟合同一序列、且评估条件相当的模型进行比较时，数值越低越好。BIC 通常施加更强的复杂度惩罚，因此往往更青睐结构更精简的模型。

把这些标准当作决策辅助工具，而非预测质量的证明。信息准则较低的候选模型仍然需要样本外评估和残差检验。自动阶数搜索也很常见，尤其是当你需要一致地比较多个可能的组合，而不是完全依赖人工看图判断时。

要实用地了解滞后值之间的关系，请[通过ACF PACF发现隐藏模式](https://www.electe.net/post/autocorrelation-analysis)。重要的习惯是将视觉证据、信息准则、预测验证和业务理解结合起来。

## 估计模型并检查残差诊断

模型估计是将ARIMA参数拟合到你的历史序列上。简单来说，这一过程是在寻找既能体现观测关系又能降低预测误差的系数。得到的系数固然重要，但它们并不是最终的质量检验。

真正的检验在于模型完成工作后剩下的东西。这些剩余部分被称为**残差**，即观测值与拟合值之间的差异。一个好的模型留下的残差应当类似于无法解释的随机噪声，而不是等待被发现的第二种模式。

### 一份实用的诊断清单

将诊断作为质量关卡使用：

- **白噪声：**残差不应显示出明显的趋势、周期或聚集现象。重复出现的模式意味着模型遗漏了结构。
- **无残差自相关：**残差在各滞后阶数之间不应保持相关。Ljung-Box类检验有助于检验这一整体表现。
- **接近零的均值：**残差应围绕零值平衡分布，而不是持续地高估或低估。
- **稳定的方差：**误差的分布范围应保持相对一致。方差扩大可能表明模型需要变换或采用不同的方法。
- **近似正态性：**大致呈正态分布的残差有助于得到有用的区间估计，不过这项检验的重要性不及独立性检验。

最重要的失败情形是残差自相关。这意味着模型仍然遗漏了结构，应当进行修正，正如[宾夕法尼亚州立大学关于模型检验的时间序列课程](https://online.stat.psu.edu/stat510/Lesson03.html)所强调的那样。

### 检验失败时该如何调整

不要仅仅因为估计过程收敛就发布预测结果。如果残差自相关仍然存在，请重新审视候选阶数，重新考虑差分选择，并检查季节性或结构性断点是否是导致该模式的原因。更高阶的模型并不必然是答案。缺失的结构可能来自ARIMA仅凭其过去值无法体现的某个业务事件。

> **质量关卡：**一个技术上拟合完成的ARIMA模型，只有当其残差表明重要的时间依赖结构已被充分考虑时，才是可信的。

## 业务用例中的实践预测

预测只有在能够影响决策时才有价值。ARIMA 通常会生成一个**点预测**（即中心估计值），并附带一个**不确定性区间**，用以显示围绕该值的合理范围。这个区间之所以重要，是因为单一数值可能造成错误的信心，尤其是在规划周期延长时。

### 预测所影响的三类决策

**零售促销：**零售经理会查看下个月的预期销售水平及相关的不确定性范围。点预测为基础促销计划提供支持，而区间则帮助经理判断该活动是否需要灵活的库存或谨慎的预算。

**库存补货：**库存规划员利用预期需求来审查再订货点和供应商的交货时间。如果不确定性区间较宽，规划员可能会选择更保守的审查方式，而不是将中心估计值视为一个有保证的需求量。

**风险监控：**金融服务团队可以使用短期预测来比较预期的现金流动或其他受监控的序列与实际结果。当结果与预测区间出现重大偏差时，可能触发调查，但不应将其视为不当行为的证据或完整的风险评估。

预测区间通常会随着预测时间的推移而逐渐扩大，因为每增加一步都会带有来自先前预测的不确定性。这使得近期的 ARIMA 预测比远期预测更容易付诸行动。对于财务或合规决策，应将预测作为分析支持使用，而不是作为财务建议或必要控制措施的替代品。

### 轻量级实现

分析师可以在 Python 中使用 `statsmodels`，或在 R 中使用 `forecast` 包来实现 ARIMA。命令通常很简短，但解读结果所需的谨慎程度要高于拟合模型本身：

1. 准备一个有序且完整的时间序列。
2. 选择或搜索候选的 p、d 和 q 值。
3. 估计模型。
4. 检查残差。
5. 生成点预测和不确定性区间。
6. 在实际的未来观测值出现后，将输出结果与之进行比较。

编写代码只是简单的部分。判断数据和模型假设是否可信,才是需要专业判断力的地方。

## ARIMA 力所不及之处，以及 ELECTE 如何实现工作流程自动化

ARIMA 存在明显的局限性。强季节性通常需要使用**SARIMA**，写作**ARIMA(p,d,q)\*(P,D,Q)**。其中,P、D 和 Q 分别代表季节性自回归、差分和移动平均成分。普通的 ARIMA 模型可能会忽略在每个周期同一时点重复出现的模式,因此季节性项能提供更好的拟合效果,正如[Forecast Pro 的 Box-Jenkins 预测指南](https://www.forecastpro.com/2020/05/box-jenkins-forecasting/)中所解释的那样。

当业务状况变化速度超过历史数据所能反映的程度时，ARIMA 也会变得不可靠。结构性断裂、外部冲击、产品发布、缺货以及促销驱动的需求，都可能使过去的数值和误差成为不可靠的参考。一个模型可能通过了技术检验，但在底层机制发生变化后仍会误导决策者。

### 在选择模型前检查数据的就绪状态

中小企业的数据集常常带有教程中未提及的限制条件：

- **完整的历史记录很重要：**ARIMA 需要一个有序、无缺口的时间序列。在拟合模型之前，应先调查并处理缺失时段。
- **足够的观测数量很重要：**根据 Forecast Pro 指南中的实用建议，可靠的预测通常需要大约 **50 到 100 个观测值**。
- **事件需要背景信息：**ARIMA 并不知道某次促销、缺货、竞争对手行动或新产品发布导致了变化。应纳入相关的外部驱动因素，或选择更丰富的建模方法。
- **诊断始终不可或缺：**残差存在持续的自相关意味着模型需要修正。不要将预测结果视为最终成品来呈现。

这些检查使 ARIMA 成为一个有用、透明的基准，而非自动化的答案。如果季节性结构占主导，应测试 SARIMA。如果外部驱动因素或机制转变占主导，则应考虑能够体现这些影响的模型。

一个平台可以在准备工作、方法比较、预测和异常监测方面提供支持，同时将审核决策留给团队。**ELECTE 是一个面向中小企业的数据分析平台，**能够通过其 AI Agent 自动完成预处理、模型选择、预测和异常监测。团队还可以在更广泛的工作流程中查看 [Electe 的 AI 预测功能](https://www.electe.net/post/predict-analytics-using-electe-predicting-feature)。

### 要点总结

1. **从数据就绪状态入手：**确认序列完整、有序，且适合进行分析。
2. **理解 p、d、q：**利用它们来描述自回归、差分和过去的预测误差。
3. **验证残差：**持续存在的自相关需要对模型进行修正。
4. **扩展或更换方法：**季节性结构使用 SARIMA，当外部驱动因素或机制转变起重要作用时使用更丰富的模型。
5. **将预测与决策相连接：**谨慎使用预测区间，尤其是在展望更远的未来时。

ELECTE 帮助中小企业准备业务数据、比较预测方法、生成预测性洞察并监测异常情况，而无需手动构建每一个建模步骤。访问 [ELECTE](https://www.electe.net)，了解针对销售、库存或风险数据的自动化预测功能。
