用python写一个arima的时序预测算法加后续预测部分
时间: 2024-02-04 07:09:45 浏览: 65
ARIMA_arima_python_时序预测python_
5星 · 资源好评率100%
好的,以下是使用Python实现ARIMA时序预测算法的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
# 导入数据
data = pd.read_csv('data.csv', index_col='date', parse_dates=True)
data = data.dropna()
# 绘制原始数据图
plt.plot(data)
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Original Data')
plt.show()
# 拆分数据集
train_size = int(len(data) * 0.8)
train_data, test_data = data[:train_size], data[train_size:]
# 拟合ARIMA模型
model = ARIMA(train_data, order=(1, 1, 1))
model_fit = model.fit(disp=0)
print(model_fit.summary())
# 绘制预测结果图
pred_start_date = test_data.index[0]
pred_end_date = test_data.index[-1]
pred = model_fit.predict(start=pred_start_date, end=pred_end_date, dynamic=True)
plt.plot(data, label='Original Data')
plt.plot(pred, label='Predicted Data')
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Prediction Result')
plt.legend()
plt.show()
# 后续预测
future_start_date = pd.to_datetime('2022-01-01')
future_end_date = pd.to_datetime('2022-12-31')
future_pred = model_fit.predict(start=future_start_date, end=future_end_date, dynamic=True)
plt.plot(data, label='Original Data')
plt.plot(future_pred, label='Future Prediction')
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Future Prediction')
plt.legend()
plt.show()
```
在这个示例中,我们首先导入数据并绘制原始数据图。接着,我们将数据集拆分为训练集和测试集,并使用训练集拟合ARIMA模型。然后,我们使用测试集进行预测,并绘制预测结果图。
最后,我们使用训练集和测试集中的数据再次拟合ARIMA模型,并使用该模型进行后续预测。我们设置了预测的起始日期和结束日期,然后绘制了未来预测结果图。
需要注意的是,ARIMA模型的参数需要根据实际情况进行调整,这里只是一个简单的示例。希望这可以帮助您实现ARIMA时序预测算法!
阅读全文