The middle-out forecast reconciliation for temporal hierarchies combines top-down (tetd ) and bottom-up (tebu ) methods. Given the base forecasts of an intermediate temporal aggregation order k, it performs
a top-down approach for the aggregation orders \<k;
a bottom-up approach for the aggregation orders k.
temo(base, agg_order, order = max(agg_order), weights, tew ="sum", normalize =TRUE)
Arguments
base: A (hk×1) numeric vector containing the temporal aggregated base forecasts of order k; k is an aggregation order (a factor of m, and 1<k<m), m is the max aggregation order, and h is the forecast horizon for the lowest frequency time series.
agg_order: Highest available sampling frequency per seasonal cycle (max. order of temporal aggregation, m), or a vector representing a subset of p factors of m.
order: The intermediate fixed aggregation order k.
weights: A (hm×1) numeric vector containing the proportions for the high-frequency time series; m is the max aggregation order, and h is the forecast horizon for the lowest frequency time series.
tew: 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).
normalize: If TRUE (default), the weights will sum to 1.
Returns
A (h(k∗+m)×1) numeric vector of temporal reconciled forecasts.
Examples
set.seed(123)# (6 x 1) base forecasts vector (simulated), forecast horizon = 3# and intermediate aggregation order k = 2 (max agg order = 4)basek2 <- rnorm(3*2,5)# Same weights for different forecast horizonsfix_weights <- runif(4)reco <- temo(base = basek2, order =2, agg_order =4, weights = fix_weights)# Different weights for different forecast horizonsh_weights <- runif(4*3)recoh <- temo(base = basek2, order =2, agg_order =4, weights = h_weights)