Prevendo múltiplas séries usando IA no Python

Como podemos realizar previsões para várias séries temporais simultaneamente? Para abordar essa questão, empregamos a biblioteca MLForecastdo Python. Esta biblioteca disponibiliza uma variedade de modelos e funcionalidades para realizar previsões em séries temporais utilizando técnicas de aprendizado de máquina. Demonstramos sua aplicação ao prever as curvas de energia horária em quatro regiões distintas do Brasil.

Esse exercício é uma continuação do exercício “Usando IA para prever o consumo de energia no Brasil com Python”.

Introdução

Algumas séries temporais são geradas a partir de dados de frequência muito baixa. Esses dados geralmente exibem múltiplas sazonalidades. Por exemplo, dados horários podem exibir padrões repetidos a cada hora (a cada 24 observações) ou a cada dia (a cada 24 * 7, horas por dia, observações). Esse é o caso da carga elétrica. A carga elétrica pode variar por hora, por exemplo, durante as noites, no Brasil, espera-se uma queda no consumo de eletricidade. Mas também, a carga elétrica varia por semana. Talvez no caso brasileiro, fins de semana haja uma queda na atividade elétrica.

Outro aspecto crucial a ser observado em séries temporais de carga de energia é a tendência. No contexto brasileiro, observa-se claramente uma tendência ascendente, em grande parte devido ao contínuo crescimento econômico do país.

Quando lidamos com séries temporais que exibem tais padrões, torna-se imperativo empregar modelos capazes de identificá-los com precisão. Modelos de Machine Learning voltados para análise de Séries Temporais, como LightGBM ou até mesmo Prophet, destacam-se como as opções mais adequadas para abordar esses cenários complexos.

Portanto, neste exercício usamos diferentes modelos com a biblioteca MLForecast, tomando como features valores da própria série para prever a carga de energia elétrica das quatro regiões do Brasil separadamente (Norte, Nordeste, Sudeste e Sul).

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Dados

Utilizamos os dados de Carga Horária de Eletricidade Nacional medido pela ONS (em MW). Os valores estão em periodicidade horária, de Jan/2021 até Dez/2023. Decidimos usar um período de tempo menor para diminuir o número de observações e facilitar a criação do exemplo, visto que estaremos lidando com quatro séries diferentes. Abaixo, a figura representando as quatro séries.

Dividimos a série para criar um conjunto de treinamento e teste. O modelo será testado usando as últimas 24 horas da série temporal.

Analisando Tendência e Sazonalidades

Primeiro, devemos visualizar a tendência e as sazonalidades do modelo. Como mencionado anteriormente, a carga elétrica apresenta sazonalidades a cada 24 horas (por hora) e a cada 24 * 7 (diariamente) horas. Portanto, usaremos [24, 24 * 7] como as sazonalidades para o modelo. No caso da tendência, supomos que possamos lidar com esse componente através da primeira diferença.

Abaixo, o resultado das séries retirados os respectivos componentes citados anteriormente.

Conjunto de Teste

Agora vamos comparar os dados previsto do conjunto de treinamento no conjunto de teste, de forma a compreender qual modelo melhor realizou a previsão. Adicionamos intervalos de confiança para cada previsão. Automaticamente a biblioteca MlForecast reconhece as colunas que representam as diferentes séries.

Para tanto, é necessário sempre ter o dataframe em formato long com as colunas no seguintes nomes:

  • y: target, isto é, os valores a serem previstos
  • unique_id: coluna que distingue as diferentes séries (categoriza)
  • ds: coluna de data

Com isso, não necessitamos de nenhuma outra adição nas funções, visto que automaticamente elas reconheceram as colunas. Simples, não?

Abaixo, temos os resultados em uma tabela das métricas de acurácia para os valores de cada série e de cada modelo.

Por fim, podemos comparar o conjunto de teste com os dados preditos de cada modelo. Veja que adicionamos intervalos de previsão.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

Dashboard Financeiro com IA e Shiny Python: Análise de Dados Abertos da CVM

Este artigo apresenta um tutorial completo sobre como construir uma ferramenta de análise financeira de ponta. Utilizando Shiny for Python, demonstramos a automação da coleta de dados das Demonstrações Financeiras Padronizadas (DFP) da CVM e o tratamento dessas informações com Pandas. O ponto alto do projeto é a integração da IA Generativa do Google Gemini, que atua como um assistente de análise, interpretando os dados filtrados pelo usuário e fornecendo insights contábeis e financeiros em tempo real. O resultado é um dashboard dinâmico que democratiza a análise de dados complexos e acelera a tomada de decisão.

Econometria, ML ou IA para previsão da PMS?

Prever a Pesquisa Mensal de Serviços (PMS/IBGE) é um desafio por natureza: trata-se de uma série mensal, sujeita a volatilidade e choques que vão de fatores sazonais a mudanças estruturais no setor. Para enfrentar esse problema, realizamos um exercício de comparação entre três abordagens de modelagem: econometria tradicional (ARIMA), machine learning (XGBoost) e inteligência artificial (TimeGPT).

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.