TimeGPT e a previsão automática usando IA no Python

Introdução

Historicamente, métodos estatísticos como ARIMA, ETS, MSTL, Theta e CES têm sido confiavelmente empregados em diversos domínios. Na última década, modelos de aprendizado de máquina como XGBoost e LightGBM ganharam popularidade. Agora, podemos entrar em uma nova fase na era da previsão: o uso da IA Generativa para a previsão de séries temporais. Neste exercício, demonstramos de forma introdutória o TimeGPT e criamos um exemplo usando o IPCA.

Previsão e IA Generativa

A previsão é um processo vital em diversos campos, desde o mundo dos negócios até estudos ambientais, permitindo antecipar resultados futuros com base em dados do passado. Nesse processo, utilizam-se dados históricos para identificar padrões, tendências ou regularidades, e então projetar esses padrões para o futuro. Por exemplo, um varejista pode analisar dados de vendas passadas para prever a demanda futura por um produto, um economista pode utilizar indicadores econômicos anteriores para antecipar as condições econômicas futuras e um meteorologista pode usar dados meteorológicos passados para prever padrões climáticos futuros.

Ao longo das décadas, a área de previsão tem sido objeto de estudo intenso, resultando na construção de diversos modelos estatísticos. Nas últimas décadas, os modelos de aprendizado de máquina também têm apresentado resultados satisfatórios. No entanto, em um mundo dinâmico, nenhum tipo único de modelo pode ser considerado dominante em todas as situações.

Recentemente, a área da inteligência artificial generativa ganhou destaque com o lançamento de diversos sistemas de linguagem baseados em Large Language Models (LLM). Esses sistemas oferecem a capacidade de melhorar a produtividade em uma variedade de tarefas. Não obstante, a possibilidade de aplicar esses avanços na entrega de previsões não está distante da realidade. Com o desenvolvimento contínuo nessa área, é possível vislumbrar um futuro onde a inteligência artificial generativa desempenhe um papel significativo na produção de previsões precisas e úteis em diversos domínios.

TimeGPT

TimeGPT é uma ferramenta avançada de previsão de séries temporais, capaz de identificar padrões e tendências relevantes, capacitando-o a realizar previsões precisas sobre o futuro. Sua flexibilidade permite adaptar-se a uma variedade de séries temporais, independentemente de sua complexidade ou características específicas. Em contraste com modelos de linguagem, como o LLM, o TimeGPT é otimizado exclusivamente para tarefas de previsão, o que significa que é treinado especificamente para minimizar erros nesse contexto.

Além disso, sua capacidade de lidar com diferentes frequências e características das séries temporais o torna altamente versátil em uma variedade de cenários de previsão. Isso porque foi treinado em uma coleção de séries temporais publicamente disponíveis, abrangendo coletivamente mais de 100 bilhões de pontos de dados.

Esse conjunto de treinamento incorpora séries temporais de uma ampla variedade de domínios, incluindo finanças, economia, demografia, saúde, clima, dados de sensores IoT, energia, tráfego na web, vendas, transporte e bancos. Devido a essa ampla variedade de domínios, o conjunto de dados de treinamento contém séries temporais com uma ampla gama de características.

Com base nesse amplo conjunto de dados, o TimeGPT adquire uma compreensão abrangente de uma variedade de séries temporais não vistas, capacitando-o a realizar projeções precisas para o futuro. Isso é possível através da assimilação da série temporal no código, permitindo que o modelo extrapole com confiança para pontos futuros.

Para ver mais informações sobre a biblioteca veja aqui e aqui.

Exemplo simples: Air Passengers

Aprenda a coletar, processar e analisar dados no Workshop Do Zero à Análise de Dados Econômicos e Financeiros usando Python, se inscreva aqui!

Vamos iniciar com um famoso dataset: air_passegers, que representa o número mensal de passageiros de companhias aéreas internacionais viajando para fora da Austrália, em milhares, durante o período de janeiro de 1949 a dezembro de 1960. Abaixo, o gráfico da série air_passengers. Verificamos um claro padrão sazonal e tendência na série.

 Vemos como o TimeGPT consegue capturar bem os padrões ao realizar a previsão da série no gráfico abaixo, em que temos a série predita na linha rosa.

Aplicação: IPCA

Agora, vamos usar um exemplo mais desafiador para o TimeGPT, a série do IPCA mensal e do IPCA acumulado em 12 meses. Usamos uma amostra do período de Jan/2002 até Dez/2023.

IPCA Mensal

Ao realizar a previsão, vemos no gráfico abaixo que o modelo capturou bem os padrões sazonais da série. Entretanto, não sabemos ao certo se houve uma boa previsão. Vamos agora realizar a previsão da série e comparar com sua estória.

Date TimeGPT
0 2024-01-01 0.506728
1 2024-02-01 0.701016
2 2024-03-01 0.672563
3 2024-04-01 0.608944
4 2024-05-01 0.405193
5 2024-06-01 0.272311
6 2024-07-01 0.051202
7 2024-08-01 0.105975
8 2024-09-01 0.207205
9 2024-10-01 0.388627
10 2024-11-01 0.466003
11 2024-12-01 0.552872

IPCA Acumulado em 12 meses

O TimeGPT aqui realiza a previsão usando como dados de treinamento apenas uma pequena amostra da série (do tamanho do parâmetro h de previsão, neste caso 12 meses), e realiza a extrapolação (por isso há a perda dos pontos iniciais da previsão).
Pelo gráfico, vemos que há vários desajustes na previsão, principalmente em períodos de queda/ascensão acentuados.

Cross validation

Um desafio fundamental na previsão de séries temporais é a incerteza ao longo do tempo, tornando crucial validar a precisão dos modelos. A validação cruzada é uma técnica robusta que proporciona insights sobre o desempenho esperado do modelo em dados não vistos, garantindo a confiabilidade das previsões antes da implementação em cenários reais. O TimeGPT incorpora a validação cruzada para simplificar esse processo, permitindo que possamos testar os modelos rigorosamente em dados históricos, ajustando-os para um desempenho ideal.

Este método emprega um esquema de janela deslizante para avaliar meticulosamente o desempenho do modelo em diferentes períodos de tempo, garantindo assim a confiabilidade e estabilidade do modelo ao longo do tempo.

Abaixo, definimos o seguintes parâmetros: horizonte de previsão igual a 6 meses, número de passos em 6 meses e número de janelas igual a 6. Como target temos o IPCA mensal e colocamos como feature adicional a variável que representa os meses da série.

 Considerações

O TimeGPT pode torna-se uma ferramenta poderosa para o que se propõe, ou mesmo, ser um pontapé inicial para diversas outras ferramentas que terão como principal objetivo a análise de séries temporais. Entretanto, através do exemplo com o IPCA, ainda há muito a ser percorrido para a ferramenta ser tornar ideal para o uso 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

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

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.