Back to models
Forecaster

HierarchicalProphet

Categorical in XInsamplePred intPred int insampleExogenous

A Bayesian hierarchical time series forecasting model based on Meta’s Prophet.

Quickstart

python
from sktime.forecasting.prophetverse import HierarchicalProphet

estimator = HierarchicalProphet(trend='linear', feature_transformer=None, exogenous_effects=None, default_effect=None, shared_features=None, noise_scale=0.05, correlation_matrix_concentration=1.0, rng_key=None, inference_engine=None, likelihood=None)

Parameters(21)

trendUnion[str, BaseEffect], optional, default=”linear”
Type of trend to use. Can also be a custom effect object.
changepoint_intervalint, optional, default=25
Number of potential changepoints to sample in the history.
changepoint_rangeUnion[float, int], optional, default=0.8

Proportion of the history in which trend changepoints will be estimated.

  • If float, must be between 0 and 1 (inclusive). The range will be that proportion of the training history.

  • If int, can be positive or negative. Absolute value must be less than the number of training points. The range will be that number of points. A negative int indicates the number of points counting from the end of the history, a positive int from the beginning.

changepoint_prior_scalefloat, optional, default=0.001
Regularization parameter controlling the flexibility of the automatic changepoint selection.
offset_prior_scalefloat, optional, default=0.1
Scale parameter for the prior distribution of the offset. The offset is the constant term in the piecewise trend equation.
capacity_prior_scalefloat, optional, default=0.2
Scale parameter for the prior distribution of the capacity.
capacity_prior_locfloat, optional, default=1.1
Location parameter for the prior distribution of the capacity.
feature_transformerBaseTransformer or None, optional, default=None
A transformer to preprocess the exogenous features.
exogenous_effectslist of AbstractEffect or None, optional, default=None
A list defining the exogenous effects to be used in the model.
default_effectAbstractEffect or None, optional, default=None
The default effect to be used when no effect is specified for a variable.
shared_featureslist, optional, default=[]
List of features shared across all series in the hierarchy.
mcmc_samplesint, optional, default=2000
Number of MCMC samples to draw.
mcmc_warmupint, optional, default=200
Number of warmup steps for MCMC.
mcmc_chainsint, optional, default=4
Number of MCMC chains.
inference_methodstr, optional, default=’map’
Inference method to use. Either “map” or “mcmc”.
optimizer_namestr, optional, default=’Adam’
Name of the optimizer to use.
optimizer_kwargsdict or None, optional, default={‘step_size’: 1e-4}
Additional keyword arguments for the optimizer.
optimizer_stepsint, optional, default=100_000
Number of optimization steps.
noise_scalefloat, optional, default=0.05
Scale parameter for the noise.
correlation_matrix_concentrationfloat, optional, default=1.0
Concentration parameter for the correlation matrix.
rng_keyjax.random.PRNGKey or None, optional, default=None
Random number generator key.

Examples

>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.transformations.hierarchical.aggregate import Aggregator
>>> from sktime.utils._testing.hierarchical import _bottom_hier_datagen
>>> from sktime.forecasting.prophetverse import HierarchicalProphet
>>> agg = Aggregator ()
>>> y = _bottom_hier_datagen (
... no_bottom_nodes = 3,
... no_levels = 1,
... random_seed = 123,
... length = 7,
... )
>>> y = agg. fit_transform (y)
>>> forecaster = HierarchicalProphet ()
>>> forecaster. fit (y)
>>> forecaster. predict (fh = [1 ])