Exponential Smoothing: faster and more accurate than NeuralProphet (github.com)
We benchmarked on more than 55K series and show that ETS improves MAPE and sMAPE forecast accuracy by 32% and 19%, respectively, with 104x less computational time over NeuralProphet.
We hope this exercise helps the forecast community avoid adopting yet another overpromising and unproven forecasting method.
43 comments
[ 3.1 ms ] story [ 98.8 ms ] threadI'd need to dig out the original paper, but I would be surprised if the original didn't compare to basic benchmark methods. But from memory, I never saw such a comparison (until now).
https://en.wikipedia.org/wiki/Makridakis_Competitions
Just a couple of the winning solutions used DL.
[1] https://www.sciencedirect.com/science/article/pii/S016920702...
AFAIK Prophet had more modest scope than "be all and end all of TS modelling", rather a decent model for everything. It might indeed be excellent at that...
ML (particularly DL) tends to outperform "classical" statistical time series forecasting when the data is (strongly) nonlinear, highly dimensional and large. The opposite holds as well.
It is also important to note that accuracy is not the only relevant metric in practical applications. Explainability is of particular interest in time series forecasting: it is good to know if your sales are going to increase/decrease, but it is even more valuable to know which input variables are likely to account for that change. Hence, a "simple" model with inferior forecasting accuracy might be preferred to a stronger estimator if it can give insights to not only the "what" will happen, but also the "why".
This claim about forecasting with DL comes up a lot, but I’ve seen little evidence to back it up.
Personally, I’ve never managed to have the same success others apparently have with DL time series forecasting.
In any case, Transformers are eating ML right now and I'm actually surprised there's no "GPT-3 for time series" yet. It's technically the same problem as language modeling (that is, multi-step prediction of numerics), however, there is only a comparably little amount of human-generated data for self-supervised learning of a time series forecasting model. Another reason might be that the expected applications and potentials of such a pre-trained model aren't as glamorous as generating language.
You're thinking of modeling event sequences which is not strictly speaking the same as time series modeling.
Plenty of people do use LSTMs to model event sequences, using the hidden state of the model as a vector representation of processes current location walking a graph (i.e. a Users journey through a mobile app, or navigating following links on the web.)
Time series is different because the ticks of timed events are at consistent intervals and are also part of the problem being modeled. In general time series models have often been distinct from sequence models.
The reason there's no GPT-3 for any general sequence is the lack of data. Typically the vocabulary of events is much smaller than natural languages and the corpus of sequences much smaller.
In contrast, there is nothing that all time series have in common. There's no way to learn generic time series knowledge that will reliably generalise to new unseen time series.
Take even a simple moving average model on daily observations. Consider stock ticker data (where there are no weekends) and web traffic data (where there is an observation each day). The stock ticker data should be smoothed with a 5 day window and the web traffic with a 7 to help reduce the impact of weekly effects (which probably shouldn't exist in the stock market anyway).
It's possible in either of these cases you might find a moving average that performs better on some choose metric, say 4 or 8 days. However neither of these alternatives make any sense as a window if we're trying to remove day-of-week effect, and unless you can come up with a justifiable explanation, smoothing over arbitrary windows should be avoided.
If you let a black box optimize even a simple moving average you would be avoiding some very essential introspection into what your model is actually claiming.
Not to mention that we often can do more than just prediction with these intentional model tunings (for example day-of-week effect can be explicitly differenced from the data to measure exactly how much sales should increase on a Saturday)
My intuition is that in your given example (stock prices) smoothing would probably be doing yourself a disservice as it would hide the optimal hour or day of the week to make purchases/sales.
Is it mostly related to the timeframe of your analysis and needing to trade off near term precision for longer term precision?
Suppose you run a bar, and your busiest days in order are Friday, Saturday, Thursday, Sunday, Wednesday, Tuesday and Monday.
Now you are the owner and you want to look at your foot traffic everyday to monitor the health of your business. However, from the ordering I've presented, this will almost never work trivially. Monday traffic will always be less than Sunday, does this mean every Monday you should be concerned about business? Of course not.
However by averaging the last 7 days and looking at that each day, you are canceling out these seasonal effects because every single day of the week is accounted for in your measurement. If the 7 day moving average on Monday is less than Sunday you should be concerned because the average when calculated on Sunday included the pervious Monday.
For your example, you use the smoothed data and a history of the original data to come up with an exact explanation of which days are the best.
For example if you are a bar owner and you don't know which day is the best, you can take a 7 day moving average and subtract it from each day of actual observations. Then averages those differences grouped by day of week and you get an estimate for the day of week effect (you can also calculate standard deviation as well).
Presumably this apparent non-transitivity is because of differences in each evaluation. If we fix the evaluation to the method used here, is it still the case that NeuralProphet outperforms Prophet (and therefore the claim that Prophet outperforms ETS is not correct)? Or is it that NeuralProphet does not outperform Prophet, but Prophet does outperform ETS?
In recent years, FB-Prophet has gained a reputation for the poor quality of its predictions in many practical scenarios (short/medium term horizon) and its slow performance on bigger data sets; our ARIMA/ETS work and NeuralProphet confirmed those suspicions. The mentioned 92 percent improvements of the paper are restricted to h in {1,3,15,60} (https://arxiv.org/pdf/2111.15397.pdf).
This post's results are rather for short-horizon tasks, the same as NeuralProphet experiments. But we are confident that specialized tools like N-HiTS would outperform Prophet in long-horizon settings.
Facebook's Prophet is quite popular in the space I understand. No idea about the other two.
We noted that the paper only compares NeuralProphet against Prophet and does not include standard time series datasets (such as M-competitions). So we decided to test the model against simpler models (ETS in this case) using the StatsForecast library (https://github.com/Nixtla/statsforecast/).
- No fair hyperparametrization for Neural Prophet. They mention multiple times they used default hyperparams or ad-hoc example hyperparams.
- 3/4 benchmark datasets (one they didn't finish training) where ETS outperforms is not strong evidence of all-round robustness. Benchmarks like SuperGlue for NLP combine 10 completely different tasks with more subtasks to assess language model performance. And even SuperGlue is not uncontroversial.
- Yogi Berra
- Sigmund Freud
Regarding the hyperparameter selection, we went beyond the original NeuralProphet paper, tunning and actively trying to help improve its performance. We even made a PR fixing NP bugs in the process.