预测值的置信区间和预测值在同一个图
时间: 2024-03-15 07:47:32 浏览: 152
要绘制预测值的置信区间和预测值在同一个图中,可以使用`forecast`方法来获取置信区间,并使用`plot`方法来绘制图表。下面是修改后的示例代码:
```python
import pandas as pd
from statsmodels.tsa.api import ExponentialSmoothing
# 读取数据
df = pd.read_csv('data.csv', header=0, index_col=0, parse_dates=True)
# 拆分训练集和测试集
train_size = int(len(df) * 0.8)
train, test = df[:train_size], df[train_size:]
# 拟合模型
model = ExponentialSmoothing(train, seasonal_periods=12, trend='add', seasonal='add')
model_fit = model.fit()
# 预测测试集
predictions = model_fit.forecast(len(test))
# 获取置信区间
ci = model_fit.get_forecast(len(test)).conf_int()
# 绘制预测结果和实际值
ax = df.plot()
predictions.plot(ax=ax, label='Predictions')
ax.fill_between(ci.index, ci.iloc[:, 0], ci.iloc[:, 1], color='k', alpha=0.1, label='Confidence Interval')
plt.legend()
plt.show()
```
在这个示例中,我们使用了`get_forecast`方法来获取置信区间,并将其绘制在预测值图表上。`conf_int`方法返回一个DataFrame,其中包含置信区间的上限和下限。我们使用`fill_between`方法来填充区间,并使用`alpha`参数来指定透明度。最后,我们使用`legend`方法来添加图例。
阅读全文