sktime/sktime

[ENH] global ARIMA

Open

#5,021 opened on 2023年8月4日

GitHub で見る
 (3 comments) (4 reactions) (0 assignees)Python (1,192 forks)batch import
enhancementfeature requestgood first issueimplementing algorithmsmodule:forecasting

Repository metrics

Stars
 (7,162 stars)
PR merge metrics
 (平均マージ 26d 10h) (30d で 86 merged PRs)

説明

We should add a GlobalARIMA forecaster, which is the ARIMA family global forecaster. Originally requested by @olerch in https://github.com/sktime/sktime/discussions/5006. Related issue: https://github.com/sktime/sktime/issues/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

コントリビューターガイド