Skip to contents

This function computes the projection or the mapping matrix \(\mathbf{M}\) and \(\mathbf{G}\), respectively, such that \(\widetilde{\mathbf{y}} = \mathbf{M}\widehat{\mathbf{y}} = \mathbf{S}_{cs}\mathbf{G}\widehat{\mathbf{y}}\), where \(\widetilde{\mathbf{y}}\) is the vector of the reconciled forecasts, \(\widehat{\mathbf{y}}\) is the vector of the base forecasts, \(\mathbf{S}_{cs}\) is the cross-sectional structural matrix, and \(\mathbf{M} = \mathbf{S}_{cs}\mathbf{G}\). For further information regarding on the structure of these matrices, refer to Girolimetto et al. (2023).

Usage

csprojmat(agg_mat, cons_mat, comb = "ols", res = NULL, mat = "M", ...)

Arguments

agg_mat

A (\(n_a \times n_b\)) numeric matrix representing the cross-sectional aggregation matrix. It maps the \(n_b\) bottom-level (free) variables into the \(n_a\) upper (constrained) variables.

cons_mat

A (\(n_a \times n\)) numeric matrix representing the cross-sectional zero constraints. It spans the null space for the reconciled forecasts.

comb

A string specifying the reconciliation method. For a complete list, see cscov.

res

An (\(N \times n\)) optional numeric matrix containing the in-sample residuals. This matrix is used to compute some covariance matrices.

mat

A string specifying which matrix to return: "M" (default) for \(\mathbf{M}\) and "G" for \(\mathbf{G}\).

...

Arguments passed on to cscov

mse

If TRUE (default) the residuals used to compute the covariance matrix are not mean-corrected.

shrink_fun

Shrinkage function of the covariance matrix, shrink_estim (default).

Value

The projection matrix \(\mathbf{M}\) (mat = "M") or the mapping matrix \(\mathbf{G}\) (mat = "G").

References

Girolimetto, D., Athanasopoulos, G., Di Fonzo, T. and Hyndman, R.J. (2024), Cross-temporal probabilistic forecast reconciliation: Methodological and practical issues. International Journal of Forecasting, 40, 3, 1134-1151. doi:10.1016/j.ijforecast.2023.10.003

Examples

# Cross-sectional framework
A <- t(c(1,1)) # Aggregation matrix for Z = X + Y
Mcs <- csprojmat(agg_mat = A, comb = "ols")
Gcs <- csprojmat(agg_mat = A, comb = "ols", mat = "G")