10.4 The bottom-up approach

One commonly applied method for generating coherent forecasts is the bottom-up approach. This approach involves first generating base forecasts for each series at the bottom-level, and then aggregating these upwards to produce forecasts for all the series in the structure.

For example, for the hierarchy of Figure 10.1, we first generate \(h\)-step-ahead base forecasts for each of the bottom-level series: \[ \yhat{AA}{h},~~\yhat{AB}{h},~~\yhat{AC}{h},~~ \yhat{BA}{h}~~\text{and}~~\yhat{BB}{h}. \] Aggregating these up the hierarchy, we get \(h\)-step-ahead coherent forecasts for the rest of the series: \[ \tilde{y}_{h}=\yhat{AA}{h}+\yhat{AB}{h}+\yhat{AC}{h}+\yhat{BA}{h}+\yhat{BB}{h},~~~\ytilde{A}{h}= \yhat{AA}{h}+\yhat{AB}{h}+\yhat{AC}{h}\] and \[\ytilde{B}{h}= \yhat{BA}{h}+\yhat{BB}{h}. \] As in equation (10.3), we can employ the summing matrix here and write \[ \begin{bmatrix} \tilde{y}_{h} \\ \ytilde{A}{h} \\ \ytilde{B}{h} \\ \ytilde{AA}{h} \\ \ytilde{AB}{h} \\ \ytilde{AC}{h} \\ \ytilde{BA}{h} \\ \ytilde{BB}{h} \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \yhat{AA}{h} \\ \yhat{AB}{h} \\ \yhat{AC}{h} \\ \yhat{BA}{h} \\ \yhat{BB}{h} \end{bmatrix}. \]

In general, using more compact notation, the bottom-up approach can be represented as \[ \tilde{\bm{y}}_{h}=\bm{S}\hat{\bm{y}}_{K,h}, \] where \(\tilde{\bm{y}_t}\) is an \(n\)-dimensional vector of coherent \(h\)-step-ahead forecasts of each time series within any aggregation structure and \(\hat{\bm{y}}_{K,h}\) is an \(m\)-dimensional vector of \(h\)-step-ahead base forecasts for each of the bottom-level series of any aggregation structure. Note that for the bottom-up approach the coherent forecasts for the bottom-level series are equal to the base forecasts, i.e., \(\tilde{\bm{y}}_{K,t}=\hat{\bm{y}}_{K,t}\).

The greatest advantage of this approach is that we are forecasting at the bottom-level of a structure and therefore no information is lost due to aggregation. On the other hand, bottom-level data can be quite noisy and more challenging to model and forecast.

The bottom-up approach is implemented in the forecast package by setting

forecast(..., method = "bu", ...).