Como preparar os dados para um modelo preditivo?

Modelos de previsão macroeconômica podem facilmente alcançar um número elevado de variáveis. Mesmo modelos simplificados, como o Modelo de Pequeno Porte (MPP) do Banco Central, usam cerca de 30 variáveis. Isso impõe um grande desafio ao nosso dia a dia: como fazer a gestão destes dados para uso em modelos, desde a coleta até o tratamento?

Neste artigo mostramos como é possível automatizar, usando linguagem de programação, todo o processo de preparação de dados para uso em modelos preditivos macroeconômicos. Tomando como exemplo as variáveis do MPP, mostramos como coletar e tratar os dados de diferentes fontes e, no fim, montamos uma tabela que serve de base para a estimação do modelo.

Etapa 1: identificar as variáveis

Partindo de um modelo macroeconômico a ser estimado, o primeiro passo é identificar quais são as variáveis necessárias para o mesmo. No caso do MPP, as variáveis estão descritas no relatório de inflação publicado pelo Banco Central.

Para facilitar a gestão de informações, o usuário pode montar uma tabela resumo destas variáveis, contendo as principais informações, como no exemplo abaixo:

Etapa 2: coletar os dados

Em seguida, devemos identificar as fontes de dados que dão origem a estas variáveis e coletar os dados brutos. No caso do MPP, alguns dados não estão disponíveis de forma fácil ou pública, então adaptações ou cortes podem ser necessários.

Em suma, é necessário coletar dados destas fontes para o exemplo em questão:

  • Banco Central do Brasil (BCB)
  • Instituto Brasileiro de Geografia e Estatística (IBGE)
  • National Oceanic and Atmospheric Administration (NOAA)

No caso do BCB, os dados podem vir de mais de uma fonte: Sistema Gerenciador de Séries Temporais, Sistema de Expectativas, API Documentos do Copom e outras APIs espalhadas pelo site da instituição.

Através da linguagem R e do pacote rbcb coletamos a maioria destes dados.

No caso do IBGE, todas as tabelas de dados necessárias estão localizadas no sistema SIDRA e podemos usar o pacote sidrar para fazer a coleta dos dados.

Por fim, no caso do NOAA, a variável ONI é disponibilizada através de uma URL para um arquivo de texto. Utilizamos o pacote readr para coletar estes dados.

Etapa 3: tratar dados e criar variáveis

Nesta etapa o objetivo é construir uma tabela final que servirá de base para o modelo, contendo todas as variáveis necessárias. Os dados coletados chegam em variados formatos, nem sempre sendo o tabular. Dessa forma, devemos tratar as informações de forma que representamos os dados na unidade de medida apropriada para o modelo e em formato tabular.

No caso do MPP, devemos converter os dados de modo a obter as variáveis em frequência trimestral e em semelhante unidade de medida descrita pelo BCB (não é possível replicar as variáveis usadas pela instituição pois o código fonte não é aberto pela mesma). Ademais, algumas variáveis são não observáveis e precisam ser estimadas e outras precisam ser calculadas.

A seguir apresentamos as tabelas individuais para as variáveis do MPP, sendo que algumas variáveis do modelo original não estão presentes por dificuldade de acesso/disponibilização de dados públicos ou por terem sido arbitrariamente excluídas.

  • Expectativa de inflação acumulada quatro trimestres à frente consistente com o modelo (model-consistent expectations)
date ipca_expec
2001-10-01 4.70
2002-01-01 4.81
2002-04-01 4.53
2002-07-01 5.64
2002-10-01 12.26
2003-01-01 9.30
  • Inflação trimestral do Índice Nacional de Preços ao Consumidor Amplo (IPCA), preços livres, com ajuste sazonal
date ipca_livres ipca_livres_sa
1999-07-01 2.5915500 2.1291681
1999-10-01 0.4902232 0.7818590
2000-01-01 0.5710226 1.0762945
2000-04-01 2.5903025 2.2557722
2000-07-01 0.7604714 0.2981345
2000-10-01 0.7107491 1.0023230
  • Inflação trimestral do IPCA, com ajuste sazonal
