StatsForecast oferece uma coleção de modelos de previsão de séries temporais univariadas amplamente utilizados, incluindo modelagem automática ARIMA
, ETS
, CES
e Theta
otimizada para alto desempenho usando numba
. Também inclui uma grande bateria de modelos de benchmarking.
Você pode instalar StatsForecast
com:
pip install statsforecast
ou
conda install - c conda - forge statsforecast
Visite nosso Guia de instalação para obter mais instruções.
Exemplo Mínimo
from statsforecast import StatsForecast
from statsforecast . models import AutoARIMA
from statsforecast . utils import AirPassengersDF
df = AirPassengersDF
sf = StatsForecast (
models = [ AutoARIMA ( season_length = 12 )],
freq = 'ME' ,
)
sf . fit ( df )
sf . predict ( h = 12 , level = [ 95 ])
Comece com este guia rápido.
Siga este passo a passo completo para obter as melhores práticas.
As alternativas atuais do Python para modelos estatísticos são lentas, imprecisas e não se adaptam bem. Por isso criamos uma biblioteca que pode ser usada para fazer previsões em ambientes de produção ou como benchmarks. StatsForecast
inclui uma extensa bateria de modelos que podem ajustar com eficiência milhões de séries temporais.
AutoARIMA
, AutoETS
, AutoCES
, MSTL
e Theta
em Python..fit
e .predict
. exogenous variables
e prediction intervals
para ARIMA.pmdarima
.R
.Prophet
.statsmodels
.numba
.Faltando alguma coisa? Por favor, abra um problema ou escreva-nos
Passo a passo de ponta a ponta: treinamento, avaliação e seleção de modelo para várias séries temporais
? Detecção de anomalias: detecte anomalias para séries temporais usando intervalos de previsão na amostra.
?? Validação Cruzada: avaliação de desempenho de modelos robustos.
❄️ Múltiplas sazonalidades: como prever dados com múltiplas sazonalidades usando um MSTL.
? Prever picos de demanda: previsão de carga elétrica para detectar picos diários e reduzir contas de energia elétrica.
? Demanda Intermitente: séries de previsão com muito poucas observações diferentes de zero.
?️ Regressores Exógenos: como clima ou preços
As ferramentas de previsão automática procuram os melhores parâmetros e selecionam o melhor modelo possível para um grupo de séries temporais. Essas ferramentas são úteis para grandes coleções de séries temporais univariadas.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoETS | ✅ | ✅ | ✅ | ✅ | |
AutoCES | ✅ | ✅ | ✅ | ✅ | |
AutoTheta | ✅ | ✅ | ✅ | ✅ | |
AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoTBATS | ✅ | ✅ | ✅ | ✅ |
Esses modelos exploram as autocorrelações existentes nas séries temporais.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoRegressivo | ✅ | ✅ | ✅ | ✅ | ✅ |
Ajustar duas linhas teta a uma série temporal dessazonalizada, utilizando diferentes técnicas para obter e combinar as duas linhas teta para produzir as previsões finais.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
Teta | ✅ | ✅ | ✅ | ✅ | |
Theta Otimizado | ✅ | ✅ | ✅ | ✅ | |
DinâmicoTheta | ✅ | ✅ | ✅ | ✅ | |
DinâmicoOptimizadoTheta | ✅ | ✅ | ✅ | ✅ |
Adequado para sinais com mais de uma sazonalidade clara. Útil para dados de baixa frequência, como eletricidade e registros.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
MSTL | ✅ | ✅ | ✅ | ✅ | Se a previsão de tendências suportar |
MFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
TBATS | ✅ | ✅ | ✅ | ✅ |
Adequado para modelar séries temporais que apresentam volatilidade não constante ao longo do tempo. O modelo ARCH é um caso particular do GARCH.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
GARCH | ✅ | ✅ | ✅ | ✅ | |
ARCO | ✅ | ✅ | ✅ | ✅ |
Modelos clássicos para estabelecimento de linha de base.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
Média Histórica | ✅ | ✅ | ✅ | ✅ | |
Ingênuo | ✅ | ✅ | ✅ | ✅ | |
RandomWalkWithDrift | ✅ | ✅ | ✅ | ✅ | |
SazonalNaive | ✅ | ✅ | ✅ | ✅ | |
Janela Média | ✅ | ||||
Janela SazonalMédia | ✅ |
Usa uma média ponderada de todas as observações passadas, onde os pesos diminuem exponencialmente no passado. Adequado para dados com tendência e/ou sazonalidade claras. Use a família SimpleExponential
para dados sem tendência ou sazonalidade clara.
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
Suavização Exponencial Simples | ✅ | ||||
SimpleExponentialSmoothingOptimizado | ✅ | ||||
Suavização Exponencial Sazonal | ✅ | ||||
SazonalExponentialSuavizaçãoOtimizado | ✅ | ||||
Holt | ✅ | ✅ | ✅ | ✅ | |
Holt Invernos | ✅ | ✅ | ✅ | ✅ |
Adequado para séries com muito poucas observações diferentes de zero
Modelo | Previsão de Ponto | Previsão Probabilística | Valores ajustados na amostra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
ADIDA | ✅ | ✅ | ✅ | ||
Croston Clássico | ✅ | ✅ | ✅ | ||
CrostonOtimizado | ✅ | ✅ | ✅ | ||
Croston SBA | ✅ | ✅ | ✅ | ||
IMAPA | ✅ | ✅ | ✅ | ||
TSB | ✅ | ✅ | ✅ |
Consulte CONTRIBUTING.md.
@misc { garza2022statsforecast ,
author = { Azul Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares } ,
title = { {StatsForecast}: Lightning fast forecasting with statistical and econometric models } ,
year = { 2022 } ,
howpublished = { {PyCon} Salt Lake City, Utah, US 2022 } ,
url = { https://github.com/Nixtla/statsforecast }
}
Os agradecimentos vão para essas pessoas maravilhosas (chave emoji):
azul ? | Jose Morales ? | Sugato Ray | Jeff Taques ? | darinkista ? | Alec Helyar | David Hirschfeld |
Mergenthaler | Parente | Yasslight90 ? | asinig ? | Philip Gillißen | Sebastian Hagn ? | Han Wang |
Ben Jeffrey ? | Beliavsky | Mariana Menchero Garcia | Nikhil Gupta ? | JD ? | Josh Atenberg | Jeroen Peter Bos |
Jeroen Van Der Donckt | Roymprog | Nelson Cárdenas Bolaño | Kyle Schmaus | Akmal Soliev | Nick para | Kevin Kho |
Yiben Huang | André Gross | taniishkaa | Manuel Calzolari |
Este projeto segue a especificação de todos os contribuidores. Contribuições de qualquer tipo são bem-vindas!