Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Recursive multistep multivariate forecasting and direct multistep multi-series forecasting #625

Open
KishManani opened this issue Jan 23, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@KishManani
Copy link
Contributor

Currently ForecastMultiSeriesCustom and ForecastMultiSeries implement a recursive approach to multi-series forecasting. ForecastMultiVariate implements a direct forecasting approach for multivariate forecasting.

It would be good to have:

  • Direct forecasting available for multi-series forecasting.
  • Recursive forecasting available for multivariate forecasting.
  • A consistent naming approach to which methods use a direct or recursive approach. Some classes use a recursive approach as default (e.g., ForecasterAutoreg, ForecasterMultiseries) and a direct approach is specified in the class name (i.e., ForecasterAutoregDirect). However, for multivariate forecasting, a direct approach is used but not reflected in the class name (i.e., ForecasterMultivariate).

Thanks again!
Kishan

@JavierEscobarOrtiz
Copy link
Collaborator

Hello Kishan,

Thanks for your comments,

Direct forecasting available for multi-series forecasting.

This is something we have pending. Since we are still developing new features for ForecasterMultiseries, we will wait for a more stable version before implementing it.

Recursive forecasting available for multivariate forecasting.

As it is now, the ForecasterAutoregMultiVariate is only trained in one level (series 1 or series 2) and creates one model per step (direct approach). In the figure, let's say that if you specify level = 'Series 1' when creating the Forecaster, it will only use the training matrix at the top.

forecaster_multivariate_train_matrix_diagram

Since this forecaster needs the future values of the series to predict the following steps, it needs 2 models (one for each series) to make it recursive and call them in parallel. Predict step 1 for both series, predict step 2 for both series...

Is that what you have in mind?

A consistent naming approach

Completly agree. We have this figure in the repo page and documentation to help the users with this problem:

imagen

https://skforecast.org/latest/#forecasters
https://github.com/JoaquinAmatRodrigo/skforecast#forecasters

Best,

Javi

@JavierEscobarOrtiz JavierEscobarOrtiz added the enhancement New feature or request label Jan 23, 2024
@JoaquinAmatRodrigo
Copy link
Owner

The names of the Forecasters definitely need to be revisited, the family is growing and at some point we need to make the naming more intuitive. This may require some proper alias management to avoid breaking compatibility. ¡Maybe one day we are ready for version 1.0.0. ! 😄 😄

@JoaquinAmatRodrigo
Copy link
Owner

Recursive forecasting available for multivariate forecasting

This is quite challenging because this hybrid strategy requires each individual series to be predicted internally so that the predicted values can then be used as input features by a second model. We have skipped this so far because the idea of this approach being too computationally expensive, but we could do some experimentation to test its feasibility.

@KishManani
Copy link
Contributor Author

Recursive forecasting available for multivariate forecasting

This is quite challenging because this hybrid strategy requires each individual series to be predicted internally so that the predicted values can then be used as input features by a second model. We have skipped this so far because the idea of this approach being too computationally expensive, but we could do some experimentation to test its feasibility.

Yes I agree. This would be computationally challenging. I think there are other features which are easier to add to skforecast which would add more value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants