class_docstr: Hierarchical reconciliation forecaster.
  
  Reconciliation is applied to make the forecasts in a hierarchy of
  time-series sum together appropriately.
  
  The base forecasts are first generated for each member separately in the
  hierarchy using any forecaster. The base forecasts are then reonciled
  so that they sum together appropriately. This reconciliation step can often
  improve the skill of the forecasts in the hierarchy.
  
  Please refer to [1]_ for further information.
  
  Parameters
  ----------
  forecaster : estimator
      Estimator to generate base forecasts which are then reconciled
  method : {"mint_cov", "mint_shrink", "ols", "wls_var", "wls_str",             "bu", "td_fcst"}, default="mint_shrink"
      The reconciliation approach applied to the forecasts based on:
          * "mint_cov" - sample covariance
          * "mint_shrink" - covariance with shrinkage
          * "ols" - ordinary least squares
          * "wls_var" - weighted least squares (variance)
          * "wls_str" - weighted least squares (structural)
          * "bu" - bottom-up
          * "td_fcst" - top down based on forecast proportions
  
  See Also
  --------
  Aggregator
  Reconciler
  
  References
  ----------
  .. [1] https://otexts.com/fpp3/hierarchical.html
  
  Examples
  --------
  >>> from sktime.forecasting.naive import NaiveForecaster
  >>> from sktime.forecasting.reconcile import ReconcilerForecaster
  >>> from sktime.transformations.hierarchical.aggregate import Aggregator
  >>> from sktime.utils._testing.hierarchical import _bottom_hier_datagen
  >>> agg = Aggregator()
  >>> y = _bottom_hier_datagen(
  ...     no_bottom_nodes=3,
  ...     no_levels=1,
  ...     random_seed=123,
  ...     length=7,
  ... )
  >>> y = agg.fit_transform(y)
  >>> forecaster = NaiveForecaster(strategy="drift")
  >>> reconciler = ReconcilerForecaster(forecaster, method="mint_shrink")
  >>> reconciler.fit(y)
  ReconcilerForecaster(...)
  >>> prds_recon = reconciler.predict(fh=[1])
class_docstr_tok: ["Hierarchical","reconciliation","forecaster",".","Reconciliation","is","applied","to","make","the","forecasts","in","a","hierarchy","of","time-series","sum","together","appropriately",".","The","base","forecasts","are","first","generated","for","each","member","separately","in","the","hierarchy","using","any","forecaster",".","The","base","forecasts","are","then","reonciled","so","that","they","sum","together","appropriately",".","This","reconciliation","step","can","often","improve","the","skill","of","the","forecasts","in","the","hierarchy",".","Please","refer","to","[","1","]","_","for","further","information",".","Parameters","--","--","--","--","--","forecaster",":","estimator","Estimator","to","generate","base","forecasts","which","are","then","reconciled","method",":","{","``","mint_cov","''",",","``","mint_shrink","''",",","``","ols","''",",","``","wls_var","''",",","``","wls_str","''",",","``","bu","''",",","``","td_fcst","''","}",",","default=","''","mint_shrink","''","The","reconciliation","approach","applied","to","the","forecasts","based","on",":","*","``","mint_cov","''","-","sample","covariance","*","``","mint_shrink","''","-","covariance","with","shrinkage","*","``","ols","''","-","ordinary","least","squares","*","``","wls_var","''","-","weighted","least","squares","(","variance",")","*","``","wls_str","''","-","weighted","least","squares","(","structural",")","*","``","bu","''","-","bottom-up","*","``","td_fcst","''","-","top","down","based","on","forecast","proportions","See","Also","--","--","--","--","Aggregator","Reconciler","References","--","--","--","--","--","..","[","1","]","https",":","\/\/otexts.com\/fpp3\/hierarchical.html","Examples","--","--","--","--",">",">",">","from","sktime.forecasting.naive","import","NaiveForecaster",">",">",">","from","sktime.forecasting.reconcile","import","ReconcilerForecaster",">",">",">","from","sktime.transformations.hierarchical.aggregate","import","Aggregator",">",">",">","from","sktime.utils._testing.hierarchical","import","_bottom_hier_datagen",">",">",">","agg","=","Aggregator","(",")",">",">",">","y","=","_bottom_hier_datagen","(","...","no_bottom_nodes=3",",","...","no_levels=1",",","...","random_seed=123",",","...","length=7",",","...",")",">",">",">","y","=","agg.fit_transform","(","y",")",">",">",">","forecaster","=","NaiveForecaster","(","strategy=","''","drift","''",")",">",">",">","reconciler","=","ReconcilerForecaster","(","forecaster",",","method=","''","mint_shrink","''",")",">",">",">","reconciler.fit","(","y",")","ReconcilerForecaster","(","...",")",">",">",">","prds_recon","=","reconciler.predict","(","fh=","[","1","]",")"]
code: def __init__(self, forecaster, method="mint_shrink"):
      self.forecaster = forecaster
      self.method = method
  
      super().__init__()
  
file_path: sktime/sktime/forecasting/reconcile.py
imports: import numpy
  import pandas
  from numpy.linalg import inv
  from sktime.forecasting.base import BaseForecaster, ForecastingHorizon
  from sktime.transformations.hierarchical.aggregate import _check_index_no_total
  from sktime.transformations.hierarchical.reconcile import Reconciler, _get_s_matrix, _parent_child_df
  from sktime.utils.warnings import warn
label_desc: Use image node_id 1 to create a new ReconcilerForecaster object from inherited base classes: BaseForecaster with example: obj = ReconcilerForecaster(forecaster, method)