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

Use sktime.registry.all_estimators and sktime.registry.all_tags for dynamic search and tag-based listing of forecasters.



Base forecaster template class.

ForecastingHorizon(values, list, …[, 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.


Reduction forecasters that use sklearn regressors or sktime 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.

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.

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, start_q, …)

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 [R995275cbd543-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.

UpdateRefitsEvery(forecaster[, …])

Refits periodically when update is called.

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, …)

Cutoff window splitter.

SingleWindowSplitter(fh, list, …)

Single window splitter.

SlidingWindowSplitter(fh, list, …)

Sliding window splitter.

ExpandingWindowSplitter(fh, list, …)

Expanding window splitter.

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

Split arrays or matrices into sequential train and test subsets.