ARIMA 时序模型 · 深度手册
分类:预测类 | 难度:★★★ 高阶 | 编号:
arima
一、这是什么(一句话用途)
有趋势 / 季节性的单变量序列预测
二、核心思想
ARIMA(自回归积分滑动平均)是单变量时间序列预测的工业级标准模型。它的三大组件:AR(自回归)用过去若干期自身值预测当前;MA(移动平均)用过去若干期预测误差修正当前;I(积分/差分)通过差分把非平稳序列转成平稳。三者组合 ARIMA 既能刻画趋势又能刻画短期相关性。定阶是核心技能——靠 ACF/PACF 图形与 AIC 准则。
三、数学原理与推导
对序列 作 阶差分 ( 为滞后算子 )。ARMA 模型:
其中 (自回归多项式),(滑动平均多项式), 为白噪声。
参数辨识:
- :使序列平稳的最小差分次数(ADF 检验确认);
- :由平稳后序列的 ACF(截尾于 )、PACF(截尾于 )初判,再用 AIC 在候选组合中选最优:
拟合后需检验残差是否为白噪声(Ljung-Box 检验),预测给出带置信区间的点估计。
四、建模 / 求解步骤
- 平稳性检验(ADF)
- 定阶 d(差分次数)
- 选 p,q(ACF/PACF/ AIC)
- 拟合 ARIMA(p,d,q)
- 残差检验 + 预测
五、关键公式速查
(1−Σφ_i B^i)(1−B)^d y_t = (1+Σθ_j B^j) ε_t
六、典型示例
月度客流带趋势 → 差分后 ARMA 预测。
完整算例(数字演示,照着算一遍)
场景:差分后序列平稳,定阶 ARIMA(1,1,1)。
拟合:φ1=0.6,θ1=−0.3,对原序列预测未来 3 期 = (153, 156, 159)。
结论:需先 d 阶差分使平稳,再按 AIC 选 p,q。
七、Python 实现示例
import os, numpy as np
import pandas as pd
HERE = os.path.dirname(os.path.abspath(__file__))
df = pd.read_csv(os.path.join(HERE,"..","datasets","arima.csv"))
y = df["value"].to_numpy(dtype=float)
# 一阶差分转平稳
dy = np.diff(y)
# 用自相关粗估:简单 AR(1) 演示
X = dy[:-1]; Y = dy[1:]
phi = np.polyfit(X, Y, 1)[0]
fc = y[-1] + (phi*(y[-1]-y[-2]))
print("AR(1) 系数 phi=%.3f"%phi)
print("下期预测=%.2f"%fc)
配套文件:
py_arima.py(需 numpy / pandas;与下方数据集配套练习)
八、MATLAB 实现示例
%% ARIMA 简化示例:差分+AR(1)(MATLAB/Octave)
df = readtable('..\datasets\arima.csv');
y = table2array(df(:,2:end));
dy = diff(y);
phi = polyfit(dy(1:end-1), dy(2:end), 1); phi=phi(1);
fc = y(end) + phi*(y(end)-y(end-1));
fprintf('下期预测=%.2f\n', fc);
配套文件:
m_arima.m(基础 MATLAB / Octave 即可运行)
九、练手数据集(可下载)
36 期含趋势与季节成分月度序列。用于差分转平稳、AR(1) 拟合与预测。
- 字段:month, value
- 行数:36 行
- 下载:
arima.csv
十、常见误区与避坑清单
- 先差分到平稳
- 过拟合阶数
- 需残差为白噪声
十一、结果怎么解读
看 AIC 选阶;预测带置信区间。
十二、常与谁搭配
季节用 SARIMA。
十三、论文写作技巧(怎么把它写进论文)
把 ARIMA 时序模型 写进论文,核心不是堆公式,而是讲清「为什么用它、结果怎么呈现、如何对比」三件事。
1. 动机怎么写(为什么用它而不是别的)
先说明你的数据具有时间 / 序列依赖,或需要由已知推断未知,因此采用预测类方法。交代输入特征与预测目标,并说明为何选 ARIMA 时序模型(如非线性强、含季节性、小样本等),对比朴素法(如移动平均)点出优势。
2. 结果怎么写(图表与指标)
结果必须给「预测值 vs 真实值」对比曲线 + 误差指标表(MAE / RMSE / MAPE),最好附训练 / 验证分段。若有多个模型,用一张表横向对比误差,突出 ARIMA 时序模型 更优。
3. 可直接套用的写作话术
- 中文模板:针对<问题>,本文采用 ARIMA 时序模型 进行有趋势 / 季节性的单变量序列预测。该方法能够自动刻画<优势>,在处理<场景>时相较<对比方法>更具<特点>。
- 英文模板:To address
, we adopt ARIMA 时序模型 to 有趋势 / 季节性的单变量序列预测. Benefiting from its ability to , it outperforms on .
4. 同类易踩的写作坑
不可只报 R² 不看外推;时间序列要显式说明训练 / 测试切分方式,避免用未来信息泄漏(look-ahead bias)。
5. 典型论文段落范例(可直接参考 / 改写)
下面是一段可直接套用的论文表述,已按本算法定制,填空处(…)替换成你的真实数值即可。
由于日用电量具有明显的时间依赖与周期波动,本文采用 ARIMA 时序模型 对未来 30 天负荷进行预测,以 RMSE=…、MAPE=… 的精度优于 ARIMA 基线,验证了模型对非线性趋势的捕捉能力。
Given the strong temporal dependence and periodic fluctuation of daily load, we employ ARIMA 时序模型 to forecast the next 30 days, achieving RMSE=… and MAPE=… and outperforming the ARIMA baseline, which confirms its strength in capturing nonlinear trends.
十四、相关手册(延伸阅读)
(暂无直接关联手册,可前往手册库浏览其它算法)
十五、本手册导航
- 上一篇:多层感知机(全连接神经网络) · 深度学习
- 下一篇:BP 神经网络 · 预测类
- 返回:算法深度手册库 | 资料站首页
本手册由「算法深度手册生成器」自动产出,配套提供 Python / MATLAB 双版本示例与可下载练手数据集。