Giter VIP home page Giter VIP logo

ivanildobatista / series-temporais Goto Github PK

View Code? Open in Web Editor NEW
69.0 3.0 32.0 29.71 MB

Projetos de modelagem e previsão de séries temporal em linguagem Python e linguagem R. Usarei vários modelos de bibliotecas e pacotes usados para tratamento, modelagem e previsão de séries temporais. Falarei um pouco sobre cada uma delas, gerarei a validação e as previsões e, por fim, realizarei a avaliação com a métricas pertinentes.

Jupyter Notebook 99.90% R 0.02% Python 0.07%
arima-model autots sarima sarimax var-model impact linear-regression prophet-facebook lstm modeltime modeltime-gluonts vecm gluonts atspy neuralprophet darts mann-kendall

series-temporais's Introduction

Projetos de séries temporais

Nesse repositório você encontrará projetos com os principais métodos de modelagem de séries temporais, como:

  1. Modelos suavização exponencial: Algoritmos de suavização simples, Holt, Holt-Winters e Pegels;
  2. Modelagem Univariada: Modelagem Box-Jenkins ou modelo ARIMA (Autorregressivo integrado com médias móveis);
  3. Modelagem Multivariada: Modelos VAR (Vetores Autorregressivos) e modelo VECM (Vetores com correção de erros);
  4. Redes neurais: Recorrentes (LSTM - Long short-term memory) e Convolucionais (Conv1D);
  5. Modelagem linear: Regressão linear, Ridge, Lasso, Elastic-Net, Stochastic Gradient Descent, etc;
  6. Biblioteca Facebook Prophet (para séries univaridas e multivariadas);
  7. Biblioteca Neural Prophet;
  8. Biblioteca Multi Prophet;
  9. Biblioteca PyAF;
  10. Auto Machine Learning para Séries Temporais (AutoTS, PyCaret e ATSpy);
  11. Biblioteca DARTS;
  12. Pacote Modeltime do R;
  13. Decomposição de séries temporais: Aplicação de métodos de decomposição sazonal, STL e de filtros de séries temporais;
  14. Análise de tendência em séries temporais com teste Mann Kendall;
  15. Biblioteca AutoPy;
  16. Biblioteca Pycaret - módulo de regressão para séries temporais.

Projetos

Projeto 1 - Impacto do coronavírus no Índice BOVESPA Análise do impacto causal da pandemia do coronavírus no índice da Bolsa de Valores do Brasil (IBOVESPA). Nessa análise utilizando a biblioteca causalimpact e utilizando uma contrafactual gerada por um modelo ARIMA, o relatório gerado apontou um queda de -35,92% no índice IBOVESPA por conta da intervenção na série causada pelo coronavírus;

Projeto 2 - Análise de tendência Aplicação do teste não-paramétrico Mann-Kendall para identificar tendência em séries temporais. Ao nível de confiança de 5%, o teste identificou uma tendência positiva para a série de vendas no varejo de lojas de cerveja, vinho e licores nos Estados Unidos.

Projeto 3 - Pycaret para Machine Learning

3.1) Aplicação do módulo de regressão da biblioteca Pycaret para previsão de séries temporais utilizando o fold_strategy='timeseries' do setup da biblioteca. Para esse projeto foram usadas as defasagens da série de preços diários das ações do Banco Bradesco (BBCD4.SA). O modelo gerou uma previsão que, comparada com os valores de validação, obtiveram métricas de erros próximas de zero e um (coeficiente de determinação) de 0.87.

3.2) Aplicação do módulo de séries temporais que foi implementado em Julho de 2020 para previsão de vendas no setor de varejo nos EUA. O melhor modelo foi o TBATS com um coeficiente de determinação () de 0.72.

Projeto 4 - AutoARIMA em Python Aplicação do AutoARIMA para previsão do consumo de energia elétrica. Com a bibioteca PMDARIMA automatizamos todo o processo de escolha de parâmetros e encontramos um modelo com menor AIC (Akaike Information Criteria). Os resíduos do modelo apresentaram-se normais pelo teste de normalidade Jarque-Bera.

