Previsão com VAR no Python: prevendo a inflação brasileira

Modelos Vetoriais AutoRegressivos (VAR) são amplamente utilizados na análise de séries temporais macroeconômicas. Eles permitem modelar a dinâmica conjunta de várias variáveis, capturando como choques em uma afetam as demais ao longo do tempo. Neste exercício, mostramos como aplicar um modelo VAR a um conjunto de dados macroeconômicos brasileiros para gerar previsões.

O índice de condições financeiras resume, em um único número, se o ambiente financeiro está apertando ou afrouxando a economia. Neste tutorial mostramos como reconstruir no Python o ICF do Banco Central do Brasil usando apenas dados públicos, e como decompô-lo para ver o que puxa cada movimento.

O resultado replica de perto o índice oficial: a versão que construímos tem correlação de 0,896 com o ICF divulgado pelo BCB, sem usar nenhuma base paga. A prova está no gráfico abaixo.

Índice de condições financeiras no Python: série replicada vs. ICF oficial do BCB, com correlação de 0,896 entre 2012 e 2022
ICF replicado (azul) vs. ICF oficial do BCB (vermelho), 2012–2022. As duas séries quase se sobrepõem. Fontes: BCB, FRED e Yahoo Finance.

As duas linhas quase se sobrepõem em toda a amostra que o BCB publica, o que valida a metodologia. A seguir mostramos como chegar até esse resultado, passo a passo, e como abrir o índice por grupo de fatores.

Quer reproduzir este índice?

O código completo em Python (coleta das APIs do BCB, FRED e Yahoo Finance, extração dos fatores por PCA, ponderação e decomposição) vai para os assinantes do Boletim AM. Assine, é gratuito, e receba no seu e-mail o script pronto para rodar.

Assinar o Boletim AM e receber o código →

O que é um índice de condições financeiras

As condições financeiras descrevem o custo e a disponibilidade de crédito para famílias e empresas. Quando estão restritivas — juros altos, risco elevado, câmbio depreciado, bolsa em queda —, elas freiam o consumo e o investimento. Quando estão estimulativas, aceleram.

O problema é que "condições financeiras" não é uma variável observável: é um conceito que se manifesta em dezenas de preços de mercado ao mesmo tempo. O índice de condições financeiras (ICF) resolve isso agregando essas variáveis em um só indicador. Por convenção, valores positivos indicam aperto e valores negativos indicam afrouxamento.

Este exercício replica a metodologia que o Banco Central descreve no Boxe 5 do Relatório de Inflação de dezembro de 2022 e no Estudo Especial nº 76. A adaptação central é usar apenas fontes públicas e automatizáveis, o que torna o índice reproduzível de ponta a ponta no Python.

Como o índice é construído

A construção segue quatro etapas. Cada uma resolve um problema específico de juntar variáveis muito diferentes em uma medida comparável.

📥

1. Coletar e agrupar
20 variáveis de mercado organizadas em 7 grupos econômicos, de APIs públicas.
🧹

2. Tratar
Frequência mensal, remoção de tendência e padronização por z-score.
🧮

3. Extrair fatores (PCA)
Uma componente principal por grupo, resumindo o movimento comum das variáveis.
⚖️

4. Ponderar e agregar
Peso por relevância econômica, medida contra a atividade futura (IBC-Br).

Os sete grupos de variáveis

As variáveis cobrem tanto o mercado local quanto o global, porque as condições financeiras no Brasil respondem às duas frentes. São eles: juros Brasil (NTN-B de 5 e 10 anos e Selic esperada), juros exterior (títulos soberanos de EUA, Alemanha, Reino Unido e Japão), risco (VIX e spread Brasil-EUA), moedas (dólar, moedas emergentes e real), petróleo (WTI e Brent), commodities (índices metálico e agropecuário do BCB) e mercado de capitais (Ibovespa, MSCI World e MSCI Emerging Markets).

O tratamento das séries

Antes de modelar, tudo passa por três ajustes. Primeiro, a frequência: as séries diárias viram mensais, por média ou último valor do mês. Segundo, a remoção de tendência: variáveis com tendência de longo prazo, como índices de bolsa e commodities, têm a tendência linear subtraída, para que o índice capte oscilação e não nível. Terceiro, a padronização por z-score, que coloca todas na mesma escala (média zero, desvio-padrão um) — sem isso, uma variável com números grandes dominaria o resultado só pela unidade.

A extração de fatores com PCA

A Análise de Componentes Principais (PCA) é a peça central. Ela encontra, dentro de cada grupo, a combinação das variáveis que captura a maior parte da variação conjunta. Essa combinação — a primeira componente principal — é o "fator comum" do grupo. Se as taxas de 5 e 10 anos e a Selic esperada sobem juntas, esse fator sobe com elas e passa a resumir, em uma série só, o nível de juros. Reduzir cada grupo a um fator evita contar duas vezes variáveis que andam juntas.

