tblume1992

tblume1992 t1_j8y9oti wrote

  1. MLForecast treats it more like a time series - it does differencing and moving averages as levels to encode the general level of each time series along with the ar lags. Not entirely necessary as you can just scale with like a standard scaler or even box cox at the time series level and pass a time series 'id' as a categorical variable to lightgbm and outperform MLForecast although it is pretty snappy with how they have it written.
  2. I honestly just wouldn't use Prophet in general...But if you have 50 regressors it (I believe) fits them with a normal prior which is equivalent to a ridge regression so it shrinks the coefficients but you are stuck with this 'average' effect.
  3. ARIMAX absolutely still has a place but it really all comes down to your features. If you you have good quality predictive features then it is usually better to do ML and 'featurize' the time pieces. You lose out on the time component but gain a lot due to the features. There are other issues like now you have to potentially forecast for those features. The alternative is having bad features. If that is the case then usually you are stuck with just standard time series methods. So it really is 100% dependent on your data and if there is use in learning stuff across multiple time series or not.

An alternative view is hierarchical forecasting which sometimes works well to take advantage of higher level seasonalities and trends that may be harder to see at the lower level and outperforms ML a good chunk in my experience unless you have good regressors.

As many are saying - SOTA are boosted trees with time features. If the features are bad then it is TS stuff like arimax. The best way to find out is to test each.

Edit: In regards to M5 - there was a lot of 'trickery' done to maximize the cost function there so it might not be 100% super useful, at least in my experience.

4

tblume1992 t1_it2nnb5 wrote

I think the other comments are spot on. It depends on your data. How many time series are you needing to predict for? How 'multivariate' is your data meaning do you have a ton of variables or only a few?

Don't know about modeltime but both darts and sktime are fine. But if you have a lot of good quality variables then it's worth trying boosted trees and 'featurizing' time. If you just have holidays then probably best to stick with time series approaches.

If you also have multiple time series which are related such as products that belong to different categories or something like that -trees may also be worth taking a look at if you pass those categories as variables. Alternatively you could look at hierarchical methods like what is in Nixtla's portfolio of packages.

But definitely give us some more info!

7

tblume1992 t1_iqyjunz wrote

The classic methods like smoothers/arima/theta can be found in libraries like sktime, pycaret, and darts. I kind of prefer the new pycaret stuff coming out.

"similar to FBProphet" in what way? The decomposition of trend/seasonality/exogenous or the simplicity of the API? If you just want more firepower you could try PmdArima for auto-arima, it does ok and will outperform prophet more often than not and it is an automatic procedure which is nice.

If you are feeling adventurous you could try some of my packages: ThymeBoost or LazyProphet. ThymeBoost is interesting as it is gradient boosting around time series decomposition. So you will still have the trend/seasonality decomposition but with more exotic methods. LazyProphet is just some feature engineering for time series fed into Lightgbm but it tends to perform well enough. Both tend to outperform fbprophet although that generally isn't too hard to do and they both have automatic fitting procedure that performs ok.

1