首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sktime中不一致的预测范围设置

在sktime中不一致的预测范围设置
EN

Stack Overflow用户
提问于 2022-03-20 10:26:52
回答 1查看 113关注 0票数 0

我注意到在为不同类型的算法( AutoETSAutoARIMA )指定预测间隔时存在不一致之处。我不确定这是一个bug还是一个特性。

代码语言:javascript
复制
from matplotlib import pyplot as plt

from sktime.datasets import load_airline
from sktime.forecasting.model_selection import temporal_train_test_split
from sktime.forecasting.base import ForecastingHorizon
y = load_airline()
y_train,y_test = temporal_train_test_split(y)
fh = ForecastingHorizon(y_test.index, is_relative=False)

from sktime.forecasting.ets import AutoETS
model = AutoETS(trend='add',seasonal='mul',sp=12)
model.fit(y_train,fh=y_test.index)
preds_ets_05 = model.predict(fh,return_pred_int=True,alpha=0.05)
preds_ets_95 = model.predict(fh,return_pred_int=True,alpha=0.95)

from sktime.forecasting.arima import AutoARIMA
model = AutoARIMA(tsp=12)
model.fit(y_train,fh=y_test.index)
preds_arima_05 = model.predict(fh,return_pred_int=True,alpha=0.05)
preds_arima_95 = model.predict(fh,return_pred_int=True,alpha=0.95)

如果我们绘制预测图,我们得到:

代码语言:javascript
复制
figs, (ax1,ax2) = plt.subplots(2,sharey=True)
ax1.fill_between(preds_ets_05[0].index.to_timestamp('M'),
                 preds_ets_05[1]['lower'],
                 preds_ets_05[1]['upper'],
                 alpha=0.25,
                 color='green',
                 label = 'ets')
ax1.fill_between(preds_arima_05[0].index.to_timestamp('M'),
                 preds_arima_05[1]['lower'],
                 preds_arima_05[1]['upper'],
                 alpha=0.25,
                 color='red',
                 label ='arima')
ax1.tick_params(rotation=45)
ax1.set_title('alpha=0.05')
ax1.legend()

ax2.fill_between(preds_ets_95[0].index.to_timestamp('M'),
                 preds_ets_95[1]['lower'],
                 preds_ets_95[1]['upper'],
                 alpha=0.25,
                 color='green',
                 label = 'ets')
ax2.fill_between(preds_arima_95[0].index.to_timestamp('M'),
                 preds_arima_95[1]['lower'],
                 preds_arima_95[1]['upper'],
                 alpha=0.25,
                 color='red',
                 label = 'arima')
ax2.tick_params(rotation=45)
ax2.set_title('alpha=0.95')
ax2.legend()
plt.tight_layout()
plt.show()

看起来阿尔法的定义对于其中一种阿尔戈斯来说是颠倒的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 16:41:37

版本0.10.X中已知的错误(随着覆盖范围的扩大,间隔应该变得更宽),应该在0.11.0中修复,请参见https://github.com/alan-turing-institute/sktime/discussions/2334

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71545912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档