Há um detalhe técnico que faz diferença no resultado: o sinal de uma componente principal é indeterminado. Matematicamente, o fator e o seu negativo explicam a mesma variação, e o algoritmo pode devolver qualquer um dos dois. Para o índice ter interpretação estável, ancoramos o sinal de cada subíndice em uma variável de referência — a NTN-B nos juros, o VIX no risco, o Ibovespa na bolsa — de modo que subíndice maior signifique sempre condições mais restritivas.

A ponderação pela relevância econômica

Os sete subíndices não pesam igual. Para definir o peso de cada um, mede-se sua relevância econômica por uma regressão contra a variação futura do IBC-Br, a proxy mensal do PIB. Quanto mais um grupo se relaciona com a atividade seis meses à frente, maior seu peso no índice. O ICF final é a soma ponderada dos subíndices, padronizada. A tabela abaixo mostra o peso de cada grupo.

Grupo de fatores Peso no índice
Risco 26,3%
Moedas 16,9%
Juros Brasil 16,6%
Mercado de Capitais 14,8%
Commodities 10,5%
Juros Exterior 8,3%
Petróleo 6,5%

Peso de cada grupo no ICF, pela relevância econômica frente à atividade futura. Fonte: elaboração própria.

Risco, moedas e juros locais concentram quase 60% do índice — coerente com o que costuma mover as condições financeiras de uma economia emergente.

O índice até o dado mais recente

Validada a replicação contra o BCB, o mesmo índice pode ser estendido até o dado mais recente, já que todas as fontes são de acesso contínuo. O gráfico abaixo traz a série completa.

Índice de condições financeiras do Brasil replicado no Python, série mensal até o dado mais recente
ICF replicado, série mensal. Acima de zero: aperto; abaixo: afrouxamento. Fontes: BCB, FRED e Yahoo Finance.

Abrindo o índice: a decomposição

Como o ICF é uma soma ponderada dos subíndices, ele pode ser aberto para revelar quanto cada grupo contribuiu em cada mês. Essa é a decomposição: a leitura mais útil do índice, porque separa um aperto vindo de juros de um aperto vindo de câmbio ou de risco global.

Decomposição do índice de condições financeiras por grupo de fatores: contribuição de juros, risco, câmbio, bolsa e commodities
Contribuição de cada grupo ao ICF, mês a mês. A linha preta é o índice agregado. Fontes: BCB, FRED e Yahoo Finance.

Cada barra soma as contribuições dos grupos naquele mês, e a linha preta é o índice resultante. A leitura fica direta: nos episódios de aperto, dá para ver se o empurrão veio dos juros locais, do risco global ou do câmbio — informação que o índice agregado, sozinho, esconde.

As ferramentas por trás

Logo do Python
Python — orquestra todo o pipeline: coleta, tratamento, PCA e visualização. Com pandas, scikit-learn (PCA e regressão) e plotnine para os gráficos.
Logo do Banco Central do Brasil
Banco Central (SGS e Expectativas) — fornece os índices de commodities, o IBC-Br e as expectativas de Selic, via pacote python-bcb.
FRED · Yahoo
FRED e Yahoo Finance — trazem os juros internacionais, VIX, dólar, câmbio, petróleo e os índices acionários, via pandas-datareader e yfinance.

Considerações finais

Este exercício mostra algo que era, até pouco tempo, restrito a mesas de análise: reconstruir um indicador oficial do Banco Central com dados públicos e poucas etapas de código, chegando a uma correlação de quase 0,90 com a série original.

O Python é a ferramenta certa para isso porque reúne, num só ambiente, a coleta das APIs, o tratamento das séries, a modelagem estatística (PCA e regressão) e a visualização. O mesmo caminho — coletar, tratar, modelar, visualizar — se repete em quase todo problema de análise macrofinanceira. O que muda é a aplicação:

  • Economistas: monitorar o aperto ou afrouxamento das condições financeiras como leitura complementar à política monetária.
  • Analistas de mercado: antecipar inflexões do ciclo, já que condições financeiras costumam anteceder a atividade.
  • Gestores e traders: ler o ambiente de risco de forma sintética e decompô-lo por fator para entender de onde vem o estresse.
  • Risco e research: construir indicadores próprios, calibrados à carteira ou ao mandato, em vez de depender de um número fechado.

Aprender a linguagem é o que abre a porta para todas essas frentes: com o método na mão, o mesmo pipeline vira dezenas de indicadores.

Você viu como funciona. Aprenda a construir do zero

Coletar dados de APIs públicas, tratar séries temporais, aplicar PCA e regressão e montar gráficos: é exatamente o que você pratica, do zero e sem pré-requisito, na formação Do Zero à Análise de Dados Econômicos e Financeiros usando Python e IA. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.

Conheça a formação →Ver o AM Black →

Leia também:


Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print
Análise Macro © 2011 / 2026

comercial@analisemacro.com.br – Rua Visconde de Pirajá, 414, Sala 718
Ipanema, Rio de Janeiro – RJ – CEP: 22410-002

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp