Python实现ARIMA滚动多步预测误差分析以及可视化代码
时间: 2023-11-21 12:09:51 浏览: 81
下面是Python实现ARIMA滚动多步预测误差分析以及可视化的代码:
```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
from sklearn.metrics import mean_squared_error
# 加载数据
data = pd.read_csv('data.csv', header=None, index_col=0, squeeze=True)
train_data = data[:-12] # 训练集
test_data = data[-12:] # 测试集
# 训练模型
model = ARIMA(train_data, order=(2, 1, 2))
model_fit = model.fit(disp=0)
# 预测并计算误差
predictions = []
for i in range(len(test_data)):
# 滚动多步预测
prediction = model_fit.forecast(steps=3)[0]
predictions.extend(prediction)
# 更新模型
model_fit = model_fit.update(train_data[-1:i+len(predictions)+1])
error = mean_squared_error(test_data, predictions)
print('Test MSE: %.3f' % error)
# 可视化结果
plt.plot(data)
plt.plot(train_data.index, train_data.values, label='train')
plt.plot(test_data.index, test_data.values, label='test')
plt.plot(test_data.index, predictions, label='predictions')
plt.legend()
plt.show()
```
说明:
- 首先加载数据,然后分割为训练集和测试集。
- 使用训练集训练ARIMA模型。
- 然后使用模型进行滚动多步预测,并计算误差。
- 最后将原始数据、训练集、测试集和预测结果可视化。
阅读全文