Projeto 5 - AutoTS em Python Biblioteca AutoTS para previsão de séries temporais com os modelos Facebook Prophet, Vetores Autorregressivos, Modelos e Machine Learning e ARIMA. Para esse projeto, conforme as métricas abaixo, o melhor modelo para previsão de séries temporais de temperatura na cidade de Déhli, na Índia, foi o modelo Facebook Prophet

RMSE MAE MSE MSLE MedAE R-squared
Facebook Prophet 3.173 2.558 10.071 0.025 2.193 70.3%
SARIMAX 9.872 8.558 97.447 0.183 8.3 -7754.9%
Vetor Autorregressivo 10.477 8.99 109.766 0.2 9.219 -9522.3%
Machine Learning 11.747 10.357 137.99 0.253 11.693 -376.2%
ARIMA 12 10 133 0 12 -46300 %

Projeto 5 - Biblioteca ATSPy Biblioteca de Auto Time Series para previsão de séries temporais com uma variedade de modelos (ARIMA, HWAAS, HWAMS, TATS, TBAT, TBATS1, TBATP1 e TBATS2). O melhor modelo desse projeto foi o TBATP1 que obteve as melhores métricas de avaliação e abaixo pode-se observar o gráfico com a série original, a série treinada e as previsões.

image

Projeto 6 - Biblioteca DARTS para previsão de vendas em restaurantes Biblioteca para modelagem de séries temporais e permite o treinamento de diversos modelos. Além disso permite realizar o backtesting do modelo, o que torna a avaliação do modelo mais acurada. O melhor modelo para a previsão de vendas de restaurantes foi um de suavização exponencial com sazonalidade multiplicativa, tendência aditiva e uma sazonalidade de vinte e quatro períodos. Abaixo pode-se observar as previsões do modelo com e sem gridsearch.

image

Projeto 7 - Facebook Prophet Nesse projeto será usada a biblioteca Prophet Facebook para modelagem de duas séries temporais, mas que referem-se ao mesmo ativo (o preço do ouro, valores diários e mensais). Para a primeira série aplicamos o modelo e validamos os resultados com os últimos 150 dias e obtivemos um RMSE de 82.97; já com os dados mensais utilizamos os últimos 24 meses para validação do modelo e obtivemos um RMSE de 66.97.

Projeto 8 - Neural Prophet para modelagem de séries temporais Biblioteca similar ao Facebook Prophet, mas que utiliza em sua estrutura para modelagem a rede neural AR-Net. Nesse projeto foi modelado uma série de vendas de varejo mensais de cerveja, vinho e licores alcoólicos, que vai do ano de 1992 até o ano de 2020. Os últimos 24 meses da série foram separados para comparar o desempenho de previsão do modelo. Resultado : o modelo gerou previsões que foram estatisticamente semelhantes com a base de validação.

Projeto 7 - Aplicação de algoritmos de suavização exponencial para o preço de casas Apresentação e aplicação de algoritmos de suavização exponencial de séries temporais para modelagem e previsão de preços em casas em Londres. Foram utilizados os principais modelos e o modelo com melhor desempenho foi o Algoritmo de Suavização de Pegels aditivo com um erro médio absoluto (MAE) de 3981.576 e raiz quadrada a soma dos erros quadrados (RMSE) de 5261.611;

Projeto 6 - Modelagem Box-Jenkins em Python Aplicação da metodologia Box-Jenkins modelagem de uma série temporal do consumo de cerveja, onde todas as etapas (identificação, estimação, diagnóstico do resíduos e previsão) serão apresentadas, explicadas e aplicadas. Aplicando essa metodologia encontramos inferimos vários modelos, mas o único que passou na etapa de diagnóstico dos resíduos foi o modelo 𝐴𝑅𝐼𝑀𝐴(1,1,0) e foi com esse modelos geramos previsões;

