Skip to contents

Temporal bottom-up reconciled forecasts at any temporal aggregation level are computed by appropriate aggregation of the high-frequency base forecasts, \(\widehat{\mathbf{x}}^{[1]}\): $$\widetilde{\mathbf{x}} = \mathbf{S}_{te}\widehat{\mathbf{x}}^{[1]},$$ where \(\mathbf{S}_{te}\) is the temporal structural matrix.


tebu(base, agg_order, tew = "sum", sntz = FALSE)



A (\(hm \times 1\)) numeric vector containing the high-frequency base forecasts; \(m\) is the max. temporal aggregation order, and \(h\) is the forecast horizon for the lowest frequency time series.


Highest available sampling frequency per seasonal cycle (max. order of temporal aggregation, \(m\)), or a vector representing a subset of \(p\) factors of \(m\).


A string specifying the type of temporal aggregation. Options include: "sum" (simple summation, default), "avg" (average), "first" (first value of the period), and "last" (last value of the period).


If TRUE, the negative base forecasts are set to zero before applying bottom-up.


A (\(h(k^\ast+m) \times 1\)) numeric vector of temporal reconciled forecasts.

See also

Bottom-up reconciliation: csbu(), ctbu()

Temporal framework: teboot(), tecov(), telcc(), temo(), terec(), tetd(), tetools()


# (4 x 1) high frequency base forecasts vector (simulated),
# agg_order = 4 (annual-quarterly)
hfts <- rnorm(4, 5)

reco <- tebu(base = hfts, agg_order = 4)

# Non negative reconciliation
hfts[4] <- -hfts[4] # Making negative one of the quarterly base forecasts
nnreco <- tebu(base = hfts, agg_order = 4, sntz = TRUE)