238 0

[其他] ARIMA时间序列分析 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2018-10-9
最后登录
2018-10-9

楼主
哈哈哈呵呵嘿 发表于 2025-11-27 15:05:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

ARIMA时间序列预测模型详解

ARIMA(Autoregressive Integrated Moving Average)是一种广泛应用于时间序列分析的经典统计方法,特别适用于处理非平稳的时间序列数据。该模型融合了三个核心组件:自回归(AR)、差分(I)和移动平均(MA),能够通过差分技术将原始序列转换为平稳序列后进行建模与预测。

ARIMA模型通常表示为 ARIMA(p, d, q),其中:

  • p:自回归项的阶数,表示当前值依赖于前p个历史观测值;
  • d:差分的阶数,即需要对序列进行d次差分以实现平稳性;
  • q:移动平均项的阶数,代表当前值受过去q个误差项的影响程度。
[此处为图片1]

平稳性检验与差分变换

在构建时间序列模型之前,必须首先判断序列是否具有平稳性。常用的检验方法是增强型迪基-福勒检验(ADF检验,Augmented Dickey-Fuller Test)。其原假设为“时间序列是非平稳的”。若检验得到的p值小于设定的显著性水平(如0.05),则拒绝原假设,认为序列是平稳的。

对于不满足平稳性的序列,可通过差分操作进行转换。一阶差分定义如下:

Xt = Xt - Xt-1

更高阶的差分(d阶)可通过递归方式计算:

dXt = d-1Xt - d-1Xt-1

自回归部分(AR)

自回归模型AR(p)表明当前时刻的值可由其前p个时间点的观测值线性组合表示,表达式为:

Xt = c + Σi=1p φiXt-i + εt

其中,φi 是待估计的自回归系数,εt 表示白噪声误差项,c为常数偏移量。

移动平均部分(MA)

移动平均模型MA(q)描述的是当前值与过去q个随机误差项之间的线性关系,公式如下:

Xt = μ + εt + Σi=1q θiεt-i

这里,θi 为移动平均系数,μ 是整个序列的均值,εt 同样为白噪声项。

ARIMA模型综合形式

将上述三部分整合后,ARIMA(p,d,q)的一般表达式为:

dXt = c + Σi=1p φidXt-i + εt + Σi=1q θiεt-i

引入滞后算子L(定义为 LXt = Xt-1),模型可简化为更紧凑的形式:

(1 - Σi=1p φiLi)(1 - L)dXt = c + (1 + Σi=1q θiLit

模型识别与参数定阶

初步确定p和q的常用方法是观察自相关函数(ACF)图与偏自相关函数(PACF)图的特征:

  • 对于AR(p)过程:ACF呈拖尾衰减,PACF在第p阶后截断;
  • 对于MA(q)过程:ACF在第q阶后截断,PACF呈拖尾;
  • 对于ARMA(p,q)或ARIMA模型:ACF与PACF均呈现拖尾现象。

为了更精确地选择最优阶数,可以采用信息准则法,例如AIC(赤池信息准则)和BIC(贝叶斯信息准则),目标是选取使AIC或BIC最小的模型组合。具体公式如下:

AIC = 2k - 2ln(L)

BIC = k·ln(n) - 2ln(L)

其中,k为模型中待估参数总数,n为样本容量,L为最大似然函数值。

参数估计与残差诊断

参数通常使用极大似然估计(MLE)或最小二乘法进行求解。模型拟合完成后,需对残差序列进行严格检验,确保其符合以下条件:

  • 残差为白噪声——可通过Ljung-Box检验验证;
  • 残差无显著自相关——借助ACF图检查;
  • 残差服从正态分布——可利用Q-Q图或Shapiro-Wilk检验判断。

预测与置信区间计算

基于已训练的ARIMA模型,可对未来h步进行点预测,预测值为条件期望:

t+h = E(Xt+h | Xt, Xt-1, ...)

同时,可构造预测区间以反映不确定性,其计算公式为:

t+h ± zα/2 × √(Σi=0h-1 ψiσ)

其中,ψi 来自模型的MA(∞)表示形式,σ 为残差方差,zα/2 为标准正态分布的分位数。

Python代码实现示意

以下是使用Python进行ARIMA建模的基本流程框架(仅展示结构逻辑,不含完整执行代码):

import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.tsa.stattools import adfuller, acf, pacf
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

# 数据加载与预处理
data = pd.read_csv('time_series_data.csv')
ts = data['value']

# ADF平稳性检验
result = adfuller(ts)
print('ADF Statistic:', result[0])
print('p-value:', result[1])

# 差分处理
diff_ts = ts.diff().dropna()

# 绘制ACF与PACF图辅助定阶
plot_acf(diff_ts)
plot_pacf(diff_ts)

# 拟合ARIMA模型
model = ARIMA(ts, order=(p, d, q))
fitted_model = model.fit()
print(fitted_model.summary())

# 残差检验
residuals = fitted_model.resid
plot_acf(residuals)

# 进行未来h步预测
forecast = fitted_model.forecast(steps=h)
[此处为图片2]

数据加载与平稳性检验是时间序列分析的重要步骤。首先通过 pandas 读取包含日期列的 CSV 文件,并将日期设置为索引:

import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller

data = pd.read_csv('time_series.csv', parse_dates=['date'], index_col='date')

接着使用 ADF(Augmented Dickey-Fuller)检验判断时间序列是否平稳:

result = adfuller(data['value'])
print(f'ADF p-value: {result[1]}')

若检验结果显示序列非平稳(如 p 值大于显著性水平),则可进行一阶差分处理以增强平稳性:

data['diff'] = data['value'].diff().dropna()

[此处为图片1]

在完成数据预处理后,构建 ARIMA 模型进行拟合。以下示例采用 (1,1,1) 阶参数:

model = sm.tsa.ARIMA(data['value'], order=(1,1,1))
results = model.fit()
print(results.summary())

模型训练完成后,可以对未来若干期进行预测。例如,预测未来 10 个时间点的值:

forecast = results.get_forecast(steps=10)
print(forecast.predicted_mean)

[此处为图片2]

预测精度评估指标

为了衡量模型预测效果,常用以下两个统计指标:

均方根误差(RMSE):
该指标反映预测值与实际值之间的偏差大小,计算公式如下:
RMSE = \sqrt{\frac{1}{n}\sum_{t=1}^n (X_t - \hat{X}_t)^2}

平均绝对百分比误差(MAPE):
用于表示相对误差水平,适合不同量纲的数据比较,其表达式为:
MAPE = \frac{100\%}{n}\sum_{t=1}^n \left| \frac{X_t - \hat{X}_t}{X_t} \right|

季节性ARIMA模型扩展(SARIMA)

当时间序列呈现明显的周期性波动时,应使用 SARIMA 模型进行建模。该模型在传统 ARIMA 的基础上引入季节性参数,完整形式为 SARIMA(p,d,q)(P,D,Q)s,其中:

  • s:季节周期长度(如月度数据中年度周期 s=12)
  • P:季节性自回归阶数
  • D:季节性差分阶数
  • Q:季节性移动平均阶数

对应的模型方程可表示为:
\Phi_P(L^s)\phi_p(L)(1-L^s)^D(1-L)^d X_t = \Theta_Q(L^s)\theta_q(L)\varepsilon_t
其中,\Phi_P 和 \Theta_Q 分别代表季节性自回归和移动平均的多项式函数。

[此处为图片3]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:时间序列分析 ARIMA 时间序列 ima Rim

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 18:26