date ipca ipca_sa
1999-07-01 2.88 2.5162687
1999-10-01 1.05 1.3691481
2000-01-01 1.97 2.3843835
2000-04-01 2.76 2.3901643
2000-07-01 0.97 0.6063608
2000-10-01 0.66 0.9792566
  • Inflação trimestral importada de commodities, medida pelo desvio da variação do Índice de Commodities – Brasil (IC-Br) em reais em relação à meta de inflação doméstica
  • Inflação trimestral importada de commodities agrícolas, medida pelo desvio do IC-Br Agropecuária em relação à meta de inflação doméstica
  • Inflação trimestral importada de commodities metálicas, medida pelo desvio do IC-Br Metal em relação à meta de inflação doméstica
  • Inflação trimestral importada de commodities energéticas, medida pelo desvio do IC-Br Energia em relação à meta de inflação doméstica
date ic_br ic_br_agro ic_br_energia ic_br_metal
1999-01-01 39.904707 36.4659724 60.973747 47.028129
1999-04-01 -16.053561 -17.1533948 -12.872881 -11.606260
1999-07-01 2.151963 -0.5632035 11.376392 9.623529
1999-10-01 -8.613144 -8.2748196 -12.850746 -7.579916
2000-01-01 -10.549836 -11.0637272 -5.542484 -11.278885
2000-04-01 2.159968 2.5087083 11.534157 -5.411146
  • Desvio da variação trimestral da taxa de câmbio nominal (R$/US$ ) em relação à sua variação de longo prazo prevista pela teoria da paridade do poder de compra
date cambio
1999-01-01 51.3585532
1999-04-01 -12.9274568
1999-07-01 1.5167101
1999-10-01 -8.9134398
2000-01-01 -9.4699371
2000-04-01 -0.1940299
  • Variável que captura choques de oferta provenientes de anomalias climáticas
  • Dummy que assume valor 1 quando a anomalia climática é positiva (eventos El Niño)
  • Dummy que assume valor 1 quando a anomalia climática é negativa (eventos La Niña)
date oni d_elnino d_lanina
1999-01-01 -1.306667 0 1
1999-04-01 -1.013333 0 1
1999-07-01 -1.123333 0 1
1999-10-01 -1.456667 0 1
2000-01-01 -1.380000 0 1
2000-04-01 -0.720000 0 1
  • Hiato do produto doméstico
date pib pib_hp hiato_produto
1996-01-01 175440.8 179028.7 -2.0040919
1996-04-01 177662.7 179901.8 -1.2445930
1996-07-01 183826.3 180772.6 1.6892555
1996-10-01 182461.8 181637.6 0.4537454
1997-01-01 184299.6 182495.0 0.9888714
1997-04-01 185327.3 183343.5 1.0820316
  • Expectativa da taxa Selic ao longo de um horizonte de doze meses
date selic_expec
2005-01-01 16.50
2005-04-01 16.50
2005-07-01 16.00
2005-10-01 15.25
2006-01-01 14.00
2006-04-01 13.75
  • Medida de hiato de taxa de juros real, obtida pela diferença entre a expectativa da taxa Selic ao longo de um horizonte de doze meses it,t+4|te e a expectativa de inflação referente ao mesmo período ( πt,t+4|te ), ambas apuradas pela pesquisa Focus e representadas em taxa anual, e uma taxa de juros real de equilíbrio não observável ( rr¯tIS )
date hiato_juros
2023-10-01 5.1250
2024-01-01 5.5394
2024-04-01 6.3902
2024-07-01 7.5519
2024-10-01 9.7997
2025-01-01 NA
  • Medida do resultado primário do governo central corrigido por outliers e ajustado pelo ciclo econômico, expressa como desvio de sua tendência
date rp rp_hp rp_hiato
1991-10-01 -0.9800000 -1.551224 0.5712242
1992-01-01 -0.8633333 -1.562846 0.6995126
1992-04-01 -1.3300000 -1.574111 0.2441107
1992-07-01 -1.5000000 -1.584224 0.0842242
1992-10-01 -1.2533333 -1.592240 0.3389064
1993-01-01 -1.7733333 -1.597158 -0.1761755
  • Choque autorregressivo
