FoReco2matrix() is no longer exported. Use the new components() method on foreco objects (see New features below), which provides the same splitting of reconciled forecasts by temporal aggregation order.recoinfo() has been removed. The same information is now available via summary() on a foreco object.res2matrix() is soft-deprecated via lifecycle::deprecate_warn() and will be removed in a future release. Use as_hstack_telayout() or as_hstack_ctlayout() instead.foreco for reconciled forecasts, returned by every reconciliation function (csrec(), terec(), ctrec(), csbu(), tebu(), ctbu(), cstd(), tetd(), cttd(), csmo(), temo(), ctmo(), cslcc(), telcc(), ctlcc(), csmvn(), temvn(), ctmvn(), cssmp(), tesmp(), ctsmp(), tcsrec(), cstrec(), iterec()). The class extends the underlying matrix or distributional object with a "FoReco" attribute that stores framework, function used, forecast type ("point" or "probabilistic") and reconciliation-specific metadata, and provides dedicated print(), summary(), plot(), components() methods.new_foreco_class() so that companion packages can produce objects that integrate with FoReco's print(), summary(), plot() and components() methods.generics::components() method for foreco objects, with cs, te, keep_names and temporal_names arguments to filter series and temporal aggregation orders.csrec() that occurred when the constraint matrix was not in the form derived by the aggregation matrix.examples block to every exported function that was previously missing one (e.g. teboot()).title field of every file so that all man page titles consistently follow title case.t(A) %*% B and A %*% t(B) throughout the internal routines with crossprod(A, B) and tcrossprod(A, B) respectively.... for simulate() in csboot(), teboot() and ctboot() and added xreg param in csboot(), teboot() and ctboot().osqp 1.0. The package is now fully compatible with any version.csmvn(), temvn(), and ctmvn() for Gaussian probabilistic forecast reconciliation in the cross-sectional, temporal, and cross-temporal frameworks using the distributional package;cssmp(), tesmp(), and ctsmp() for sample-based probabilistic forecast reconciliation in the cross-sectional, temporal, and cross-temporal frameworks using the distributional package;as_ctmatrix() and as_horizon_stacked_ctmatrix() functions to convert between horizon-stacked (cross-temporal version) and cross-temporal layouts;as_tevector() and as_horizon_stacked_tematrix() functions to convert between horizon-stacked (temporal version) and temporal layouts;... for simulate() additional arguments in csboot(), teboot() and ctboot();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:
oasd cross-sectional covariance matrix (experimental), implementing an oracle shrunk
covariance estimation (Ando and Xiao, 2023):
bounds parameter to enable bounded forecast reconciliation for csrec(),
terec(), and ctrec() functions;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"