I have been learning how to use the very handy fable package (along with forecast, fabletools, etc.) and I have looked at fpp2 and fpp3 in the processes. fpp2 chapter 10 talks about hierarchical forecasting and the bottom up, middle out, and top down methods in which you forecast one level of a series and aggregate / disaggregate the series up and / or down. This is done with the hts and forecast packages.

fpp3 talks about the fable package but I dont see (apologies if I missed it) a section talking about forecasting hierarchies. What I have found thus far is that fable forecasts all the series in a hierarchy together as opposed to the older approach of forecasting one level. And you can use reconcile to... well reconcile these with each other. I've looked for more explanation and examples but the only ones I've found use reconcile with min_trace like this:

if (requireNamespace("fable", quietly = TRUE)) {
lung_deaths_agg <- as_tsibble(cbind(mdeaths, fdeaths)) %>%
  aggregate_key(key, value = sum(value))

lung_deaths_agg %>%
  model(lm = TSLM(value ~ trend() + season())) %>%
  reconcile(lm = min_trace(lm)) %>%

So my questions are:

  • Are there other more in depth resources I'm missing for forecasting using fable?
    • Specifically a list of all the reconciliation methods and how they should be used?
  • Can you use something like bu, mo, td reconciliation with reconcile?
  • Are approaches like min_trace considered better in all respects than bu, mo, td approaches and so I should just not worry about it?

Thanks very much for any help anyone could offer!


1 Answer 1


Hm. Unfortunately, ?fabletools::reconcile gives a very rudimentary help page. I am not privy to the internals, but what I can tell you may already be helpful.

I strongly suspect that min_trace implements an optimal reconciliation approach which, yes, typically performs better than bottom-up, top-down and middle-out. It looks like FPP3 does not have the relevant chapter yet, so I would recommend Chapter 10 in FPP2, especially section 10.7.

Specifically, the flavor that min_trace gives is probably optimal reconciliation through trace minimization (Wickramasurya, Athanasopoulos & Hyndman, 2019, JASA - yes, the latter two are the authors of FPP). That paper also references a number of earlier papers on optimal reconciliation, e.g., the original one by Athanasopoulos et al. (2009, IJF), with a corrigendum by Athanasopoulos et al. (2015, IJF), and the one by Hyndman et al., (2011, CS&DA).

These papers and the FPP2 section should give you a very good foundation to understand what is happening, even in the absence of thorough documentation. Alternatively, you could work with the older hts package for hierarchical time series, which implements almost the same functionalities (for now).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.