# Forecasting

Vegan haruspicy

June 17, 2015 — October 8, 2022

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.

## 1 Recursive estimation

See recursive identification for generic theory of learning under the distribution shift induced by a moving parameter vector.

## 2 Model selection

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, or model ensembles in times series.

Or: would we like to try model mixing in this setting? See ensemble methods.

## 3 Calibration of probabilistic forecasts

See calibration.

## 4 Training data intake

There is a common pattern with training time series models that they each predict the next observation from the previous observations, which is not how a classic data loader works in machine learning. The time at which 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.

## 5 Software

Not comprehensive, just noting some useful time series forecasting models/packages as I encounter them. Peter Cotton attempts to collate Popular Python Time Series Packages.

### 5.1 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]

### 5.2 scikit-learn style: Nixtla, sktime, darts

Rob J Hyndman, in Python implementations of time series forecasting and anomaly detection recommends Nixtla and sktime as good implementations. Nixtla is big! Rob recommends starting from

**statsforecast**: Automatic ARIMA and ETS forecasting**hierarchicalforecast**: Hierarchical forecasting**tsfeatures**: Time series features

Darts (source) (Herzen et al. 2022). aims to be a scikit-learn for time series forecasting. Includes many other algorithms such as prophet, (**ChalluN2022HiTS?**), Oreshkin et al. (2020a) and Salinas, Flunkert, and Gasthaus (2019).

### 5.3 prophet

prophet (R/Python/Stan):

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? via 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.

### 5.4 Silverkite

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.

### 5.5 Causal impact

🏗 find out how Causal impact works. (Based on Brodersen et al. (2015).)

### 5.6 asap

asap:

Automatic Smoothing for Attention Prioritization in Time Series

ASAP automatically smooths time series plots to remove short-term noise while retaining large-scale deviations.

## 6 Makridakis competitions

The M4 dataset is a collection of 100,000 time series used for the fourth edition of the Makridakis forecasting Competition. The M4 dataset consists of time series of yearly, quarterly, monthly and other (weekly, daily and hourly) data, which are divided into training and test sets. The minimum numbers of observations in the training test are 13 for yearly, 16 for quarterly, 42 for monthly, 80 for weekly, 93 for daily and 700 for hourly series. The participants were asked to produce the following numbers of forecasts beyond the available data that they had been given: six for yearly, eight for quarterly, 18 for monthly series, 13 for weekly series and 14 and 48 forecasts respectively for the daily and hourly ones.

- M4 Dataset | Papers With Code
- Mcompetitions/M4-methods: Data, Benchmarks, and methods submitted to the M4 forecasting competition
- M4 Forecasting Competition | Rob J Hyndman
- M4 – MOFC

Now we are up to M5 and M6 is cooking.

## 7 Micropredictions.org

micropredictions is a quixotic project my colleagues have forwarded to me. Included here as a spur. The micropredictions FAQ says:

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 optimising an HVAC system across the street. Your feature space and mine probably have a lot in common.

I am unclear how the datastreams as set up incorporates domain knowledge and private side information, which seems the hallmark of natural intelligence and, e.g. science. 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.

## 8 Incoming

Darts:

ARiMA is not Sufficient, an interview on S. Wang, Li, and Lim (2021)

## 9 References

*arXiv:1802.09064 [Cs, Stat]*.

*Dependence Modeling*.

*Bernoulli*.

*IEEE transactions on neural networks and learning systems*.

*Computational Statistics & Data Analysis*.

*Computational Learning Theory*. Lecture Notes in Computer Science.

*Time Series Analysis: Forecasting and Control*. Wiley Series in Probability and Statistics.

*The Annals of Applied Statistics*.

*Automatic Autocorrelation and Spectral Analysis*.

*International Journal of Mathematics and Mathematical Sciences*.

*arXiv:2201.12886 [Cs]*.

*Journal of the Royal Statistical Society: Series B (Statistical Methodology)*.

*Journal of Economic Surveys*.

*An Introduction to State Space Time Series Analysis*.

*Journal of Statistical Software*.

*Scandinavian Journal of Statistics*.

*arXiv:1903.03986 [Cs, Stat]*.

*IEEE Signal Processing Magazine*.

*Finite Mixture and Markov Switching Models*. Springer Series in Statistics.

*Bayesian Analysis*.

*Nature*.

*Journal of Time Series Analysis*.

*Journal of Machine Learning Research*.

*arXiv:2105.01098 [Stat]*.

*Journal of Computational and Graphical Statistics*.

*Statistica Sinica*.

*International Journal of Forecasting*, Forecasting Long Memory Processes,.

*International Journal of Forecasting*, M4 Competition,.

*Advances in Neural Information Processing Systems*.

*arXiv:1902.07425 [Math, Stat]*.

*arXiv:1711.02834 [Math, Stat]*.

*International Journal of Forecasting*, M4 Competition,.

*Advances in Water Resources*.

*The Annals of Statistics*.

*Journal of Machine Learning Research*.

*arXiv:1905.10437 [Cs, Stat]*.

*Journal of Business & Economic Statistics*.

*Time series: modeling, computation, and inference*. Texts in statistical science.

*Physical Review E*.

*arXiv:0912.4883 [Cs, Math, Stat]*.

*arXiv:1704.04110 [Cs, Stat]*.

*Nonlinear Dynamics and Statistics*.

*arXiv:0907.4290 [Physics]*.

*Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences*.

*PMLR*.

*Quantitative Finance*.

*Journal of Financial Econometrics*.

*arXiv:1504.06706 [Math, Stat]*.

*International Journal of Forecasting*.

*arXiv:1711.11053 [Stat]*.

*Neural Networks*.

*Annals of Geophysics*.

*Journal of Computational and Graphical Statistics*.

*Proceedings of the 9th International Conference on Neural Information Processing Systems*. NIPS’96.