csbu function

Cross-sectional bottom-up reconciliation

Cross-sectional bottom-up reconciliation

This function computes the cross-sectional bottom-up reconciled forecasts (Dunn et al., 1976) for all series by appropriate summation of the bottom base forecasts b^\widehat{\mathbf{b}}: [REMOVE_ME]y~=Scsb^,[REMOVEME2] \widetilde{\mathbf{y}} = \mathbf{S}_{cs}\widehat{\mathbf{b}}, [REMOVE_ME_2]

where Scs\mathbf{S}_{cs} is the cross-sectional structural matrix.

csbu(base, agg_mat, sntz = FALSE)

Arguments

  • base: A (h×nbh \times n_b) numeric matrix or multivariate time series (mts class) containing bottom base forecasts; hh is the forecast horizon, and nbn_b is the total number of bottom variables.
  • agg_mat: A (na×nbn_a \times n_b) numeric matrix representing the cross-sectional aggregation matrix. It maps the nbn_b bottom-level (free) variables into the nan_a upper (constrained) variables.
  • sntz: If TRUE, the negative base forecasts are set to zero before applying bottom-up.

Returns

A (h×nh \times n) numeric matrix of cross-sectional reconciled forecasts.

Description

This function computes the cross-sectional bottom-up reconciled forecasts (Dunn et al., 1976) for all series by appropriate summation of the bottom base forecasts b^\widehat{\mathbf{b}}:

y~=Scsb^, \widetilde{\mathbf{y}} = \mathbf{S}_{cs}\widehat{\mathbf{b}},

where Scs\mathbf{S}_{cs} is the cross-sectional structural matrix.

Examples

set.seed(123) # (3 x 2) bottom base forecasts matrix (simulated), Z = X + Y bts <- matrix(rnorm(6, mean = c(10, 10)), 3, byrow = TRUE) # Aggregation matrix for Z = X + Y A <- t(c(1,1)) reco <- csbu(base = bts, agg_mat = A) # Non negative reconciliation bts[2,2] <- -bts[2,2] # Making negative one of the base forecasts for variable Y nnreco <- csbu(base = bts, agg_mat = A, sntz = TRUE)

References

Dunn, D. M., Williams, W. H. and Dechaine, T. L. (1976), Aggregate versus subaggregate models in local area forecasting, Journal of the American Statistical Association

71(353), 68–71. tools:::Rd_expr_doi("10.1080/01621459.1976.10481478")

See Also

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

Cross-sectional framework: csboot(), cscov(), cslcc(), csmo(), csrec(), cstd(), cstools()