ARIMA(AutoRegressive Integrated Moving Average)是一种经典的时序建模方法,自1970年提出以来广泛应用于时间序列分析。其核心概念包括三个参数:AR(自回归)p、I(差分)d和MA(移动平均)q。AR(p)表示当前值是过去p个值的线性组合,I(d)表示对序列进行d次差分以使其平稳,MA(q)表示当前值是过去q个残差的线性组合。ARIMA模型适用于处理平稳且具有单一季节性的数据。读者学习后能够使用ARIMA模型进行时间序列预测,并通过残差诊断评估模型性能。此外,读者还将了解如何使用`auto_arima`自动选择最佳参数组合,以及在面对非线性趋势、多重季节性或缺失值时,考虑使用Prophet等更先进的工具。
ARIMA 模型
ARIMA (AutoRegressive Integrated Moving Average) 是时序建模的"经典 + 主力"模型,1970 年提出至今仍在用。理解 ARIMA = 理解时序建模的核心思路。
ARIMA 拆解
ARIMA 有 3 个参数 (p, d, q):
- AR (AutoRegressive) p: 当前值 = 过去 p 个值的线性组合
- I (Integrated) d: 做了 d 次差分让它平稳
- MA (Moving Average) q: 当前值 = 过去 q 个残差的线性组合
公式:
y(t) = c + phi(1) * y(t-1) + ... + phi(p) * y(t-p)
+ theta(1) * e(t-1) + ... + theta(q) * e(t-q) + e(t)
直观:
- AR(p): 用历史值预测 (明天销量 ≈ 前 7 天销量的加权平均)
- MA(q): 用预测误差修正 (今天卖得差是因为前天预测偏高)
- I(d): 差分次数 (一般 d=0 或 1)
4 步建模流程
import pandas as pd
import numpy as np
from statsmodels.tsa.arima.model import ARIMA
import pmdarima as pm
auto_arima 会遍历 (p, d, q) 组合,选 AIC 最小的 (AIC 衡量"拟合好 + 参数少"的平衡)。
残差诊断:看模型是否充分
训完模型后, 必须看残差诊断。4 个子图:
- 标准化残差时序 (应该像白噪声)
- 直方图 (应该接近正态)
- Q-Q 图 (应该沿红线)
- ACF (应该无自相关)
替代方案:Prophet
ARIMA 对非线性趋势 + 多重季节性 + 缺失值 处理不好。下一章 Prophet 是 Facebook 2017 年开源的工具,工业界更常用。
小结
- ARIMA(p, d, q) = 自回归 + 差分 + 移动平均
pmdarima.auto_arima自动选参, 比手挑省事- SARIMA 加季节项, 参数 (p, d, q) × (P, D, Q, s)
- 残差诊断 4 步: 时序图、直方图、Q-Q、ACF
- ARIMA 适合"平稳 + 单一季节"的数据,复杂场景用 Prophet 或 LSTM
练习思考
- 用
auto_arima对气温数据建模, 输出的最佳 (p, d, q) 是多少?为什么? - 对比 ARIMA 和 SARIMA 在有强季节性数据上的预测 MAPE, 差距有多大?
- 在 ARIMA 残差诊断中, 残差还有强自相关说明什么?应该怎么调?
章末小测验
检验你对《ARIMA 模型》的掌握程度。
ARIMA(p, d, q) 中的 d 代表什么?
用 pmdarima 的 auto_arima 有什么好处?
学完这章, 你可能想看
这门课在以下学习路径中
当前课程出现在 1 条系统化路径里, 你可以一键生成完整学习计划, 自动跳过已完成章节。
还有疑问? 问问 AI (v19.5)
基于全站 19 门课 68 章内容检索 + LLM 总结, 会引用具体章节作为出处