Forecasting#

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

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

Base#

BaseForecaster()

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.

make_pipeline(*steps)

Create a pipeline from estimators of any type.

TransformedTargetForecaster(steps)

Meta-estimator for forecasting transformed time series.

ForecastingPipeline(steps)

Pipeline for forecasting with exogenous data.

ColumnEnsembleForecaster(forecasters)

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.

FhPlexForecaster(forecaster[, fh_params, ...])

Uses different parameters by forecasting horizon element.

Reduction#

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.

DirectTabularRegressionForecaster(estimator)

Direct reduction from forecasting to tabular regression.

DirectTimeSeriesRegressionForecaster(estimator)

Direct reduction from forecasting to time-series regression.

MultioutputTabularRegressionForecaster(estimator)

Multioutput reduction from forecasting to tabular regression.

MultioutputTimeSeriesRegressionForecaster(...)

Multioutput reduction from forecasting to time series regression.

RecursiveTabularRegressionForecaster(estimator)

Recursive reduction from forecasting to tabular regression.

RecursiveTimeSeriesRegressionForecaster(...)

Recursive reduction from forecasting to time series regression.

DirRecTabularRegressionForecaster(estimator)

Dir-rec reduction from forecasting to tabular regression.

DirRecTimeSeriesRegressionForecaster(estimator)

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

YfromX(estimator[, pooling])

Simple reduction predicting endogeneous from concurrent exogeneous variables.

Naive forecasters#

NaiveForecaster([strategy, window_length, sp])

Forecast based on naive assumptions about past trends continuing.

ForecastKnownValues(y_known[, method, ...])

Forecaster that plays back known or prescribed values as forecasts.

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#

TrendForecaster([regressor])

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.

CurveFitForecaster(function[, ...])

The CurveFitForecaster takes a function and fits it by using scipy curve_fit.

StatsForecastMSTL(season_length[, ...])

StatsForecast Multiple Seasonal-Trend decomposition using LOESS model.

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.

StatsForecastAutoETS([season_length, model, ...])

StatsForecast Automatic Exponential Smoothing model.

StatsForecastAutoCES([season_length, model])

StatsForecast Complex Exponential Smoothing model.

ThetaForecaster([initial_level, ...])

Theta method for forecasting.

StatsForecastAutoTheta([season_length, ...])

StatsForecast AutoTheta estimator.

AR/MA type forecasters#

Forecasters with AR or MA component.

All “ARIMA” and “Auto-ARIMA” models below include SARIMAX capability.

(V)AR(I)MAX models#

AutoREG([lags, trend, seasonal, hold_back, ...])

Autoregressive AR-X(p) model.

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

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

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.

Auto-ARIMA models#

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

StatsForecast AutoARIMA estimator.

ARCH models#

StatsForecastARCH([p])

StatsForecast ARCH estimator.

StatsForecastGARCH([p, q])

StatsForecast GARCH estimator.

ARCH([mean, lags, vol, p, o, q, power, ...])

Directly interfaces ARCH models from python package arch.

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 Forecaster.

Intermittent time series forecasters#

Croston([smoothing])

Croston's method for forecasting intermittent time series.

Ensembles and stacking#

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

Ensemble of forecasters.

AutoEnsembleForecaster(forecasters[, ...])

Automatically find best weights for the ensembled forecasters.

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

StackingForecaster.

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.

DontUpdate(forecaster)

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

Adapters to other forecasting framework packages#

Generic framework adapters that expose other frameworks in the sktime interface.

HCrystalBallAdapter(model)

Adapter for using hcrystalball forecasters in sktime.

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.

ForecastingSkoptSearchCV(forecaster, cv, ...)

Bayesian search over hyperparameters for a forecaster.

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.

ExpandingGreedySplitter(test_size[, folds, ...])

Splitter that successively cuts test folds off the end of the series.

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

Split time series data containers into a single train/test split.