Added new bpv
non-negative forecast reconciliation algorithm (experimental) based on the cross-sectional framework presented in Wickramasuriya et al. (2020) and, now, extended for the temporal and cross-temporal framework.
New oasd
cross-sectional covariance matrix (experimental), implementing an oracle shrunk covariance estimation (Ando and Xiao, 2023).
Redesigned bounds
parameter to enable bounded forecast reconciliation for csrec()
, terec()
, and ctrec()
functions.
Introduced new set_bounds()
function to define custom bounds for reconciliation.
agg_order
factors was selected in iterec()
, tcsrec()
, and cstrec()
functions.Note – The latest release of FoReco introduces significant changes to its function notation and adds several new features. This major update, FoReco 1.0, is not compatible with previous versions due to the substantial changes made to the package's core structure. The previous version is available on Github (docs).
Due to the significant changes in FoReco 1.0, users are advised to carefully review the updated documentation and examples before using the new version. The latest documentation and release notes are available on danigiro.github.io/FoReco/
Updated Function Notation: All functions related to cross-sectional, temporal, and cross-temporal frameworks now use the prefixes cs, te, and ct, respectively. For example, the optimal combination reconciliation functions are now csrec()
, terec()
, and ctrec()
.
Simplified Function Outputs: Reconciliation functions now return only matrices. Additional information can be accessed using attr(., "FoReco")
or the recoinfo()
function.
New Datasets: Two new datasets, itagdp
(Italian Quarterly National Accounts) and vndata
(Australian Tourism Demand), are included along with their respective aggregation or constraint matrices.
Classic Approach: The middle-out approach (csmo()
, temo()
, and ctmo()
) has been implemented alongside the classic bottom-up (csbu()
, tebu()
, and ctbu()
) and top-down (cstd()
, tetd()
, and cttd()
) methods.
Level Conditional Coherent Reconciliation: Level conditional coherent reconciliation is now available for all constraints: cslcc()
(cross-sectional), telcc()
(temporal), and ctlcc()
(cross-temporal).
Immutable reconciliation: The immutable()
parameter has been added to the reconciliation functions (csrec()
, terec()
, and ctrec()
) to prevent the base forecasts from being modified with both the structural (approach='strc'
) and the zero-constrained (approach='proj'
) approach.
Balanced and unbalanced hierarchy: added balance_hierarchy()
and unbalance_hierarchy()
for dealing with balanced and unbalanced hierarchies.
Projection Matrix Functions: Functions csprojmat()
, teprojmat()
, and ctprojmat()
have been added to obtain projection matrices.
Covariance Matrix Functions: Functions cscov()
, tecov()
, and ctcov()
have been added to obtain covariance matrices.
Function Renaming: Several functions have been renamed to improve consistency and clarity
Cmatrix()
-> df2aggmat()
hts_tools()
-> cstools()
thf_tools()
-> tetools()
ctf_tools()
-> cttools()
agg_ts()
-> aggts()
residuals_matrix()
-> res2matrix()
boot_cs()
-> csboot()
boot_te()
-> teboot()
boot_ct()
-> ctboot()
htsrec()
-> csrec()
thfrec()
-> terec()
octrec()
-> ctrec()
lccrec()
-> cslcc()
boot_cs()
, boot_te()
and boot_ct()
to draw samples from, respectively, cross-sectional, temporal and cross-temporal joint (block) bootstrap.ctbu()
inputs;FoReco2matrix()
to transform FoReco forecasts input and output in a list of matrix/vector class;agg_ts()
: non-overlapping temporal aggregation of a time series according to a specific aggregation order.arrange_hres()
and residuals_matrix()
functions to arrange residuals for the covariance matrix under Gaussianity;octrec()
;lcmat()
function.htsrec()
;score_index()
;bounds
param when type = "S"
in htsrec()
, thfrec()
and octrec()
;v
param in htsrec()
, thfrec()
and octrec()
- experimental;ut2c()
and srref()
.lccrec()
(now the function returns the Level Conditional Coherent or the Combined Conditional Coherent forecasts);keep = "list"
.htsrec()
, thfrec()
and octrec()
to introduce a list of h covariance matrices in the parameters W
and Omega
, where h stands for the forecast horizon (note that for thfrec()
and octrec()
this is the forecast horizon of the entire cycle);Sstruc
is no more avaible in octrec()
and ctf_tools()
. FoReco uses a fast algorithm to compute Scheck, so no external input is needed;ctf_tools()
(added Ccheck
, Htcheck
, Scheck
, removed Cstruc
, Sstruc
), hts_tools()
(added C
) and thf_tools()
(added m
);nn_type
) in htsrec()
, thfrec()
and octrec()
;tdrec()
;levrec()
(cross-sectional, temporal and cross-temporal).octrec()
it is also possible to introduce the Ω covariance matrix variant through the Omega
parameter and not only the W variant with the W
parameter;tcsrec()
, cstrec()
and iterec()
. In the iterec()
function the maxit
parameter has been replaced by itmax
, however for the moment maxit
is still supported;iterec()
(norm
parameter).bounds
param in htsrec()
, thfrec()
and octrec()
;oct_bounds()
to organize the bounds on a specific dimension (i.e. only cross-sectional or only temporal) in a cross-temporal framework;ut2c()
and srref()
to develop a cross-sectional structural representation starting from a zero constraints kernel matrix;score_index()
the calculation of multiple forecast horizons index (like 1:6) and multiple cross-sectional levels for a forecasting experiment.Minore release, fixing some bugs and the documentation
iterec()
when calculating the incoherenceAverage relative accuracy indices
"