lcmat function

Linear combination (aggregation) matrix for a general linearly constrained multiple time series

Linear combination (aggregation) matrix for a general linearly constrained multiple time series

This function transforms a general (possibly redundant) zero constraints matrix into a linear combination (aggregation) matrix Acs\mathbf{A}_{cs}. When working with a general linearly constrained multiple (nn-variate) time series, getting a linear combination matrix Acs\mathbf{A}_{cs} is a critical step to obtain a structural-like representation such that [REMOVE_ME]Ccs=[IA],[REMOVEME2] \mathbf{C}_{cs} = [\mathbf{I} \quad -\mathbf{A}], [REMOVE_ME_2]

where Ccs\mathbf{C}_{cs} is the full rank zero constraints matrix (Girolimetto and Di Fonzo, 2023).

lcmat(cons_mat, method = "rref", tol = sqrt(.Machine$double.eps), verbose = FALSE, sparse = TRUE)

Arguments

  • cons_mat: A (r×nr \times n) numeric matrix representing the cross-sectional zero constraints.
  • method: Method to use: "rref" for the Reduced Row Echelon Form through Gauss-Jordan elimination (default), or "qr" for the (pivoting) QR decomposition (Strang, 2019).
  • tol: Tolerance for the "rref" or "qr" method.
  • verbose: If TRUE, intermediate steps are printed (default is FALSE).
  • sparse: Option to return a sparse matrix (default is TRUE).

Returns

A list with two elements: (i) the linear combination (aggregation) matrix (agg_mat) and (ii) the vector of the column permutations (pivot).

Description

This function transforms a general (possibly redundant) zero constraints matrix into a linear combination (aggregation) matrix Acs\mathbf{A}_{cs}. When working with a general linearly constrained multiple (nn-variate) time series, getting a linear combination matrix Acs\mathbf{A}_{cs} is a critical step to obtain a structural-like representation such that

Ccs=[IA], \mathbf{C}_{cs} = [\mathbf{I} \quad -\mathbf{A}],

where Ccs\mathbf{C}_{cs} is the full rank zero constraints matrix (Girolimetto and Di Fonzo, 2023).

Examples

## Two hierarchy sharing the same top-level variable, but not sharing the bottom variables # X X # |-------| |-------| # A B C D # |---| # A1 A2 # 1) X = C + D, # 2) X = A + B, # 3) A = A1 + A2. cons_mat <- matrix(c(1,-1,-1,0,0,0,0, 1,0,0,-1,-1,0,0, 0,0,0,1,0,-1,-1), nrow = 3, byrow = TRUE) obj <- lcmat(cons_mat = cons_mat, verbose = TRUE) agg_mat <- obj$agg_mat # linear combination matrix pivot <- obj$pivot # Pivot vector

References

Girolimetto, D. and Di Fonzo, T. (2023), Point and probabilistic forecast reconciliation for general linearly constrained multiple time series, Statistical Methods & Applications, in press. tools:::Rd_expr_doi("10.1007/s10260-023-00738-6") .

Strang, G. (2019), Linear algebra and learning from data, Wellesley, Cambridge Press.

See Also

Utilities: FoReco2matrix(), aggts(), balance_hierarchy(), commat(), csprojmat(), cstools(), ctprojmat(), cttools(), df2aggmat(), recoinfo(), res2matrix(), shrink_estim(), teprojmat(), tetools(), unbalance_hierarchy()