
Feature based graph pruning for improved forecast reconciliation
3rd July 2024 @ ISF 2024
Mitchell O’Hara-Wild, Monash University
Supervised by Rob Hyndman and George Athanasopoulos

Reconciliation adjusts related forecasts so they add up correctly (coherent).
Related time series are described in three ways:
📚 Hierarchical
One path from top to bottom.
📚 Grouped
Many paths from top to bottom.
💡 Graph (ISF2023)
Many paths from (many) top to (many) bottom series.
❤️ Forecasters love reconciliation
Widely understood to improve forecast accuracy
All forecasts are wrong…
… but coherent forecasts are less wrong!
💔 At times its a love-hate relationship
Today, I hope to help you love reconciliation more!
Data overview
Google Analytics data since 1 January 2020
Daily page views (and users)
Disaggregated by many dimensions
(e.g. location, device, returning visit, web page, …)
Illustrative example
I’ll gloss over many details specific to forecasting this data (I promise it’s not interesting or important)!
This data will illustrate how coherent pruning is useful for forecast reconciliation - far more interesting!
deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

Many time series aren’t interesting or useful.
Simply don’t forecast them!
Removing uninformative series has many benefits:
From grouped to graph
This is made possible with graph reconciliation.
Simply removing series breaks the coherency structure.
We also must remove the relevant coherency constraints.
Maintaining coherency
Even if a series is unwanted, it can’t be removed if other useful series are used in the same disaggregation.
There are two fundamental decisions involved in pruning:
To maintain coherency, the decision at each disaggregation is all or nothing.
Automated graph pruning with features
Starting from the top to bottom, we evaluate the ‘forecastability’ of each series with the predicate.
This can be done automatically with features, such as:
If the disaggregated series satisfy the disaggregation rule, we disaggregate further.
Repeat this through the graph until we reach completely uninteresting data, or the bottom series.
deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

deviceCategory*(continent/subContinent/country)

The small example
On this small example with structure:
deviceCategory*(continent/subContinent/country)
There were a total of 1305 time series.
A simple pruning with…
Was able to maintain coherent forecasting accuracy with <50% of the data (666 observations).
The big picture
The actual data has 100s of disaggregating dimensions.
With this slightly larger structure:
operatingSystem*userType*deviceCategory*
(pagePathLevel1/pagePathLevel2)*
(continent/subContinent/country)
There are a total of… 🥁
1,699,593,840 time series.
🗑️ A simple pruning later…
< 10,000 useful time series, minimal loss of information.
Graph pruning of coherent time series solves big problems with forecast reconcilation.
Grouped constraints
Since grouped constraints require a common bottom series, previously all disaggregates must be forecasted.
To keep the data small…
useful dimensions had to be dropped ❌
Graph constraints
With graph constraints, there can be any structure.
To keep the data small…
useless series can be dropped! ✅
Key ideas
Future work
This is a student presentation, please rate it!

