`R/cstrec.R`

`cstrec.Rd`

Cross-temporal forecast reconciliation according to the heuristic procedure by
Kourentzes and Athanasopoulos (2019), where the order of application of the
two reconciliation steps (temporal-first-then-cross-sectional, as in the function
`tcsrec()`

), is inverted. The function
`cstrec()`

performs cross-sectional reconciliation
(`htsrec()`

) first, then temporal reconciliation
(`thfrec()`

), and finally applies the average of the
projection matrices obtained in the second step to the one dimensional
reconciled values obtained in the first step.

`cstrec(basef, hts_comb, thf_comb, res, ...)`

- basef
(\(n \times h(k^\ast+m)\)) matrix of base forecasts to be reconciled, \(\widehat{\mathbf{Y}}\); \(n\) is the total number of variables, \(m\) is the highest time frequency, \(k^\ast\) is the sum of (a subset of) (\(p-1\)) factors of \(m\), excluding \(m\), and \(h\) is the forecast horizon for the lowest frequency time series. Each row identifies a time series, and the forecasts are ordered as [lowest_freq' ... highest_freq']'.

- hts_comb, thf_comb
Type of covariance matrix (respectively (\(n \times n\)) and (\((k^\ast + m) \times (k^\ast + m)\))) to be used in the cross-sectional and temporal reconciliation, see more in

`comb`

param of`htsrec()`

and`thfrec()`

.- res
(\(n \times N(k^\ast + m)\)) matrix containing the residuals at all the temporal frequencies ordered as [lowest_freq' ... highest_freq']' (columns) for each variable (row), needed to estimate the covariance matrix when

`hts_comb =`

`{"wls",`

`"shr",`

`"sam"}`

and/or`hts_comb =`

`{"wlsv",`

`"wlsh",`

`"acov",`

`"strar1",`

`"sar1",`

`"har1",`

`"shr",`

`"sam"}`

. The rows must be in the same order as`basef`

.- ...
any other options useful for

`htsrec()`

and`thfrec()`

, e.g.`m`

,`C`

(or`Ut`

and`nb`

),`nn`

(for non-negative reconciliation only at the first step),`mse`

,`corpcor`

,`type`

,`sol`

,`settings`

,`W`

,`Omega`

,...

The function returns a list with two elements:

`recf`

(\(n \times h(k^\ast + m)\)) reconciled forecasts matrix, \(\widetilde{\mathbf{Y}}\).

`M`

Matrix which transforms the uni-dimensional reconciled forecasts of step 1 (projection approach) .

**Warning**,
the two-step heuristic reconciliation allows non negativity constraints only in the first step.
This means that it is not guaranteed the non-negativity of the final reconciled values.

Di Fonzo, T., Girolimetto, D. (2020), Cross-Temporal Forecast Reconciliation: Optimal Combination Method and Heuristic Alternatives, Department of Statistical Sciences, University of Padua, arXiv:2006.08570.

Kourentzes, N., Athanasopoulos, G. (2019), Cross-temporal coherent forecasts
for Australian tourism, *Annals of Tourism Research*, 75, 393-409.

Schäfer, J.L., Opgen-Rhein, R., Zuber, V., Ahdesmaki, M.,
Duarte Silva, A.P., Strimmer, K. (2017), *Package `corpcor'*, R
package version 1.6.9 (April 1, 2017), https://CRAN.R-project.org/package= corpcor.

Schäfer, J.L., Strimmer, K. (2005), A Shrinkage Approach to Large-Scale Covariance
Matrix Estimation and Implications for Functional Genomics, *Statistical
Applications in Genetics and Molecular Biology*, 4, 1.

Stellato, B., Banjac, G., Goulart, P., Bemporad, A., Boyd, S. (2020). OSQP:
An Operator Splitting Solver for Quadratic Programs, *Mathematical Programming Computation*,
12, 4, 637-672.

Stellato, B., Banjac, G., Goulart, P., Boyd, S., Anderson, E. (2019), OSQP: Quadratic Programming Solver using the 'OSQP' Library, R package version 0.6.0.3 (October 10, 2019), https://CRAN.R-project.org/package=osqp.

```
data(FoReco_data)
obj <- cstrec(FoReco_data$base, m = 12, C = FoReco_data$C,
hts_comb = "shr", thf_comb = "acov", res = FoReco_data$res)
```