Я пытаюсь спрогнозировать значение, выходящее за пределы выборки, с помощью sktime SquaringResiduals. Вот код, который хорошо работает для прогнозирования в выборке.
из sktime.forecasting.arch импортировать StatsForecastGARCH из sktime.forecasting.squaring_residuals импортировать SquaringResiduals Def HybridModel (p, q, модель): out_sample_date = FH(np.arange(12), is_relative=True) in_sample_date = FH(df.index, is_relative=False) var_fc = StatsForecastGARCH(p=p,q=q) sqr = SquaringResiduals (прогнозист = модель, Residual_forecaster = var_fc, начальное_окно = int (len (df))) sqr = sqr.fit(df, fh=in_sample_date) # y_pred2 = sqr.predict(out_sample_date) #out выборочный прогноз y_pred = sqr.predict(in_sample_date) #в прогнозе выборки fig,ax=plot_series(df, y_pred, labels=["passenger", "y_pred"]) вернуть sqr,fig,y_pred,error_matrix(df,y_pred) sqr,fig1,y_pred1,matrix1= HybridModel(1,1,прогнозист) Теперь я пытаюсь спрогнозировать выход за пределы выборки. y_pred2 = sqr.predict(out_sample_date) #out выборочный прогноз
> ValueError: предоставлен другой горизонт прогнозирования fh. > из того, что уже видел в `fit`, в данном случае > Возведение остатков в квадрат. Если вы хотите изменить горизонт прогнозирования, > переустановите, пожалуйста, синоптик. Это связано с тем, что установка > Прогнозист SquaringResiduals зависит от `fh`.
Поэтому я меняю: sqr = sqr.fit(df, fh=in_sample_date) на sqr = sqr.fit(df)
> ValueError: Горизонт прогнозирования `fh` должен быть передан в `fit` > SquaringResiduals, но ничего не найдено. Это связано с тем, что установка > Прогнозист SquaringResiduals зависит от `fh`.
Затем я меняю: sqr = sqr.fit(df, fh=in_sample_date) на sqr = sqr.fit(df, fh=out_sample_date)
> ValueError: длина окна и горизонт прогнозирования > несовместимо с длиной `y`. Найден `window_length`=84, > `max(fh)`=11, но len(y)=84. Требуется, чтобы длина окна > плюс максимальный горизонт прогноза меньше продолжительности периода времени >сам сериал `y`.
Затем я проверил функцию прогнозирования для другой модели, и функция прогнозирования() хорошо работает как для прогнозирования внутри выборки, так и для прогнозирования вне выборки для негибридной модели:
из sktime.forecasting.tbats импортировать TBATS из sktime.forecasting.base импортировать ForecastingHorizon как FH импортировать предупреждения импортировать numpy как np импортировать панд как pd импортировать млпоток из sktime.utils импортируйте mlflow_sktime как mf из sktime.utils.plotting импортаplot_series alerts.filterwarnings("игнорировать") out_sample_date = FH(np.arange(12), is_relative=True) in_sample_date = FH(df.index, is_relative=False) синоптик = TBATS( use_box_cox = Верно, use_trend=Истина, use_damped_trend = Верно, сп=12, use_arma_errors = Верно, n_jobs=1) прогнозист.fit(df) y_pred = прогнозер.predict(in_sample_date) y_pred2 = прогнозер.predict(out_sample_date) fig,ax =plot_series(df,y_pred,y_pred2,labels=['passenger','prediction','out_sample_pred'])

Почему функция прогнозирования вне выборки/внутри выборки не работает вместе для SquaringResiduals и как мы можем предсказать значение вне выборки/внутри выборки?
sqr = SquaringResiduals(forecaster=model, Residual_forecaster=var_fc,initial_window=int(len(df))) sqr = sqr.fit(df, fh=in_sample_date) y_pred2 = sqr.predict(out_sample_date) #out выборочный прогноз Большое спасибо за внимание.
Мобильная версия