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

[ENH] global ARIMA #5021

Open
fkiraly opened this issue Aug 4, 2023 · 3 comments
Open

[ENH] global ARIMA #5021

fkiraly opened this issue Aug 4, 2023 · 3 comments
Labels
enhancement Adding new functionality feature request New feature or request good first issue Good for newcomers implementing algorithms Implementing algorithms, estimators, objects native to sktime module:forecasting forecasting module: forecasting, incl probabilistic and hierarchical forecasting

Comments

@fkiraly
Copy link
Collaborator

fkiraly commented Aug 4, 2023

We should add a GlobalARIMA forecaster, which is the ARIMA family global forecaster.
Originally requested by @olerch in #5006. Related issue: #4651

ARIMA can be used as a global forecaster in the following way:

  • fit a joint likelihood (or joint fit criterion) on multiple time series instances to obtain one set of coefficients
  • on inference/predict instances, use that one set of coefficients to forecast

This is different from the current behaviour of ARIMA, which will fit individual ARIMA-s per instance.

As far as I know, this is not available in any of the "usual suspect" packages statsmodels, statsforecast, pmdarima, or elsewhere - except possibly in the very special case of fitting to a single time series instance.

Technically, this should not be too hard to implement, leveraging already existing functionality such as (possibly penalized/regularized) log-likelihoods implemented in statsmodels, and optimizing by SGD or a similar technique.

This issue is a good first issue for more statistics or data science oriented contributors. There are multiple ways to resolve this:

  • find an existing implementation of global ARIMA somewhere and interface it
  • implement global ARIMA in one of the upstream algorithm provider packages, then interface it
  • implement global ARIMA directly in sktime

The estimator implementation/interfacing guide is here: https://www.sktime.net/en/stable/developer_guide/add_estimators.html

@fkiraly fkiraly added feature request New feature or request good first issue Good for newcomers implementing algorithms Implementing algorithms, estimators, objects native to sktime module:forecasting forecasting module: forecasting, incl probabilistic and hierarchical forecasting enhancement Adding new functionality labels Aug 4, 2023
@NguyenChienFelix33
Copy link
Contributor

hello professor, can i work on this.

@fkiraly
Copy link
Collaborator Author

fkiraly commented Nov 27, 2023

Sure!

The first question on this issue would be one of literature research - is there an interfaceable implementation of global ARIMA out there? If yes, the issue would be pretty straightforward to interface. Though I do not know any such instance.

If not, then this becomes much more methodologically involved and is a good first issue only with very robust statistics knowledge, on how to fit ARIMA models.

A very similar model where we know a good implementation exists would be temporal mixed effects models, see here:
#1767

Although neither is an "easy" starting point, for your first contribution to open source, I suggest to pick sth that is content-wise light, to learn the GitHub contribution workflow.

@fkiraly
Copy link
Collaborator Author

fkiraly commented Jan 7, 2024

Continuing discussion from #5689 (comment):

If i am not wrong at understanding, the GlobalArima have static parameters so what data we should use to train parameters of Global Arima or something?

The data would be passed in fit, in pandas MultiIndex format or similar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Adding new functionality feature request New feature or request good first issue Good for newcomers implementing algorithms Implementing algorithms, estimators, objects native to sktime module:forecasting forecasting module: forecasting, incl probabilistic and hierarchical forecasting
Projects
None yet
Development

No branches or pull requests

2 participants