样本数据nixtla中的保形预测区间

问题描述 投票:0回答:1

鉴于

nixtla
的文档,y没有找到任何方法来计算非样本预测(训练数据)的预测区间,而只是用于未来的预测。

我举了一个例子来说明我可以实现什么,但只是为了预测(未来)。

from statsforecast.models import SeasonalExponentialSmoothing, ADIDA, ARIMA
from statsforecast.utils import ConformalIntervals

# Create a list of models and instantiation parameters 
intervals = ConformalIntervals(h=24, n_windows=2)

models = [
    SeasonalExponentialSmoothing(season_length=24,alpha=0.1, prediction_intervals=intervals),
    ADIDA(prediction_intervals=intervals),
    ARIMA(order=(24,0,12), season_length=24, prediction_intervals=intervals),
]

sf = StatsForecast(
    df=train, 
    models=models, 
    freq='H', 
)

levels = [80, 90] # confidence levels of the prediction intervals 

forecasts = sf.forecast(h=24, level=levels)
forecasts = forecasts.reset_index()
forecasts.head()

所以我的目标是做类似的事情:

 forecasts = sf.forecast(df_x, level=levels)

所以我们可以在训练集中有任何预测区间。

python intervals prediction forecasting
1个回答
0
投票

StatsForecast
对象本身只有方法
forecast
cross_validation
和内部方法
_is_native

AFAICT 根据您的要求,似乎您应该能够使用

cross_validation
方法并提供
prediction_intervals
参数来给出您想要的范围。

所以你应该能够做类似的事情

 validation_forecast = sf.cross_validation(df_x, prediction_intervals=levels)

我尚未验证这一点,但请尝试一下,看看是否对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.