## 10.4 The bottom-up approach

A 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", ...).