Nixtla / statsforecast

Lightning ⚡️ fast forecasting with statistical and econometric models.
https://nixtlaverse.nixtla.io/statsforecast
Apache License 2.0
3.99k stars 285 forks source link

Multiple seasonal arima #199

Open jelc53 opened 2 years ago

jelc53 commented 2 years ago

Is your feature request related to a problem? Please describe. R’s smooth package has a multiple seasonal arima (msarima) state space implementation that i have been hoping to reproduce in Python. Statsmodels, pmdarima, darts and sktime all limit the user to one seasonality. To add a second, often we are forced to manually create a Fourier Regressor and add as an exogenous variable (and still not as accurate!).

Describe the solution you'd like Implement a msarima model in Python. Very happy to support development. Suggest using smooth’s implementation as a starting point since already pretty fast (state space design cuts down on size of transition matrix).

Describe alternatives you've considered Besides adding second seasonality via exogenous Fourier terms, I’ve also tried using a double seasonal formulation of exponential smoothing described in a research paper by Taylor 2003 (https://www.jstor.org/stable/4101650) for load forecasting. This works pretty well but double seasonal arima should beat it.

AzulGarza commented 2 years ago

hey @jelc53. In the meantime, you can explore our implementation of the MSTL model to handle multiple seasonalities.