📜  Python|时间序列预测的 ARIMA 模型(1)

📅  最后修改于: 2023-12-03 15:19:20.534000             🧑  作者: Mango

Python时间序列预测的 ARIMA 模型

简介

ARIMA (Autoregressive Integrated Moving Average) 模型是基于时间序列数据的一种预测模型,经常被应用于金融、气象等领域的预测。

ARIMA 模型包含三个部分:自回归 (AR)、差分 (I) 和移动平均 (MA)。ARIMA 模型的参数分别为 (p, d, q):

  • p:表示玩家需要考虑前多少个时期的数据,称为自回归项;
  • d:表示进行多少阶差分,使序列成为平稳序列;
  • q:表示需要考虑前多少个时期的误差项,称为移动平均项。
使用步骤
1. 安装需要的包

我们需要用到的包有 pandasstatsmodels

!pip install pandas
!pip install statsmodels
2. 导入数据并预处理

首先,导入需要的数据,确保数据是时间序列数据类型。然后,检查数据是否平稳。如果数据不平稳,则需要进行阶差分。

import pandas as pd

# 导入数据
df = pd.read_csv('data.csv',index_col=0,parse_dates=['date'])
df.head()

# 检查数据是否平稳
from statsmodels.tsa.stattools import adfuller

result = adfuller(df['price'])
if result[1] < 0.05:
    print('数据平稳')
else:
    print('数据不平稳')

# 进行阶差分
df_diff = df.diff().dropna()
result = adfuller(df_diff['price'])
if result[1] < 0.05:
    print('阶差分后的时间序列数据平稳')
else:
    print('阶差分后的时间序列数据不平稳')
3. 拟合 ARIMA 模型

我们使用 statsmodels 自带的 ARIMA() 函数来拟合 ARIMA 模型。

from statsmodels.tsa.arima_model import ARIMA 

# 拟合 ARIMA 模型
model = ARIMA(df, order=(1,1,1)) # p,d,q 的值需要根据数据调参
results = model.fit()

# 查看模型拟合结果的信息
results.summary()
4. 模型预测

我们可以使用 ARIMA 模型来预测接下来的数据。以下是用 ARIMA 模型对未来5个时期进行预测的示例代码。

# 预测未来5个时期的数据
forecast = results.forecast(steps=5)

# 输出预测结果
forecast
结论

到这里,我们完成了使用 ARIMA 模型进行时间序列预测的过程。需要注意的是,ARIMA 模型的参数需要根据数据进行调参,同时我们也需要检查预测结果的准确性。