Installation
You can installStatsForecast
with:
Quick Start
Minimal ExampleWhy?
Current Python alternatives for statistical models are slow, inaccurate and don’t scale well. So we created a library that can be used to forecast in production environments or as benchmarks.StatsForecast
includes an extensive battery of models that can efficiently fit
millions of time series.
Features
- Fastest and most accurate implementations of
AutoARIMA,AutoETS,AutoCES,MSTLandThetain Python. - Out-of-the-box compatibility with Spark, Dask, and Ray.
- Probabilistic Forecasting and Confidence Intervals.
- Support for exogenous Variables and static covariates.
- Anomaly Detection.
- Familiar sklearn syntax:
.fitand.predict.
Highlights
- Inclusion of
exogenous variablesandprediction intervalsfor ARIMA. - 20x
faster
than
pmdarima. - 1.5x faster than
R. - 500x faster than
Prophet. - 4x
faster
than
statsmodels. - Compiled to high performance machine code through
numba. - 1,000,000 series in 30 min with ray.
- Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments here.
- Fit 10 benchmark models on 1,000,000 series in under 5 min.
Examples and Guides
📚 End to End Walkthrough: Model training, evaluation and selection for multiple time series 🔎 Anomaly Detection: detect anomalies for time series using in-sample prediction intervals. 👩🔬 Cross Validation: robust model’s performance evaluation. ❄️ Multiple Seasonalities: how to forecast data with multiple seasonalities using an MSTL. 🔌 Predict Demand Peaks: electricity load forecasting for detecting daily peaks and reducing electric bills. 📈 Intermittent Demand: forecast series with very few non-zero observations. 🌡️ Exogenous Regressors: like weather or pricesModels
Automatic Forecasting
Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
| AutoETS | ✅ | ✅ | ✅ | ✅ | |
| AutoCES | ✅ | ✅ | ✅ | ✅ | |
| AutoTheta | ✅ | ✅ | ✅ | ✅ | |
| AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
| AutoTBATS | ✅ | ✅ | ✅ | ✅ |
ARIMA Family
These models exploit the existing autocorrelations in the time series.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
| AutoRegressive | ✅ | ✅ | ✅ | ✅ | ✅ |
Theta Family
Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| Theta | ✅ | ✅ | ✅ | ✅ | |
| OptimizedTheta | ✅ | ✅ | ✅ | ✅ | |
| DynamicTheta | ✅ | ✅ | ✅ | ✅ | |
| DynamicOptimizedTheta | ✅ | ✅ | ✅ | ✅ |
Multiple Seasonalities
Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| MSTL | ✅ | ✅ | ✅ | ✅ | If trend forecaster supports |
| MFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
| TBATS | ✅ | ✅ | ✅ | ✅ |
GARCH and ARCH Models
Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| GARCH | ✅ | ✅ | ✅ | ✅ | |
| ARCH | ✅ | ✅ | ✅ | ✅ |
Baseline Models
Classical models for establishing baseline.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| HistoricAverage | ✅ | ✅ | ✅ | ✅ | |
| Naive | ✅ | ✅ | ✅ | ✅ | |
| RandomWalkWithDrift | ✅ | ✅ | ✅ | ✅ | |
| SeasonalNaive | ✅ | ✅ | ✅ | ✅ | |
| WindowAverage | ✅ | ||||
| SeasonalWindowAverage | ✅ |
Exponential Smoothing
Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use theSimpleExponential family for data with no
clear trend or seasonality.
| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| SimpleExponentialSmoothing | ✅ | ||||
| SimpleExponentialSmoothingOptimized | ✅ | ||||
| SeasonalExponentialSmoothing | ✅ | ||||
| SeasonalExponentialSmoothingOptimized | ✅ | ||||
| Holt | ✅ | ✅ | ✅ | ✅ | |
| HoltWinters | ✅ | ✅ | ✅ | ✅ |
Sparse or Inttermitent
Suited for series with very few non-zero observations| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| ADIDA | ✅ | ✅ | ✅ | ||
| CrostonClassic | ✅ | ✅ | ✅ | ||
| CrostonOptimized | ✅ | ✅ | ✅ | ||
| CrostonSBA | ✅ | ✅ | ✅ | ||
| IMAPA | ✅ | ✅ | ✅ | ||
| TSB | ✅ | ✅ | ✅ |
Machine Learning
Leverage exogenous features.| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | Exogenous features |
|---|---|---|---|---|---|
| SklearnModel | ✅ | ✅ | ✅ | ✅ |

