hierarchicalforecast.core
HierarchicalReconciliation
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.).
Args:
reconcilers
(list[HReconciler]): A list of instantiated classes of the reconciliation methods module.[Rob J. Hyndman and George Athanasopoulos (2018). "Forecasting principles and practice, Hierarchical and Grouped Series".](https
: //otexts.com/fpp3/hierarchical.html)__init__
bootstrap_reconcile
reconcile
method for the different reconciliation techniques instantiated in the reconcilers
list.
Args:
Y_hat_df
(Frame): DataFrame, base forecasts with columns [‘unique_id’, ‘ds’] and models to reconcile.S_df
(Frame): DataFrame with summing matrix of size (base, bottom)
, see aggregate method.tags
(dict[str, np.ndarray]): Each key is a level and its value contains tags associated to that level.Y_df
(Optional[Frame], optional): DataFrame, training set of base time series with columns ['unique_id', 'ds', 'y']
. If a class of self.reconciles
receives y_hat_insample
, Y_df
must include them as columns. Default is None.level
(Optional[list[int]], optional): positive float list [0,100), confidence levels for prediction intervals. Default is None.intervals_method
(str, optional): method used to calculate prediction intervals, one of normality
, bootstrap
, permbu
. Default is “normality”.num_samples
(int, optional): if positive return that many probabilistic coherent samples. Default is -1.num_seeds
(int, optional): random seed for numpy generator’s replicability. Default is 1.id_col
(str, optional): column that identifies each serie. Default is “unique_id”.time_col
(str, optional): column that identifies each timestep, its values can be timestamps or integers. Default is “ds”.target_col
(str, optional): column that contains the target. Default is “y”.FrameT
: DataFrame, with bootstraped reconciled predictions.reconcile
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 .
Args:
Y_hat_df
(Frame): DataFrame, base forecasts with columns [‘unique_id’, ‘ds’] and models to reconcile.tags
(dict[str, np.ndarray]): Each key is a level and its value contains tags associated to that level.S_df
(Frame, optional): DataFrame with summing matrix of size (base, bottom)
, see aggregate method. Default is None.Y_df
(Optional[Frame], optional): DataFrame, training set of base time series with columns ['unique_id', 'ds', 'y']
. If a class of self.reconciles
receives y_hat_insample
, Y_df
must include them as columns. Default is None.level
(Optional[list[int]], optional): positive float list [0,100), confidence levels for prediction intervals. Default is None.intervals_method
(str, optional): method used to calculate prediction intervals, one of normality
, bootstrap
, permbu
. Default is “normality”.num_samples
(int, optional): if positive return that many probabilistic coherent samples. Default is -1.seed
(int, optional): random seed for numpy generator’s replicability. Default is 0.is_balanced
(bool, optional): wether Y_df
is balanced, set it to True to speed things up if Y_df
is balanced. Default is False.id_col
(str, optional): column that identifies each serie. Default is “unique_id”.time_col
(str, optional): column that identifies each timestep, its values can be timestamps or integers. Default is “ds”.target_col
(str, optional): column that contains the target. Default is “y”.FrameT
: DataFrame, with reconciled predictions.