Cmatrix {FoReco} | R Documentation |
Cross-sectional (contemporaneous) aggregation matrix
Description
This function allows the user to easily build the (\(n_a \times n_b\)) cross-sectional (contemporaneous) matrix mapping the \(n_b\) bottom level series into the \(n_a\) higher level ones. (Experimental version)
Usage
Cmatrix(formula, data, sep = "_", sparse = TRUE, top_label = "Total")
Arguments
formula |
Specification of the hierarchical structure: grouped hierarchies are specified
using |
data |
A dataset in which each column contains the values of the variables in the formula and each row identifies a bottom level time series. |
sep |
Character to separate the names of the aggregated series (default is |
sparse |
Option to return sparse matrix (default is |
top_label |
Label of the top level variable (default is |
Value
A (na x nb
) matrix.
See Also
Other utilities:
FoReco2ts()
,
agg_ts()
,
arrange_hres()
,
commat()
,
ctf_tools()
,
hts_tools()
,
lcmat()
,
oct_bounds()
,
residuals_matrix()
,
score_index()
,
shrink_estim()
,
thf_tools()
Examples
## Balanced hierarchy
# T
# |--------|
# A B
# |---| |--|--|
# AA AB BA BB BC
# Names of the bottom level variables
data_bts <- data.frame(X1 = c("A", "A", "B", "B", "B"),
X2 = c("A", "B", "A", "B", "C"),
stringsAsFactors = FALSE)
# Cross-sectional aggregation matrix
C <- Cmatrix(~ X1 / X2, data_bts, sep = "")
## Unbalanced hierarchy (1)
# T
# |--------|------|
# A B C
# |---| |--|--|
# AA AB BA BB BC
# Names of the bottom level variables
data_bts <- data.frame(X1 = c("A", "A", "B", "B", "B", "C"),
X2 = c("A", "B", "A", "B", "C", NA),
stringsAsFactors = FALSE)
# Cross-sectional aggregation matrix
C <- Cmatrix(~ X1 / X2, data_bts, sep = "")
## Unbalanced hierarchy (2)
# T
# |---------|---------|
# A B C
# |---| |---| |---|
# AA AB BA BB CA CB
# |----| |----|
# AAA AAB BBA BBB
# Names of the bottom level variables
data_bts <- data.frame(X1 = c("A", "A", "A", "B", "B", "B", "C", "C"),
X2 = c("A", "A", "B", "A", "B", "B", "A", "B"),
X3 = c("A", "B", NA, NA, "A", "B", NA, NA),
stringsAsFactors = FALSE)
# Cross-sectional aggregation matrix
C <- Cmatrix(~ X1 / X2 / X3, data_bts, sep = "")
## Grouped hierarchy
# C S
# |--------| |--------|
# A B M F
# |---| |---|
# AA AB BA BB
# Names of the bottom level variables
data_bts <- data.frame(X1 = c("A", "A", "B", "B", "A", "A", "B", "B"),
X2 = c("A", "B", "A", "B", "A", "B", "A", "B"),
Y1 = c("M", "M", "M", "M", "F", "F", "F", "F"),
stringsAsFactors = FALSE)
# Cross-sectional aggregation matrix
C <- Cmatrix(~ Y1 * (X1 / X2), data_bts, sep = "")