深入理解 ARIMA 模型:时间序列预测指南

ARIMA(自回归积分滑动平均)模型是用于预测时间序列数据的强大工具。它结合了三个核心组件:自回归(AR)、差分(I)和移动平均(MA)。这些组件使得模型能够捕捉趋势和季节性等模式,帮助我们根据历史数据预测未来的数值。它通过组合这三个关键组件来对数据进行建模:

1. 自回归(AR):

ARIMA 模型的自回归部分用参数 p 表示。它代表了当前观测值与其先前数值之间的依赖关系。从数学上讲,AR(p) 模型可以表示为:

> Yt=c+\phi1 Y{t-1}+\phi2 Y{t-2}+\ldots+\phip Y{t-p}+\epsilont

其中:

  • Y_t 是当前观测值
  • c 是常数项
  • \phi1 到 \phi2 是自回归参数
  • \epsilon_t 代表时间 t 的误差项

2. 差分(I):

ARIMA 的差分部分用参数 d 表示。它涉及通过对连续观测值进行差分,将非平稳时间序列转换为平稳序列。我们可以多次应用差分操作,直到数据达到平稳状态。差分的公式非常直观:

> Yt‘ = Yt – Y_{t-1}

其中:

  • Y_t‘ 是时间 t 的差分序列
  • Y_t 是时间 t 的原始序列
  • Y_{t-1} 是上一个时间步的序列值

差分过程通常需要应用多次,直到实现平稳性。符号 I(d) 表示实现平稳性所需的差分阶数。

3. 移动平均(MA):

ARIMA 模型的移动平均部分用参数 q 表示。它表示当前观测值对先前预测误差的依赖程度。从数学上讲,MA(q) 模型可以表示为:

> Yt=c+\epsilont+\theta1 \epsilon{t-1}+\theta2 \epsilon{t-2}+\ldots+\thetaq \epsilon{t-q}

其中:

  • Y_t 是当前观测值
  • c 是常数项
  • \epsilon_t 是时间 t 的误差
  • \theta1 到 \thetaq 是移动平均参数

工作原理

  • 识别平稳性: ARIMA 模型要求时间序列数据必须是平稳的。平稳性意味着时间序列的统计特性(如均值和方差)随时间保持恒定。
  • 参数估计: 估计参数 p、d 和 q 涉及分析时间序列数据的自相关函数(ACF)和偏自相关函数(PACF)图。ACF 有助于确定 MA 阶数,而 PACF 则有助于确定 AR 阶数。
  • 模型拟合: 一旦确定了参数,ARIMA 模型就会拟合到数据上。这涉及最小化误差,通常使用最大似然估计等方法,以获得自回归和移动平均项的最合适系数。
  • 预测: 拟合模型后,我们可以通过随时间迭代来预测未来的数值。

ARIMA 中的模型参数

ARIMA 模型由三个主要参数定义:p、d 和 q。

  • p(AR 阶数): 代表自回归项的数量,记为 p。它指的是直接影响当前值的过去观测值的数量。
  • d(差分阶数): 代表使时间序列平稳所需的差分次数。它涉及计算连续观测值之间的差值。
  • q(MA 阶数): 记为 q,它代表预测方程中滞后预测误差的数量。

为这些参数选择合适的值会显著影响模型的预测能力。然而,确定正确的值通常是一项具有挑战性的任务。

ARIMA 的实现

我们将在 Python 中实现 ARIMA 模型以进行时间序列预测。这包括检查平稳性、执行差分、分析 ACF/PACF 图以及使用网格搜索来确定用于预测的最佳 ARIMA 参数等步骤。

1. 安装必要的库

我们将导入时间序列分析所需的基本 Python 库。

  • pandasnumpymatplotlib用于数据处理和绘图。
  • statsmodels提供了 ARIMA 建模、ADF 检验(用于平稳性)和 ACF/PACF 绘图工具。
  • warnings.filterwarnings(‘ignore‘) 用于在模型拟合和评估期间抑制警告,以保持输出整洁。

Python


import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from statsmodels.tsa.arima.model import ARIMA

from statsmodels.tsa.stattools import adfuller

from statsmodels.grap

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/48391.html
点赞
0.00 平均评分 (0% 分数) - 0