Criando seu primeiro Transformer para previsão de séries econômicas

Introdução

A análise de séries temporais econômicas é um desafio constante para economistas e cientistas de dados. Nos últimos anos, a arquitetura Transformer, que revolucionou o processamento de linguagem natural (NLP), emergiu como uma ferramenta que pode auxiliar na modelagem de sequências, incluindo séries temporais.

Neste tutorial, vamos construir um modelo Transformer para prever a Dívida Bruta do Governo Geral (DBGG) do Brasil, como forma de compreende se de fato, a arquitetura transformer consegue lidar com a previsão de séries econômicas. Usaremos a biblioteca darts, que simplifica a aplicação de modelos avançados de previsão.

Para uma introdução ao uso de Transformers para Séries Temporais, veja esse post.

Para obter 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.

1. Preparando o Ambiente e Obtendo os Dados

Primeiro, precisamos dos dados. A forma mais fácil de acessar dados do Banco Central do Brasil (BCB) é através da sua API. Vamos instalar a biblioteca python-bcb para isso, juntamente com a darts.

CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM

Agora, vamos carregar os pacotes que usaremos e buscar a série da DBGG (código SGS 13762) a partir de 2006.

CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM
Gráfico Série da DBGG

2. Pré-processamento: Treino, Validação e Normalização

Modelos de deep learning, como o Transformer, aprendem padrões a partir dos dados. É essencial separar nosso conjunto de dados em uma parte para treino (onde o modelo aprende) e outra para validação (onde testamos seu desempenho em dados que ele nunca viu). Usaremos 80% dos dados para treino e os 20% restantes para validação.

Além disso, redes neurais funcionam melhor quando os dados de entrada estão em uma escala semelhante, geralmente entre 0 e 1. Esse processo é chamado de normalização.

CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM

3. Construindo o Modelo Transformer

A escolha dos parâmetros (hiperparâmetros) de um modelo Transformer é extremamente importante para seu desempenho. Vamos detalhar nossas escolhas, explicando o funcionamento de cada argumento na função TransformeModel:

Parâmetros Temporais

input_chunk_length = 36: Define quantos timesteps passados o modelo utiliza como entrada. Com 36 meses (3 anos), captura ciclos econômicos completos e padrões fiscais anuais da DBGG.

output_chunk_length = 1: Determina quantos passos à frente o modelo prevê simultaneamente. Valor 1 prioriza precisão no curto prazo, adequado para séries fiscais onde acurácia imediata é crítica.

Arquitetura do Modelo

d_model = 32: Controla a dimensionalidade das representações internas do modelo. Valor reduzido (32) equilibra expressividade e risco de overfitting dado o dataset pequeno (225 pontos).

nhead = 4: Número de cabeças de atenção paralelas que focam em diferentes aspectos temporais. Com 4 cabeças, o modelo captura simultaneamente tendências, sazonalidade e eventos específicos da DBGG.

num_encoder_layers = 2 e num_decoder_layers = 2: Define a profundidade da rede (número de camadas empilhadas). Profundidade conservadora previne overfitting em datasets pequenos, mantendo capacidade adequada para séries econômicas.

dim_feedforward = 128: Dimensão da rede feed-forward interna após a atenção. Seguindo a convenção 4x d_model, processa representações sem sobrecarregar o modelo.

Regularização e Treinamento

dropout = 0.2: Taxa de desativação aleatória de neurônios durante treino. Valor 20% (acima do padrão 10%) força aprendizado mais robusto, essencial para prevenir overfitting em datasets pequenos.

activation = “gelu”: Função de ativação não-linear aplicada nas camadas. GELU oferece gradientes mais suaves que ReLU, resultando em treino mais estável para séries econômicas.

batch_size = 16: Número de amostras processadas antes de atualizar pesos. Batches pequenos fornecem atualizações mais frequentes e regularização adicional em datasets limitados.

optimizer_kwargs = {“lr”: 1e-4}: Taxa de aprendizado (learning rate) do otimizador. Valor conservador (0.0001) garante convergência estável e evita oscilações durante o treino.

Mecanismos de Controle

Early Stopping (patience=30, min_delta=0.0005): Callback que monitora perda de validação e interrompe treino automaticamente. Paciência de 30 épocas acomoda convergência lenta de séries econômicas, prevenindo overfitting.

gradient_clip_val = 1.0: Limita magnitude máxima dos gradientes durante backpropagation. Previne gradientes explosivos que podem ocorrer em períodos de mudanças abruptas na DBGG.

save_checkpoints e force_reset: Salvam automaticamente o melhor modelo durante treino e reiniciam pesos a cada sessão. Garantem preservação do modelo ótimo e reprodutibilidade entre experimentos.

CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM

4. Comparação com Outros Modelos

Um modelo complexo como o Transformer nem sempre é a melhor solução. É uma boa prática compará-lo com modelos mais simples e clássicos. Vamos usar dois:

  1. Exponential Smoothing (Suavização Exponencial): Um modelo estatístico clássico que atribui pesos decrescentes exponencialmente às observações passadas. Usamos a versão AutoETS para a escolha automática dos melhores parâmetros.
  2. Theta: Um método de previsão univariado que tem se mostrado muito competitivo, decompondo a série em linhas de tendência.
CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM

5. Avaliação Final e Visualização

Agora, vamos gerar as previsões para o período de validação e comparar os resultados. A métrica que usaremos é o MAPE (Mean Absolute Percentage Error), que nos dá o erro percentual médio, facilitando a interpretação.

Lembre-se que a previsão do Transformer está na escala normalizada (0 a 1). Precisamos revertê-la para a escala original antes de calcular o erro e visualizar.

CÓDIGO DISPONÍVEL PARA MEMBROS DO CLUBE AM
MAPE Transformer: 4.07%
MAPE Exponential Smoothing: 2.68%
MAPE Theta: 8.11%
Previsão da DBGG: Transformer, Exponential Smoothing, Theta

Conclusão

Neste tutorial, passamos por todas as etapas para criar, treinar e avaliar um modelo Transformer para prever uma importante série econômica brasileira. Ao compará-lo com modelos mais clássicos, podemos ter uma visão clara de suas vantagens e desvantagens.

Frequentemente, modelos mais simples como o ETS podem apresentar resultados muito competitivos com um custo computacional e de implementação muito menor.

No caso do Transformer, precisamos lidar com uma série de parâmetros para ajustar a qualidade dos resultados, além de sofrer com o tempo de processemaneto dos ajuste do modelo.

A escolha do modelo ideal dependerá sempre do problema em questão, da quantidade de dados disponíveis e do equilíbrio entre performance e complexidade.

Quer aprender mais?

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

Referências

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como avaliar modelos de IA na previsão macroeconômica?

Descubra como economistas e cientistas de dados estão combinando econometria e inteligência artificial para aprimorar previsões macroeconômicas. Neste post, você vai entender as principais etapas de avaliação de modelos — da preparação dos dados à validação cruzada — e conhecer as métricas e técnicas que revelam quais métodos realmente entregam as melhores previsões. Uma leitura essencial para quem quer compreender o futuro da análise econômica orientada por dados.

Análise exploratória e seleção de séries temporais econômicas para modelagem

Quer entender como transformar dados econômicos brutos em previsões macroeconômicas precisas? Neste post, mostramos passo a passo como realizar a análise exploratória e seleção de séries temporais com Python — desde o tratamento de dados e remoção de multicolinearidade até a escolha das variáveis mais relevantes usando técnicas de machine learning e econometria. Um guia essencial para quem quer unir teoria econômica e inteligência artificial na prática da previsão macroeconômica.

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.