📅  最后修改于: 2023-12-03 15:19:20.534000             🧑  作者: Mango
ARIMA (Autoregressive Integrated Moving Average) 模型是基于时间序列数据的一种预测模型,经常被应用于金融、气象等领域的预测。
ARIMA 模型包含三个部分:自回归 (AR)、差分 (I) 和移动平均 (MA)。ARIMA 模型的参数分别为 (p, d, q):
我们需要用到的包有 pandas
和 statsmodels
。
!pip install pandas
!pip install statsmodels
首先,导入需要的数据,确保数据是时间序列数据类型。然后,检查数据是否平稳。如果数据不平稳,则需要进行阶差分。
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('阶差分后的时间序列数据不平稳')
我们使用 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()
我们可以使用 ARIMA 模型来预测接下来的数据。以下是用 ARIMA 模型对未来5个时期进行预测的示例代码。
# 预测未来5个时期的数据
forecast = results.forecast(steps=5)
# 输出预测结果
forecast
到这里,我们完成了使用 ARIMA 模型进行时间序列预测的过程。需要注意的是,ARIMA 模型的参数需要根据数据进行调参,同时我们也需要检查预测结果的准确性。