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
.
A full table with tag based search is also available on the Estimator Search Page (select “forecaster” in the “Estimator type” dropdown).
Base#
Base forecaster template class. |
|
|
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 for selecting among different models. |
|
Forecaster that forecasts exogeneous data for use in an endogeneous forecast. |
|
Forecast by instance or panel. |
|
Compositor that utilizes varying forecasters based on inferred category. |
|
Permutation compositor for permuting forecasting pipeline steps. |
|
Aggregates hierarchical data, fit forecasters and make predictions. |
|
Compositor that utilizes varying forecasters by time series data's nature. |
|
Uses different parameters by forecasting horizon element. |
|
Compositor for ignoring exogenous variables. |
|
Forecaster that sequentially tries a list of forecasting models. |
Reduction#
Reduction forecasters that use sklearn
regressors or sktime
time series regressors to make forecasts.
Concurrent tabular strategy#
Uses exogeneous data at the same time stamp - simple reduction strategy.
|
Simple reduction predicting endogeneous from concurrent exogeneous variables. |
Direct and recursive - sktime
native 1st generation#
1st generation direct and recursive reduction forecasters, numpy
based.
Different strategies can be constructed via make_reduction
for easy specification.
|
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. |
Direct and recursive - sktime
native 2nd generation#
2nd generation rearchitecture of direct and recursive reduction forecasters,
pandas
based.
|
Direct reduction forecaster, incl single-output, multi-output, exogeneous Dir. |
Direct and recursive - 3rd party#
|
Adapter for |
|
Darts Regression Model Estimator. |
|
Darts LinearRegression Estimator. |
|
Darts XGBModel Estimator. |
Naive forecasters#
|
Forecast based on naive assumptions about past trends continuing. |
|
Forecaster that plays back known or prescribed values as forecasts. |
Prediction intervals#
Wrappers that add prediction intervals to any forecaster.
|
Compute the prediction variance based on a separate forecaster. |
|
Compute the prediction variance based on a naive strategy. |
|
Empirical and conformal prediction intervals. |
|
Forecast a time series by aggregating forecasts from its bootstraps. |
|
Ensemble Bootstrap Prediction Interval Forecaster. |
Trend forecasters#
|
Trend based forecasts of time series data, regressing values on index. |
|
Forecast time series data with a polynomial trend. |
|
Implements STLForecaster based on statsmodels.tsa.seasonal.STL implementation. |
|
The CurveFitForecaster takes a function and fits it by using scipy curve_fit. |
Forecast time series data with a piecewise linear trend, fitted via prophet. |
|
StatsForecast Multiple Seasonal-Trend decomposition using LOESS model. |
Exponential smoothing based forecasters#
|
Holt-Winters exponential smoothing forecaster. |
|
ETS models with both manual and automatic fitting capabilities. |
|
StatsForecast Automatic Exponential Smoothing model. |
|
StatsForecast Complex Exponential Smoothing model. |
|
Theta method for forecasting. |
|
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#
|
Autoregressive AR-X(p) model. |
|
(S)ARIMA(X) forecaster, from pmdarima package. |
|
(S)ARIMA(X) forecaster, from statsmodels, tsa.arima module. |
|
(S)ARIMA(X) forecaster, from statsmodels, tsa.statespace module. |
|
VAR model from statsmodels. |
|
A flexible VAR-like forecaster that combines tabularization with regression. |
|
VARMAX forecasting model from statsmodels. |
Auto-ARIMA models#
|
Auto-(S)ARIMA(X) forecaster, from pmdarima package. |
|
StatsForecast AutoARIMA estimator. |
ARCH models#
|
StatsForecast ARCH estimator. |
|
StatsForecast GARCH estimator. |
|
Directly interfaces ARCH models from python package arch. |
Structural time series models#
|
Autoregressive Distributed Lag (ARDL) Model. |
|
BATS forecaster for time series with multiple seasonality. |
|
TBATS forecaster for time series with multiple seasonality. |
|
StatsForecast TBATS model. |
|
Prophet forecaster by wrapping Facebook's prophet algorithm [R995275cbd543-1]. |
|
Univariate prophetverse forecaster - prophet model implemented in numpyro. |
|
A Bayesian hierarchical time series forecasting model based on Meta's Prophet. |
|
UnobservedComponents forecasting model from statsmodels. |
|
Dynamic Factor Forecaster. |
Deep learning based forecasters#
|
LTSF-Linear Forecaster. |
|
LTSF-DLinear Forecaster. |
|
LTSF-NLinear Forecaster. |
|
LTSF-Transformer Forecaster. |
|
Conditional Invertible Neural Network (cINN) Forecaster. |
|
NeuralForecast RNN model. |
|
NeuralForecast LSTM model. |
|
pytorch-forecasting Temporal Fusion Transformer model. |
|
pytorch-forecasting DeepAR model. |
|
pytorch-forecasting NHiTS model. |
|
pytorch-forecasting NBeats model. |
|
PyKANForecaster uses Kolmogorov Arnold Network [1] to forecast time series data. |
Pre-trained and foundation models#
|
Forecaster that uses a huggingface model for forecasting. |
|
Interface to the Chronos Zero-Shot Forecaster by Amazon Research. |
|
Adapter for using MOIRAI Forecasters. |
|
Implementation of TimesFM (Time Series Foundation Model) for Zero-Shot Forecasting. |
|
TinyTimeMixer Forecaster for Zero-Shot Forecasting of Multivariate Time Series. |
Intermittent time series forecasters#
|
Croston's method for forecasting intermittent time series. |
Ensembles and stacking#
|
Ensemble of forecasters. |
|
Automatically find best weights for the ensembled forecasters. |
|
StackingForecaster. |
Hierarchical reconciliation#
|
Hierarchical reconciliation forecaster. |
Online and stream forecasting#
|
Online Updating Ensemble of forecasters. |
|
Parameter free hedging algorithm. |
|
Ensemble forecasts with Non-negative least squares based weighting. |
|
Update only periodically when update is called. |
|
Refits periodically when update is called. |
|
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.
|
Adapter for using |
Model selection and tuning#
|
Perform grid-search cross-validation to find optimal model parameters. |
|
Perform randomized-search cross-validation to find optimal model parameters. |
|
Bayesian search over hyperparameters for a forecaster. |
|
Perform Optuna search cross-validation to find optimal model hyperparameters. |
Model Evaluation (Backtesting)#
|
Evaluate forecaster using timeseries cross-validation. |
Time index splitters#
Evaluation and tuning can be customized using time index based splitters, for a list of these consult the splitter API