Core
HierarchicalForecast contains pure Python implementations of
hierarchical reconciliation methods as well as a
core.HierarchicalReconciliation
wrapper class that enables easy
interaction with these methods through pandas DataFrames containing the
hierarchical time series and the base predictions.
The core.HierarchicalReconciliation
reconciliation class operates with
the hierarchical time series pd.DataFrame Y_df
, the base predictions
pd.DataFrame Y_hat_df
, the aggregation constraints matrix S
. For
more information on the creation of aggregation constraints matrix see
the utils aggregation
method.
core.HierarchicalReconciliation
source
init
*Hierarchical Reconciliation Class.
The core.HierarchicalReconciliation
class allows you to efficiently
fit multiple HierarchicaForecast methods for a collection of time series
and base predictions stored in pandas DataFrames. The Y_df
dataframe
identifies series and datestamps with the unique_id and ds columns while
the y column denotes the target time series variable. The Y_h
dataframe stores the base predictions, example
(AutoARIMA,
ETS,
etc.).
Parameters:
reconcilers
: A list of instantiated classes of the
reconciliation
methods
module .
source
HierarchicalReconciliation
*Hierarchical Reconciliation Class.
The core.HierarchicalReconciliation
class allows you to efficiently
fit multiple HierarchicaForecast methods for a collection of time series
and base predictions stored in pandas DataFrames. The Y_df
dataframe
identifies series and datestamps with the unique_id and ds columns while
the y column denotes the target time series variable. The Y_h
dataframe stores the base predictions, example
(AutoARIMA,
ETS,
etc.).
Parameters:
reconcilers
: A list of instantiated classes of the
reconciliation
methods
module .
source
reconcile
*Hierarchical Reconciliation Method.
The reconcile
method is analogous to SKLearn fit_predict
method, it
applies different reconciliation techniques instantiated in the
reconcilers
list.
Most reconciliation methods can be described by the following convenient linear algebra notation:
where represent the aggregate and bottom levels, contains the hierarchical aggregation constraints, and varies across reconciliation methods. The reconciled predictions are , and the base predictions .
Parameters:
Y_hat_df
: pd.DataFrame, base forecasts with
columns ds
and models to reconcile indexed by unique_id
.
Y_df
:
pd.DataFrame, training set of base time series with columns
['ds', 'y']
indexed by unique_id
.
If a class of
self.reconciles
receives y_hat_insample
, Y_df
must include them as
columns.
S
: pd.DataFrame with summing matrix of size
(base, bottom)
, see aggregate
method.
tags
: Each key is a level and its value contains tags associated to
that level.
level
: positive float list [0,100), confidence levels
for prediction intervals.
intervals_method
: str, method used to
calculate prediction intervals, one of normality
, bootstrap
,
permbu
.
num_samples
: int=-1, if positive return that many
probabilistic coherent samples. seed
: int=0, random seed for numpy
generator’s replicability.
sort_df
: bool (default=True), if True,
sort df
by [unique_id
,ds
].
is_balanced
: bool=False, wether
Y_df
is balanced, set it to True to speed things up if Y_df
is
balanced.
Returns:
Y_tilde_df
: pd.DataFrame, with reconciled
predictions.*
source
bootstrap_reconcile
*Bootstraped Hierarchical Reconciliation Method.
Applies N times, based on different random seeds, the reconcile
method
for the different reconciliation techniques instantiated in the
reconcilers
list.
Parameters:
Y_hat_df
: pd.DataFrame, base forecasts with
columns ds
and models to reconcile indexed by unique_id
.
Y_df
:
pd.DataFrame, training set of base time series with columns
['ds', 'y']
indexed by unique_id
.
If a class of
self.reconciles
receives y_hat_insample
, Y_df
must include them as
columns.
S
: pd.DataFrame with summing matrix of size
(base, bottom)
, see aggregate
method.
tags
: Each key is a level and its value contains tags associated to
that level.
level
: positive float list [0,100), confidence levels
for prediction intervals.
intervals_method
: str, method used to
calculate prediction intervals, one of normality
, bootstrap
,
permbu
.
num_samples
: int=-1, if positive return that many
probabilistic coherent samples. num_seeds
: int=1, random seed for
numpy generator’s replicability.
sort_df
: bool (default=True), if
True, sort df
by [unique_id
,ds
].
Returns:
Y_bootstrap_df
: pd.DataFrame, with bootstraped
reconciled predictions.*