date is_choque_ar
1996-01-01 0.5532097
1996-04-01 -0.0764221
1996-07-01 0.8098506
1996-10-01 -1.9683965
1997-01-01 0.0073228
1997-04-01 1.6115114
  • Meta para a taxa Selic nominal
date selic
1999 Q1 42.0
1999 Q2 21.0
1999 Q3 19.0
1999 Q4 19.0
2000 Q1 18.5
2000 Q2 17.5
  • Meta de inflação
date meta_inflacao
1999-01-01 8
1999-04-01 8
1999-07-01 8
1999-10-01 8
2000-01-01 6
2000-04-01 6
  • Taxa de juros de equilíbrio
date juros_equilibrio
2005-01-01 10.870183
2005-04-01 10.553528
2005-07-01 10.236979
2005-10-01 9.921233
2006-01-01 9.607660
2006-04-01 9.298133

O código que gera estas tabelas individuais de variáveis é bastante simples e, portanto, pouco robusto e com espaço para melhorias.

Ao final de todo este processo, podemos cruzar as tabelas de dados de modo a obter uma única tabela de variáveis para o MPP:

date ipca_expec ipca_livres ipca_livres_sa ipca ipca_sa ic_br ic_br_agro ic_br_energia ic_br_metal cambio oni d_elnino d_lanina pib pib_hp hiato_produto selic_expec hiato_juros rp rp_hp rp_hiato is_choque_ar selic meta_inflacao juros_equilibrio
2024-07-01 3.9481 1.4457583 0.9844238 1.42 1.049972 -2.464639 -1.06103 -9.568977 -1.387618 1.831694 -0.0966667 0 0 336725.8 332307.0 1.3297416 11.50 7.5519 2.286667 1.0752876 1.2113791 -0.2734256 10.75 3 7.350497
2024-10-01 4.9503 0.8622929 1.1529477 1.05 1.371823 13.011769 15.39948 9.649049 6.317956 9.022376 -0.3866667 0 0 337306.9 334298.1 0.9000511 14.75 9.7997 1.366667 1.0279393 0.3387274 -1.3678932 12.25 3 7.681013
2025-01-01 5.1852 0.3903861 0.8988515 0.80 1.209509 NA NA NA NA NA -0.6400000 0 1 NA NA NA NA NA 0.370000 0.9802096 -0.6102096 NA 14.25 3 NA
2025-04-01 NA 2.1245766 1.7867778 1.48 1.117854 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 3 NA
2025-07-01 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 3 NA
2025-10-01 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 3 NA

Conclusão

Modelos de previsão macroeconômica podem facilmente alcançar um número elevado de variáveis. Mesmo modelos simplificados, como o Modelo de Pequeno Porte (MPP) do Banco Central, usam cerca de 30 variáveis. Isso impõe um grande desafio ao nosso dia a dia: como fazer a gestão destes dados para uso em modelos, desde a coleta até o tratamento?

Quer aprender mais?

Conheça nossa Formação Do Zero à Análise de Dados Econômicos e Financeiros usando a Linguagem R . Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros usando a Linguagem R.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como incorporar choques em cenários de previsão?

Neste exercício mostramos como incorar choques no cenário de variáveis exógenas para fins de previsão. Usando como exemplo a previsão do IPCA, através de um modelo de machine learning, mostramos os cuidados a serem tomados e uma forma simples de definir o cenário com os choques. Ao final, apresentamos uma previsão com um suposto choque e uma previsão sem o choque para comparação.

Como preparar os dados para um modelo preditivo?

Modelos de previsão macroeconômica podem facilmente alcançar um número elevado de variáveis. Mesmo modelos simplificados, como o Modelo de Pequeno Porte (MPP) do Banco Central, usam cerca de 30 variáveis. Isso impõe um grande desafio ao nosso dia a dia: como fazer a gestão destes dados para uso em modelos, desde a coleta até o tratamento?

Transfer Learning para Previsão de Séries Temporais com o Python

A aprendizagem por transferência (ou transfer learning) é a técnica de reutilizar um modelo previamente treinado em um novo problema. Esse conceito representa um grande avanço para a previsão de variáveis, especialmente aquelas organizadas ao longo do tempo, como séries temporais. Neste post, exploramos como usar transfer learning com Python para trabalhar com esse tipo de dado.

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.