Previsão econômica na era da IA usando Python

Imagine que você tenha uma “simples” tarefa: prever o futuro de uma variável econômica relevante, como a taxa de inflação do país. Existem diversas abordagens para cumprir esta missão, desde o uso de modelos preditivos econométricos, modelos de machine learning ou até mesmo modelos de inteligência artificial (IA). Qual caminho escolher? Qual abordagem é a melhor? Neste artigo tentamos dar uma resposta para estas perguntas, usando como exemplo o IPCA como variável de interesse.
Em outras palavras, queremos entender se realmente precisamos de IA em tarefas preditivas, dado o boom de ferramentas e modelos que surgiram nos anos recentes nessa área. Para tentar chegar a uma resposta rápida para esta questão, simplificaremos ao máximo a análise nos limitando a selecionar um modelo preditivo de cada abordagem para fins de comparação, em um exercício aplicado de previsão para a série temporal do IPCA.Aprenda a coletar, processar e analisar dados no Workshop Do Zero à Análise de Dados Econômicos e Financeiros usando Python, se inscreva aqui!

A tarefa preditiva

O objetivo do exercício é prever o futuro de uma série temporal, tomando como exemplo o Índice Nacional de Preços ao Consumidor Amplo (IPCA), divulgado pelo IBGE. Esta série temporal é bastante conhecida entre os economistas e possui algumas características de destaque:

  • Sazonalidade anual
  • Tendência crescente
  • Inércia (autocorrelação positiva)

Estas são características presentes em várias séries temporais, sejam econômicas ou não, o que torna a série do IPCA representativa para fins de tarefa preditiva. Aqui trataremos a série em variação percentual mensal. Para saber mais sobre as características do IPCA, pesquise por “ipca” no blog da Análise Macro.

Selecionamos três diferentes abordagens para prever esta série temporal, com vistas a comparar as mesmas no final. Dentro de cada abordagem definimos um modelo que seja candidato para previsão da série do IPCA, são eles:

  • Abordagem econométrica: utilizaremos o modelo SARIMA (open source), visto que pode captar a inércia e a sazonalidade da série e está implementado em Python.
  • Abordagem de machine learning: utilizaremos o algoritmo XGBoost (open source), visto que pode captar a sazonalidade e outras características usando feature engineering e está implementado em Python.
  • Abordagem de IA: utilizaremos o TimeGPT (closed source), visto que é um modelo baseado em LLMs otimizado para prever séries temporais no curto prazo e está implementado em Python.

Todos os modelos escolhidos são utilizados com seus parâmetros padrão de software. Um modelo de passeio aleatório sazonal também é utilizado como base de comparação.

Separamos os dados da série temporal em duas simples amostras: a primeira, chamada de treino, será usada para estimar parâmetros/treinar o modelo; a segunda, chamada de teste, será usada para comparar as previsões do modelo com os dados reais e corresponde às últimas 12 observações.

Ao final, comparamos os modelos usando como métrica a Raiz do Erro Quadrático Médio (RMSE) para construir um ranking. Sendo assim, quanto menor o RMSE, maior é a acurácia do modelo em termos preditivos. Note que, para simplificar, não utilizaremos validação cruzada, portanto os resultados aqui expostos podem não se generalizar para amostras diferentes.

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.

Previsão com modelos econométricos

As previsões geradas pelo modelo econométrico ARIMA podem ser conferidas abaixo:

Previsão com modelos de Machine Learning

As previsões geradas pelo modelo de machine learning XGBoost podem ser conferidas abaixo:

Previsão com modelos de IA

As previsões geradas pelo modelo de inteligência artificial TimeGPT podem ser conferidas abaixo:

Comparando resultados

A análise visual das previsões já pode dar algum indicativo de desempenho dos modelos, ao comparar os dados observados (linha preta) com os dados previstos (linha azul) pelos modelos no período selecionado. Em termos quantitativos, podemos fazer essa comparação calculando métricas de acurácia, como o RMSE:

O gráfico acima mostra o RMSE calculado para a amostra de teste em consideração. Quanto menor for o valor desta métrica, menos erráticas são as previsões do modelo. Sendo assim, podemos dizer que o modelo com o melhor desempenho para prever o IPCA é o modelo de inteligência artificial TimeGPT. Note, novamente, que para amostras diferentes os resultados podem ser completamente diferentes (fica como exercício a aplicação de validação cruzada).

Estes resultados nos levam a uma resposta afirmativa para a questão inicial do exercício, ou seja, realmente precisamos de IA em tarefas preditivas? A análise isolada dos resultados certamente nos inclinaria a adotar modelos de IA para fins de previsão, mas a acurácia do modelo é apenas um dos fatores relevantes em uma tarefa preditiva. Aqui não estamos discutindo sobre fatores como custo de operação, tempo de processamento, interpretação de resultados, dentre outros. Apesar dos resultados interessantes obtidos, estes outros fatores também precisam ser levados em consideração na tomada de decisão.

Conclusão

Imagine que você tenha uma “simples” tarefa: prever o futuro de uma variável econômica relevante, como a taxa de inflação do país. Existem diversas abordagens para cumprir esta missão, desde o uso de modelos preditivos econométricos, modelos de machine learning ou até mesmo modelos de inteligência artificial (IA). Qual caminho escolher? Qual abordagem é a melhor? Neste artigo tentamos dar uma resposta para estas perguntas, usando como exemplo o IPCA como variável de interesse.

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

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.

Criando Tabelas com o Python: mostrando o poder da linguagem sobre o Excel

Nos dias atuais, pessoas que trabalham com dados estão constantemente confrontados com um dilema: criar uma tabela não tão genial no Excel ou manter em um formato ainda pior, como um dataframe, mas mantendo a flexibilidade de obtenção dos dados. Podemos resolver esse grande problema, unindo a flexibilidade e beleza ao usar a biblioteca great_tables do Python.

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

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.