核心
HierarchicalForecast 包含层次协调方法的纯 Python 实现,以及一个 core.HierarchicalReconciliation
包装类,通过包含层次时间序列和基础预测的 pandas DataFrame,可以轻松地与这些方法进行交互。
core.HierarchicalReconciliation
协调类使用层次时间序列 pd.DataFrame Y_df
、基础预测 pd.DataFrame Y_hat_df
和聚合约束矩阵 S
进行操作。有关聚合约束矩阵创建的更多信息,请参阅 utils 聚合方法。
HierarchicalReconciliation
源
HierarchicalReconciliation
*层次协调类。
core.HierarchicalReconciliation
类允许您高效地为存储在 pandas DataFrame 中的时间序列集合和基础预测拟合多种 HierarchicaForecast 方法。Y_df
DataFrame 使用 unique_id 和 ds 列标识时间序列和日期戳,而 y 列表示目标时间序列变量。Y_h
DataFrame 存储基础预测,例如 (AutoARIMA, ETS 等)。
参数
reconcilers
:[协调方法](https://nixtla.github.io/hierarchicalforecast/methods.html)模块中实例化类的列表。
参考资料
Rob J. Hyndman and George Athanasopoulos (2018)。“预测原理与实践,层次和分组时间序列”。*
源
reconcile
*层次协调方法。
reconcile
方法类似于 SKLearn 的 fit_predict
方法,它应用在 reconcilers
列表中实例化的不同协调技术。
大多数协调方法可以用以下简便的线性代数符号表示
S[a,b][b]P[b][a,b]y^[a,b],τ
其中 表示聚合层和底层, 包含层次聚合约束,而 因协调方法而异。协调后的预测是 ,基础预测是 。
参数
Y_hat_df
:DataFrame,包含 [‘unique_id’, ‘ds’] 列和待协调模型的原始预测。
Y_df
:DataFrame,包含 ['unique_id', 'ds', 'y']
列的基础时间序列训练集。
如果 self.reconciles
的某个类接收 y_hat_insample
,则 Y_df
必须将其作为列包含进来。
S
:大小为 (base, bottom) 的求和矩阵 DataFrame,参见[聚合方法](https://nixtla.github.io/hierarchicalforecast/utils.html#aggregate)。
tags
:每个键表示一个级别,其值包含与该级别相关的标签。
level
:正浮点数列表 [0,100),用于预测区间的置信水平。
intervals_method
:字符串,用于计算预测区间的方法,可选值为 normality
、bootstrap
、permbu
之一。
num_samples
:整数,-1 表示不返回样本;如果为正,则返回指定数量的概率相干样本。 seed
:整数,0 表示默认值;numpy 生成器的随机种子,用于重现性。
is_balanced
:布尔值,默认为 False;表示 Y_df
是否均衡,如果 Y_df
是均衡的,设置为 True 可以加快速度。
id_col
:字符串,默认为 ‘unique_id’;标识每个序列的列。
time_col
:字符串,默认为 ‘ds’;标识每个时间步的列,其值可以是时间戳或整数。
target_col
:字符串,默认为 ‘y’;包含目标的列。
返回值
Y_tilde_df
:DataFrame,包含协调后的预测结果。*
源
bootstrap_reconcile
*基于 Bootstrap 的层次协调方法。
基于不同的随机种子,对 reconcilers
列表中实例化的不同协调技术重复应用 reconcile
方法 N 次。
参数
Y_hat_df
:DataFrame,包含 [‘unique_id’, ‘ds’] 列和待协调模型的原始预测。
Y_df
:DataFrame,包含 ['unique_id', 'ds', 'y']
列的基础时间序列训练集。
如果 self.reconciles
的某个类接收 y_hat_insample
,则 Y_df
必须将其作为列包含进来。
S
:大小为 (base, bottom) 的求和矩阵 DataFrame,参见[聚合方法](https://nixtla.github.io/hierarchicalforecast/utils.html#aggregate)。
tags
:每个键表示一个级别,其值包含与该级别相关的标签。
level
:正浮点数列表 [0,100),用于预测区间的置信水平。
intervals_method
:字符串,用于计算预测区间的方法,可选值为 normality
、bootstrap
、permbu
之一。
num_samples
:整数,-1 表示不返回样本;如果为正,则返回指定数量的概率相干样本。 num_seeds
:整数,默认为 1;numpy 生成器的随机种子,用于重现性。
id_col
:字符串,默认为 ‘unique_id’;标识每个序列的列。
time_col
:字符串,默认为 ‘ds’;标识每个时间步的列,其值可以是时间戳或整数。
target_col
:字符串,默认为 ‘y’;包含目标的列。
返回值
Y_bootstrap_df
:DataFrame,包含基于 Bootstrap 的协调后预测结果。*