Time series prediction niceties, where what needs to be predicted is the future. Filed under forecasting because in machine learning terminology, prediction is a general term that does not imply extrapolation into the future necessarily.
🏗 handball to Rob Hyndman.
Rob Hyndman explains how to cross-validate time series models that use only the lagged observations. Cosma Shalizi mentions the sample splitting problem for time series for post-selection inference and has supervised students to do some work with it, notably (Lunde 2019).
For a different emphasis upon the same problem consider statistical learning theory.
Training data intake
There is a common pattern with training time series modes that they each predict the next observation from the previous observations, which is not how a classic data loader works. The time at whcih the future observations are evaluated is the horizon and the ones used to make that prediction are the history. For patterns to handle this in neural networks in particular, see Recurrent neural networks.
Not comprehensive, just noting some useful time series forecasting models/packages as I encounter them.
Tidyverse time series analysis and forecasting packages
A good first stop.
You can find a presentation on these tools by Rob Hyndman.
- tsibble: Tidy Temporal Data Frames and Tools [CRAN]
- tsibbledata: Example datasets for tsibble [CRAN]
- feasts: Feature Extraction And Statistics for Time Series [CRAN]
- fable: Forecasting Models for Tidy Time Series [CRAN]
- sugrrants: Supporting Graphs for Analysing Time Series. Tools for plotting temporal data using the tidyverse and grammar of graphics framework. [CRAN]
- gravitas: Explore Probability Distributions for Bivariate Temporal Granularities. [CRAN]
is a procedure for forecasting time series data. It is based on an additive model where non-linear trends are fit with yearly and weekly seasonality, plus holidays. It works best with daily periodicity data with at least one year of historical data. Prophet is robust to missing data, shifts in the trend, and large outliers.
Commentary * Is Facebook’s “Prophet” the Time-Series Messiah, or Just a Very Naughty Boy? * Sean J. Taylor on Twitter: "This post rips Prophet (a forecasting package I helped create) to shreds and I agree with most of it🥲 I always suspected the positive feedback was mostly from folks who’d had good results—conveniently the author has condensed many bad ones into one place. https://t.co/A8acLUpYG5" / Twitter
Hosseini et al. (2021)
The Greykite library provides flexible, intuitive and fast forecasts through its flagship algorithm, Silverkite.
Silverkite algorithm works well on most time series, and is especially adept for those with changepoints in trend or seasonality, event/holiday effects, and temporal dependencies. Its forecasts are interpretable and therefore useful for trusted decision-making and insights.
The Greykite library provides a framework that makes it easy to develop a good forecast model, with exploratory data analysis, outlier/anomaly preprocessing, feature extraction and engineering, grid search, evaluation, benchmarking, and plotting. Other open source algorithms can be supported through Greykite’s interface to take advantage of this framework, as listed below.
Automatic Smoothing for Attention Prioritization in Time Series
ASAP automatically smooths time series plots to remove short-term noise while retaining large-scale deviations.
What’s microprediction you say?
The act of making thousands of predictions of the same type over and over again. Microprediction can
- Clean and enrich live data
- Alert you to outliers and anomalies
- Provide you short term forecasts
- Identify patterns in model residuals
Moreover it can be combined with patterns from Control Theory and Reinforcement Learning to
- Engineer low cost but tailored intelligent applications
Often enough AI is microprediction, albeit bundled with other mathematical or application logic.
- You publish a live data value.
- The sequence of these values gets predicted by a swarm of algorithms.
- Anyone can write a crawler that tries to predict many different streams.
Microprediction APIs make it easy to:
- Separate the act of microprediction from other application logic.
- Invite contribution from other people and machines
- Benefit from other data you may never have considered.
… Let’s say your store is predicting sales and I’m optimizing an HVAC system across the street. Your feature space and mine probably have a lot in common.
I am unclear how this incorporates domain knowledge and private side information, which seems the hallmark of natural intelligence and, e.g. science, and also useful. Perhaps they feel domain knowledge is a bug standing in the way of truly general artificial intelligence? If I had free time I might try to get a better grip on what they are doing, whoever they are.
Alternatively, they are coming at this from a chartist quant perspective and data are best considered as sort-of-anonymous streams of numbers, the better to attract disinterested competition.
- Microprediction | Knowledge Center
- Microprediction | Get Predictions
- (17) Dorothy, You're Not in Kaggle Anymore | LinkedIn