business-science / modeltime

Modeltime unlocks time series forecast models and machine learning in one framework
https://business-science.github.io/modeltime/
Other
515 stars 79 forks source link

Integrate Package: `smooth` #119

Closed mdancho84 closed 2 years ago

mdancho84 commented 3 years ago

Investigate and implement smooth package. What makes immediate sense are:

There are a number of other algorithms that will be reviewed.

  1. adam - Advanced Dynamic Adaptive Model, implementing ETS, ARIMA and regression and their combinations;
  2. es - the ETS function. It can handle exogenous variables and has a handy "holdout" parameter. There are several cost function implemented, including trace forecast based ones. Model selection is done via branch and bound algorithm and there's a possibility to use AIC weights in order to produce combined forecasts. Finally, all the possible ETS functions are implemented here.
  3. ces - Complex Exponential Smoothing. Function estimates CES and makes forecast. See documentation for details.
  4. gum - Generalised Exponential Smoothing. Next step from CES. The paper on this is in the process.
  5. sma - Simple Moving Average in state space form.
  6. ssarima - SARIMA estimated in state space framework.
  7. msarima - Multiple seasonal ARIMA, allows multiple seasonalities and works in a finite time.
  8. auto.ces - selection between seasonal and non-seasonal CES models.
  9. auto.ssarima - selection between different State-Space ARIMA models.
  10. auto.msarima - selection between different multiple SARIMA models.
  11. auto.gum - automatic selection of the most appropriate GUM model.
  12. sim.es - simulation of data using ETS framework with a predefined (or random) smoothing parameters and initial values.
  13. sim.ssarima - simulation of data using State-Space ARIMA framework with a predefined (or randomly generated) parameters and initial values.
  14. sim.ces - simulation of data using CES with a predefined (or random) complex smoothing parameters and initial values.
  15. sim.gum - simulation functions for GUM.
  16. sim.sma - simulates data from SMA.
  17. oes - occurrence state space exponential smoothing model. This function models the part with data occurrences using one of the following methods: fixed, odds ratio, inverse odds ratio, direct or general. It can also select the most appropriate between the five.
  18. sowhat - returns the ultimate answer to any question.
  19. smoothCombine - the function that combines forecasts from es(), ces(), gum(), ssarima() and sma() functions.
  20. cma - Centred Moving Average. This is the function used for smoothing of time series, not for forecasting.
  21. msdecompose - multiple seasonal decomposition based on centred moving averages.

Resources:

AlbertoAlmuinha commented 2 years ago

Hi Matt,

I have implemented the Adam and Auto.Adam algorithms and I think tomorrow will upload a PR. Just a doubt, I have called “adam_reg()” with adam and auto_adam engines…Is it ok? Or do you prefer other names?

mdancho84 commented 2 years ago

That is perfect. adam_reg() is great.

mdancho84 commented 2 years ago

I've just merged #130 and I'll begin some more detailed reviews today.