The aeon.forecasting module contains algorithms and composition tools for forecasting.

All clusterers in aeon``can be listed using the ``aeon.registry.all_estimators utility, using estimator_types="forecaster", optionally filtered by tags. Valid tags can be listed using aeon.registry.all_tags.



Base forecaster template class.

ForecastingHorizon(values, is_relative[, freq])

Forecasting horizon.

Pipeline composition

Compositors for building forecasting pipelines. Pipelines can also be constructed using *, +, and | dunders.


Create a pipeline from estimators of any type.


Meta-estimator for forecasting transformed time series.


Pipeline for forecasting with exogenous data.


Forecast each series with separate forecaster.

MultiplexForecaster(forecasters[, ...])

MultiplexForecaster for selecting among different models.

ForecastX(forecaster_y, forecaster_X[, ...])

Forecaster that forecasts exogeneous data for use in an endogeneous forecast.

ForecastByLevel(forecaster[, groupby])

Forecast by instance or panel.

Permute(estimator[, permutation, steps_arg])

Permutation compositor for permuting forecasting pipeline steps.

HierarchyEnsembleForecaster(forecasters[, ...])

Aggregates hierarchical data, fit forecasters and make predictions.


Reduction forecasters that use sklearn regressors or aeon time series regressors to make forecasts. Use make_reduction for easy specification.

make_reduction(estimator[, strategy, ...])

Make forecaster based on reduction to tabular or time-series regression.


Direct reduction from forecasting to tabular regression.


Direct reduction from forecasting to time-series regression.


Multioutput reduction from forecasting to tabular regression.


Multioutput reduction from forecasting to time series regression.


Recursive reduction from forecasting to tabular regression.


Recursive reduction from forecasting to time series regression.


Dir-rec reduction from forecasting to tabular regression.


Dir-rec reduction from forecasting to time-series regression.

Naive forecaster

NaiveForecaster([strategy, window_length, sp])

Forecast based on naive assumptions about past trends continuing.

Prediction intervals

Wrappers that add prediction intervals to any forecaster.

SquaringResiduals([forecaster, ...])

Compute the prediction variance based on a separate forecaster.

NaiveVariance(forecaster[, initial_window, ...])

Compute the prediction variance based on a naive strategy.

ConformalIntervals(forecaster[, method, ...])

Empirical and conformal prediction intervals.

BaggingForecaster([bootstrap_transformer, ...])

Forecast a time series by aggregating forecasts from its bootstraps.

Trend forecasters


Trend based forecasts of time series data, regressing values on index.

PolynomialTrendForecaster([regressor, ...])

Forecast time series data with a polynomial trend.

STLForecaster([sp, seasonal, trend, ...])

Implements STLForecaster based on statsmodels.tsa.seasonal.STL implementation.

Exponential smoothing based forecasters

ExponentialSmoothing([trend, damped_trend, ...])

Holt-Winters exponential smoothing forecaster.

AutoETS([error, trend, damped_trend, ...])

ETS models with both manual and automatic fitting capabilities.

ThetaForecaster([initial_level, ...])

Theta method for forecasting.


Croston's method for forecasting intermittent time series.

AR/MA type forecasters

Forecasters with AR or MA component. All “ARIMA” models below include SARIMAX capability.

AutoARIMA([start_p, d, start_q, max_p, ...])

Wrapper of the pmdarima implementation of fitting Auto-(S)ARIMA(X) models.

ARIMA([order, seasonal_order, start_params, ...])

Wrapper of the pmdarima implementation of fitting (S)ARIMA(X) models.

StatsForecastAutoARIMA([start_p, d, ...])

StatsForecast AutoARIMA estimator.

SARIMAX([order, seasonal_order, trend, ...])

SARIMAX forecaster.

VAR([maxlags, method, verbose, trend, ...])

A VAR model is a generalisation of the univariate autoregressive.

VARMAX([order, trend, error_cov_type, ...])

Wrapper for statsmodels VARMAX model.

Structural time series models

BATS([use_box_cox, box_cox_bounds, ...])

BATS forecaster for time series with multiple seasonality.

TBATS([use_box_cox, box_cox_bounds, ...])

TBATS forecaster for time series with multiple seasonality.

Prophet([freq, add_seasonality, ...])

Prophet forecaster by wrapping Facebook's prophet algorithm [R6cb662d17ac0-1].

UnobservedComponents([level, trend, ...])

Wrapper class of the UnobservedComponents model from statsmodels.

DynamicFactor([k_factors, factor_order, ...])

Dynamic Factor Foracster.

Ensembles and stacking

EnsembleForecaster(forecasters[, n_jobs, ...])

Ensemble of forecasters.

AutoEnsembleForecaster(forecasters[, ...])

Automatically find best weights for the ensembled forecasters.

StackingForecaster(forecasters[, regressor, ...])


Hierarchical reconciliation

ReconcilerForecaster(forecaster[, method])

Hierarchical reconcilation forecaster.

Online and stream forecasting

OnlineEnsembleForecaster(forecasters[, ...])

Online Updating Ensemble of forecasters.

NormalHedgeEnsemble([n_estimators, a, loss_func])

Parameter free hedging algorithm.

NNLSEnsemble([n_estimators, loss_func])

Ensemble forecasts with Non-negative least squares based weighting.

UpdateEvery(forecaster[, update_interval])

Update only periodically when update is called.

UpdateRefitsEvery(forecaster[, ...])

Refits periodically when update is called.


Turns off updates, i.e., ensures that forecaster is only fit and never updated.

Model selection and tuning

ForecastingGridSearchCV(forecaster, cv, ...)

Perform grid-search cross-validation to find optimal model parameters.

ForecastingRandomizedSearchCV(forecaster, ...)

Perform randomized-search cross-validation to find optimal model parameters.

Model Evaluation (Backtesting)

evaluate(forecaster, cv, y[, X, strategy, ...])

Evaluate forecaster using timeseries cross-validation.

Time series splitters

Time series splitters can be used in both evaluation and tuning.

CutoffSplitter(cutoffs[, fh, window_length])

Cutoff window splitter.

SingleWindowSplitter(fh[, window_length])

Single window splitter.

SlidingWindowSplitter([fh, window_length, ...])

Sliding window splitter.

ExpandingWindowSplitter([fh, ...])

Expanding window splitter.

temporal_train_test_split(y[, X, test_size, ...])

Split arrays or matrices into sequential train and test subsets.