# Skforecast > Python library that simplifies time series forecasting using machine learning. Works with any scikit-learn compatible estimator (LightGBM, XGBoost, CatBoost, Keras, etc.). Version 0.21.0+. Python 3.10-3.14. BSD-3-Clause. - [Documentation](https://skforecast.org/latest/): Full documentation site - [PyPI](https://pypi.org/project/skforecast/): pip install skforecast - [Repository](https://github.com/skforecast/skforecast): Source code on GitHub - [Quick start](https://skforecast.org/latest/quick-start/quick-start-skforecast.html): Step-by-step introduction to get started - [Full LLM context](https://skforecast.org/latest/llms-full.txt): Complete API reference, workflows, and examples for LLMs Skforecast supports recursive and direct multi-step forecasting strategies, global models for multiple series, statistical models (ARIMA, ETS, SARIMAX), deep learning (RNN/LSTM), probabilistic forecasting with prediction intervals, and hyperparameter tuning with backtesting. It works with any scikit-learn compatible regressor. Install with `pip install skforecast`. ## Core Forecasters - [ForecasterRecursive](https://skforecast.org/latest/api/ForecasterRecursive.html): Single series, recursive multi-step forecasting using autoregressive lags - [ForecasterDirect](https://skforecast.org/latest/api/ForecasterDirect.html): Single series, direct multi-step forecasting with one model per step - [ForecasterRecursiveMultiSeries](https://skforecast.org/latest/api/ForecasterRecursiveMultiSeries.html): Multiple series forecasting with a single global model - [ForecasterDirectMultiVariate](https://skforecast.org/latest/api/ForecasterDirectMultiVariate.html): Multivariate forecasting using multiple series as input features - [ForecasterRnn](https://skforecast.org/latest/api/ForecasterRnn.html): Deep learning forecasting with RNN/LSTM architectures - [ForecasterStats](https://skforecast.org/latest/api/ForecasterStats.html): Statistical models (ARIMA, SARIMAX, ETS, ARAR) with sklearn-compatible interface - [ForecasterRecursiveClassifier](https://skforecast.org/latest/api/ForecasterRecursiveClassifier.html): Classification-based forecasting for categorical time series - [ForecasterEquivalentDate](https://skforecast.org/latest/api/ForecasterEquivalentDate.html): Baseline forecaster using equivalent past dates ## User Guides - [Recursive multi-step forecasting](https://skforecast.org/latest/user_guides/autoregressive-forecaster.html): Complete guide to single series forecasting with ForecasterRecursive - [Direct multi-step forecasting](https://skforecast.org/latest/user_guides/direct-multi-step-forecasting.html): Direct strategy with one model per forecast step - [Multi-series forecasting](https://skforecast.org/latest/user_guides/independent-multi-time-series-forecasting.html): Global model for multiple time series simultaneously - [Series with different lengths and exog](https://skforecast.org/latest/user_guides/multi-series-with-different-length-and-different_exog.html): Handling series with varying lengths and different exogenous variables - [Multivariate forecasting](https://skforecast.org/latest/user_guides/dependent-multi-series-multivariate-forecasting.html): Using multiple series as input features for dependent forecasting - [Backtesting](https://skforecast.org/latest/user_guides/backtesting.html): Time series cross-validation with TimeSeriesFold and OneStepAheadFold - [Hyperparameter tuning](https://skforecast.org/latest/user_guides/hyperparameter-tuning-and-lags-selection.html): Grid, random, and Bayesian search for model optimization - [Exogenous variables](https://skforecast.org/latest/user_guides/exogenous-variables.html): Adding external features to forecasting models - [Window and custom features](https://skforecast.org/latest/user_guides/window-features-and-custom-features.html): Rolling statistics and custom feature engineering - [Calendar features](https://skforecast.org/latest/user_guides/calendar-features.html): Date and time-based features with DateTimeFeatureTransformer - [Categorical features](https://skforecast.org/latest/user_guides/categorical-features.html): Native categorical support with LightGBM, XGBoost, CatBoost - [Classification forecasting](https://skforecast.org/latest/user_guides/autoregressive-classification-forecasting.html): Classification-based forecasting for categorical time series - [Data transformation](https://skforecast.org/latest/user_guides/sklearn-transformers-and-pipeline.html): Sklearn transformers and pipelines for preprocessing - [Feature selection](https://skforecast.org/latest/user_guides/feature-selection.html): Selecting relevant lags, window features, and exogenous variables ## Statistical Models - [ForecasterStats overview](https://skforecast.org/latest/user_guides/forecasting-statistical-models.html): Wrapper for statistical models with sklearn-compatible interface - [ARIMA and SARIMAX](https://skforecast.org/latest/user_guides/forecasting-sarimax-arima.html): ARIMA, Auto-ARIMA, and SARIMAX with exogenous variables - [ETS](https://skforecast.org/latest/user_guides/forecasting-ets.html): Exponential Smoothing models (Additive, Multiplicative, Auto) - [ARAR](https://skforecast.org/latest/user_guides/forecasting-arar.html): Autoregressive AR with memory shortening ## Probabilistic Forecasting - [Overview](https://skforecast.org/latest/user_guides/probabilistic-forecasting-overview.html): Introduction to prediction intervals and probabilistic methods - [Bootstrapped residuals](https://skforecast.org/latest/user_guides/probabilistic-forecasting-bootstrapped-residuals.html): Prediction intervals via bootstrap resampling of residuals - [Conformal prediction](https://skforecast.org/latest/user_guides/probabilistic-forecasting-conformal-prediction.html): Distribution-free prediction intervals with guaranteed coverage - [Conformal calibration](https://skforecast.org/latest/user_guides/probabilistic-forecasting-conformal-calibration.html): Calibrating intervals with ConformalIntervalCalibrator - [Quantile regression](https://skforecast.org/latest/user_guides/probabilistic-forecasting-quantile-regression.html): Direct quantile estimation for prediction intervals - [Global models](https://skforecast.org/latest/user_guides/probabilistic-forecasting-global-models.html): Prediction intervals for multi-series forecasters - [Probabilistic metrics](https://skforecast.org/latest/user_guides/probabilistic-forecasting-metrics.html): CRPS, pinball loss, coverage metrics for interval evaluation ## Deep Learning - [RNN/LSTM forecasting](https://skforecast.org/latest/user_guides/forecasting-with-deep-learning-rnn-lstm.html): Recurrent neural networks for time series with Keras ## Model Evaluation - [Metrics](https://skforecast.org/latest/user_guides/metrics.html): MAE, MASE, RMSSE, sMAPE, CRPS, and custom metrics - [Explainability](https://skforecast.org/latest/user_guides/explainability.html): SHAP values and feature importance for forecasting models - [Drift detection](https://skforecast.org/latest/user_guides/drift-detection.html): RangeDriftDetector and PopulationDriftDetector for monitoring ## FAQ - [Missing values](https://skforecast.org/latest/faq/forecasting-time-series-with-missing-values.html): Forecasting time series with missing values - [Negative predictions](https://skforecast.org/latest/faq/non-negative-predictions.html): Avoiding negative predictions when forecasting - [Delayed historical data](https://skforecast.org/latest/faq/forecasting-with-delayed-historical-data.html): Forecasting when recent data is not yet available - [Backtesting vs One-step-ahead](https://skforecast.org/latest/faq/parameters-search-backtesting-vs-one-step-ahead.html): Choosing between backtesting and one-step-ahead validation ## Deployment - [Save and load forecaster](https://skforecast.org/latest/user_guides/save-load-forecaster.html): Serialization with joblib and pickle - [Forecaster in production](https://skforecast.org/latest/user_guides/forecaster-in-production.html): Deployment patterns and retraining strategies - [Skforecast Studio](https://skforecast.org/latest/skforecast-studio/skforecast-studio.html): Interactive application for time series forecasting ## API Reference - [model_selection](https://skforecast.org/latest/api/model_selection.html): backtesting_forecaster, grid/random/bayesian search, TimeSeriesFold, OneStepAheadFold - [preprocessing](https://skforecast.org/latest/api/preprocessing.html): RollingFeatures, TimeSeriesDifferentiator, DateTimeFeatureTransformer, QuantileBinner - [feature_selection](https://skforecast.org/latest/api/feature_selection.html): select_features, select_features_multiseries - [stats](https://skforecast.org/latest/api/stats.html): Arima, Sarimax, Ets, Arar model classes - [drift_detection](https://skforecast.org/latest/api/drift_detection.html): RangeDriftDetector, PopulationDriftDetector - [metrics](https://skforecast.org/latest/api/metrics.html): MASE, RMSSE, sMAPE, CRPS, pinball loss, coverage - [datasets](https://skforecast.org/latest/api/datasets.html): fetch_dataset, load_demo_dataset with 30+ built-in datasets - [utils](https://skforecast.org/latest/api/utils.html): Utility functions for validation and transformation - [plot](https://skforecast.org/latest/api/plot.html): Plotting utilities for forecasts and diagnostics ## Optional - [Input data formats](https://skforecast.org/latest/user_guides/input-data.html): Accepted data formats (wide, long, dict) for series and exog - [Differentiation](https://skforecast.org/latest/user_guides/time-series-differentiation.html): Making non-stationary series stationary with TimeSeriesDifferentiator - [Weighted forecasting](https://skforecast.org/latest/user_guides/weighted-time-series-forecasting.html): Assigning weights to recent vs older observations - [Stacking ensemble](https://skforecast.org/latest/user_guides/stacking-ensemble-models-forecasting.html): Combining multiple models with stacking - [XGBoost and LightGBM](https://skforecast.org/latest/user_guides/forecasting-xgboost-lightgbm.html): Specific tips for gradient boosting frameworks - [GPU usage](https://skforecast.org/latest/user_guides/skforecast-in-GPU.html): Running skforecast on GPU with RAPIDS and CUDA - [Plotting](https://skforecast.org/latest/user_guides/plotting.html): Visualization functions for time series and forecasts - [Datasets catalog](https://skforecast.org/latest/user_guides/datasets.html): 30+ built-in datasets with descriptions and frequencies - [Training matrices](https://skforecast.org/latest/user_guides/training-and-prediction-matrices.html): Inspecting the internal feature matrices used by forecasters - [Forecasting baseline](https://skforecast.org/latest/user_guides/forecasting-baseline.html): Simple baseline models for comparison - [Sktime pipelines](https://skforecast.org/latest/user_guides/sktime-pipelines.html): Integration with sktime transformers - [Cyclical features](https://skforecast.org/latest/faq/cyclical-features-time-series.html): Encoding cyclical features in time series - [Time series aggregation](https://skforecast.org/latest/faq/time-series-aggregation.html): Aggregating time series to different frequencies - [Parallelization](https://skforecast.org/latest/faq/parallelization-skforecast.html): Parallel execution and performance optimization - [Intro to forecasting](https://skforecast.org/latest/introduction-forecasting/introduction-forecasting.html): Conceptual introduction to time series forecasting - [Forecaster parameters](https://skforecast.org/latest/quick-start/forecaster-parameters.html): Reference for all forecaster configuration parameters - [Examples and tutorials](https://skforecast.org/latest/examples/examples_english.html): External tutorials with real-world datasets - [Migration guide](https://skforecast.org/latest/user_guides/migration-guide.html): Upgrading from previous skforecast versions - [Release notes](https://skforecast.org/latest/releases/releases.html): Full changelog for all versions