Projeto 7 - Modelagem multivariada de Séries Temporais Uso do modelo VECM (Vector Error Correction Model) para analisar o comportamento de séries de preços futuros de commodities. Aqui aplicando esse modelo com as duas séries enocntramos os seguintes resultados: O impacto dos preços futuros de soja na série de preços futuros de milho é negativo e dura cerca 120 períodos (120 dias), em outras palavras, a variação do preço futuro da soja afeta negativamente a variação do preço futuro do milho. Em contrapartida o impacto do preço futuro afeta positivamente a variação do preço futuro de soja por um período menor que 120 dias. Encontramos também que há causalidade instantânea de uma série na outra e ausência de autocorrelação serial no modelo.

Projeto 8 - Neural Prophet para modelagem de séries temporais Biblioteca similar ao Facebook Prophet, mas que utiliza em sua estrutura para modelagem a rede neural AR-Net. Nesse projeto foi modelado uma série de vendas de varejo mensais de cerveja, vinho e licores alcoólicos, que vai do ano de 1992 até o ano de 2020. Os últimos 24 meses da série foram separados para comparar o desempenho de previsão do modelo. Resultado : o modelo gerou previsões que foram estatisticamente semelhantes com a base de validação.

Projeto 8 - Modelagem de Séries Temporais com Redes Neurais Aplicação da rede neural LSTM para previsão de preços de fechamento das ações da Petrobras. Utilizando a LSTM geramos um modelo com uma camada inicial, duas camadas intermediárias e uma camada de saída que gerou um RMSE (entre os valores preditos e os valores reais) de 0.723.

Projeto 9 - Aplicação de modelos lineares em séries temporais Foram aplicados 12 modelos lineares da biblioteca Scikit-Learn em dados de séries temporais de preços de ações do Itaú Unibanco, no período do ano de 2019 ao ano de 2020. O modelo com melhor desempenho nas métricas RMSE e R2 foi o Theil Sen Regressor. O Theil Sen Regressor, que é um modelo linear robusto a outliers teve um RMSE de 0.48117 e um R2 de 99.73%.

Projeto 11 - AutoML para Séries Temporais Utilizando a biblioteca auto-ts geramos 4 modelos para séries temporais para previsão da temperatura média de 114 dias da cidade de Déli, na Índia. Os modelos foram: Facebook Prophet, ARIMA, SARIMAX, VAR e um modelo de Machine Learning Random Forest. O modelo de melhor resultado de previsão foi o Facebook Prophet, pois obteve as menores métricas de erro e o maior R-quadrado.

Projeto 12 - Modelagem de Séries Temporais com Redes Neurais Convolucionais Aplicação da rede neural Convolucional (Conv1D) para previsão de Consumo de energia elétrica. Foir gerado um modelo (com treinamento de 10 épocas) para prever as 4440 observações finais da série de energia e a métrica de erro RMSE (raiz do erro quadrado médio) deum um valor de 0.40, uma resultado considerado bastante satisfatório.

OBS: Em cada pasta de projeto se encontra um link onde as bases de dados podem ser acessadas e as bases de dados em formato .csv.

series-temporais's People

Contributors

ivanildobatista avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

series-temporais's Issues

erro de

Nesta parte da 2 previsao, ocorre erro: NameError: name 'future_forecast2' is not defined

previsao2=stepwise.predict(n_periods=12)
previsao2=pd.DataFrame(future_forecast2,
index=pd.date_range(start='2021-06-01',
end='2022-05-01', freq='MS'),
columns=['nova previsão'])

poderia me ajudar?

problema com append

oi Ivanildo, tudo bom?

geniais teus códigos para entender series temporais, há horas que eu estava procurando algo didático assim

mas estou com um problema que não consigo resolver :

no código sobre o Ibovespa X Covid, na linha 31 ("#Criando uma nova coluna no dataset com os dados de treino.
bolsa['previsão']=train.append(future_forecast") está aparecendo esse erro ("to_append should be a Series or list/tuple of Series, got DataFrame")

já tentei várias transformações no dataframe aqui mas ele persisti

teria alguma ideia de como resolvê-lo?

antecipadamente grato

Lucas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.