What the Average Demand Interval (ADI) hides

Demand occurrence with changing probability of occurrence

Have you used the Average Demand Interval (ADI) for analysis or classification? Do you know that it has some issues? Let me explain. I don’t know when specifically ADI was proposed, but it was popularised by Syntetos, Boylan & Croston (2005), yes, the same Croston from this post. A demand interval is the number of … Read more

Simple Exponential Smoothing: one parameter instead of many weights

SMA vs SES

In one of the comments to my previous post about the Simple Moving Average on LinkedIn, a reader mentioned that they use a Weighted Moving Average with their own weighting scheme. This can work well although defining the weights can be a nuisance: a Weighted Moving Average of order 12 needs 12 weights that someone … Read more

The Menace of ML: Simple Moving Average

Simple Moving Average of order 8

And here is another forecasting method that is hard to beat in practice. In a recent competition, it gave data scientists huge headaches and even outperformed some powerful ML methods. What’s the name of this beast?! Simple Moving Average! The idea behind the Simple Moving Average (SMA) is to take the average of the last … Read more

Five assumptions behind “forecastability”

Example of two time series with exactly the same coefficient of variation

Here is a confession. I don’t like the idea of “forecastability”. I think it does not bring value and can be harmful in some cases. Let me explain. One of the definitions I see on the internet: “A measure of the degree to which something may be forecast with accuracy”. This definition is so disturbing … Read more

On differencing of ARIMA in state space

The model fit of MSARIMA

A reader left a comment under the MSARIMA post on LinkedIn saying that in order to compare ARIMAs via information criteria, we need to make sure that the candidate models have the same order of differencing. They are right — for the conventional ARIMA. BUT! In the state space formulation, the problem disappears. Here is … Read more

stick function for the EDA in time series

You have probably seen my post about the STI classification of Hans Levenbach (this one). Well, I’ve decided to implement it, and it has landed in the greybox package for R/Python. What’s greybox? It is a package for statistical modelling focusing on forecasting and time series analysis. I created it back in 2018 to split … Read more

Hans Levenbach’s classification scheme for trend/seasonal components

Seasonal profile of the data

Here is a curious idea: if we can somehow estimate the importance of trend/seasonal components for your data, you can use this in model building and forecasting. But how can we do this first step? Hans Levenbach has an answer with his simple EDA technique. Let me explain. The core idea is simple and neat. … Read more

Forecasting Competitions Datasets in Python

Here is one small, unexpected piece of news: I now have my first package on PyPI! It’s called fcompdata, and let me tell you a little bit about it. When I test my functions in R, I usually use the M1, M3, and tourism competition datasets because they are diverse enough, containing seasonal, non-seasonal, trended, … Read more

Online Detection of Forecast Model Inadequacies Using Forecast Errors

Figure 6 from the paper, showing the proportion of GRP A&E admissions, the forecast errors and two detectors.

There’s a large and fascinating area in time series analysis called “changepoint detection”. I hadn’t worked in this area before, but thanks to Rebecca Killick and Thomas Grundy, I contributed to the paper “Online Detection of Forecast Model Inadequacies Using Forecast Errors“, which has just been published in the Journal of Time Series Analysis. DISCLAIMER: … Read more