Python实现SARIMA预测模型加置信区间代码
时间: 2023-11-19 22:44:56 浏览: 142
以下是Python实现SARIMA预测模型加置信区间的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.statespace.sarimax import SARIMAX
# 读取数据
df = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
# 拆分训练集和测试集
train_data = df[:'2020-01-01']
test_data = df['2020-01-01':]
# 定义SARIMA模型
model = SARIMAX(train_data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
# 拟合模型
result = model.fit()
# 预测未来数据
forecast = result.forecast(steps=len(test_data))
# 计算置信区间
forecast_ci = result.get_forecast(len(test_data)).conf_int()
# 绘制预测结果和置信区间
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, forecast.values, label='forecast')
plt.fill_between(test_data.index, forecast_ci[:, 0], forecast_ci[:, 1], color='gray', alpha=0.2)
plt.legend()
plt.show()
```
其中,`order`和`seasonal_order`是SARIMA模型的超参数,需要根据实际情况进行调整。`forecast`是预测的未来数据,`forecast_ci`是置信区间。在绘制图形时,使用`fill_between`函数来绘制置信区间。
阅读全文