Time Series Prediction – A short introduction for pragmatists
liip.ch
liip.ch
After reading this blog I am tempted to get the ML for time series book though. I'd love to try and compare some less than trivial examples with covariates involved.
[1] https://peerj.com/preprints/3190/
[2] https://statmodeling.stat.columbia.edu/2017/03/01/facebooks-...
https://www.ritchievink.com/blog/2018/10/09/build-facebooks-...
We run it over millions of inventory over years of data and it has given satisfactory results in majority of the cases
https://www.esrl.noaa.gov/gmd/ccgg/trends/
Just by looking at the graph, you can see that fitting a linear combination of a constant term, t, t2 and sin(w*t) will give you a very accurate model that has five tuning parameters (four weights and one frequency).
It's basically fitting on non-linear transformations of x.
I don't think it's untill you get to the NN based models that they start treating time as a first-class component in the model.
* If I'm wrong please explain why instead of downvoting
Treating time as a first-class component really just means to factor in the absolute point in time into the models at training time. This only makes sense if the absolute time changes properties of the distribution that cannot be accounted for with regular transformations. If that's the case, then we assume that these changes cannot be modeled, and are thus either random or follow a complicated systematic we can't grasp. In the first case, a NN wouldn't improve either, in the second case, we either need to always use the full history of the time series to make a prediction, or hope that a complex NN like LSTM might capture the systematic.
In any case, I think one of the more compelling reasons to use NN is to not have to do preprocessing. The trade-off is that you end up with a complicated solution compared to the six or so easy-to-understand parameters a SARIMA model might give you. And the latter even might give you some interpretable intuition for the behavior of the process.
They're bad at prediction for the past several m1-m4 time series tournament for univariate. The best one for m4 is a combination of NN and traditional statistical regression (time series) but it is often deem too tailor to the data.
And I don't think differencing out the trend, season, etc... means we're treating the time component as second class. It's just that stationary data is what we know the most currently. There is GARCH/ARCH method too. The nonstationary methods aren't used as often and from the tournaments the current set of time series are the best so far.
So I think this comment is misleading.
There is also longitudinal analysis, survival analysis, etc... and they all keep time in mind.
David R. Brillinger, Time Series Analysis: Data Analysis and Theory, Expanded Edition, ISBN 0-8162-1150-7, Holden-Day, San Francisco, 1981.
George E. P. Box and Gwilym M. Jenkins, Time Series Analysis --- Forecasting and Control: Revised Edition, ISBN 0-8162-1104-3, Holden-Day, San Francisco, 1976.
Brillinger was a John Tukey student at Princeton and long at Berkeley.
FWIIW I've used it all the time, along with wavelets, cepstrums, lifters and Hilbert transforms. For timeseries with nonlinearities and lots of data points, it's the way to go. 9/10 times I'd rather hire a EE with signal processing background than a statistician or data scientist for time series work.
Edit: literally saw this happen two weeks ago by a PhD in electrical engineering.
Start plotting before firing up the GPUs, then compare to standard OLS - like in this article!
Suggested reading if you don't know OLS: ML from scratch.
All I can think of is identification of frequency modes.
(background: control systems)
Support you’re are looking at sales patterns over a long period of time, which has certain patterns. FFTs are unlikely to tell you much that is useful or predict much whereas time series methods can reveal patterns where the t is the independent variable.
I needed anomaly detection for prometheus metrics integrated with grafana for marking "anomalous" regions so the model doesn't learn them.
Took me a week to set it all up including packaging up as a Microservice and deploying.
I've also used Prophet library, and find it works well out of the box.