Forecaster
HierarchicalProphet
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 ])