Um modelo de Vetores Autoregressivos (VAR) estimado no Python, com sete séries macroeconômicas brasileiras coletadas das APIs do Banco Central, previu a inflação dos 12 meses seguintes com erro médio de 0,25 ponto percentual. Neste tutorial, mostramos o caminho completo dessa previsão com VAR no Python: da coleta dos dados ao teste da qualidade do resultado.
O sistema reúne IPCA, expectativas de inflação, commodities, câmbio, Selic, desemprego e IBC-Br, de março de 2012 ao dado mais recente. O modelo aprende com a dinâmica conjunta dessas variáveis e projeta todas elas ao mesmo tempo — abaixo, o resultado para a série que mais interessa: o IPCA acumulado em 12 meses.

O gráfico resume o exercício: o modelo, estimado sem conhecer os últimos 12 meses da amostra, projeta a inflação estável em torno de 5,2%, enquanto o dado observado recuou até 3,8% antes de voltar a subir. O VAR acertou o patamar e errou as oscilações; o tutorial mostra como chegar a esse resultado e como interpretá-lo.
Quer reproduzir esta previsão?
O script completo em Python (coleta automática das 7 séries nas APIs do BCB, teste de estacionariedade, estimação do VAR e gráficos) vai para os assinantes do Boletim AM. Assine, é gratuito, e receba no seu e-mail o código pronto para rodar.
O que é um modelo VAR
O VAR é um sistema de equações em que cada variável é explicada pelos valores passados dela mesma e de todas as outras. A inflação de hoje depende da inflação, do câmbio, dos juros e da atividade de ontem; o câmbio de hoje depende das mesmas defasagens — e assim para cada série. Essa estrutura captura as relações cruzadas entre as variáveis, que um modelo de uma única equação ignora.
A ordem do modelo, chamada de p, define quantos meses de passado entram nas equações. Um VAR de ordem 1 usa apenas o mês anterior; um de ordem 10 enxerga quase um ano. Cada defasagem extra adiciona 49 coeficientes ao nosso sistema de 7 variáveis: mais memória significa mais parâmetros para estimar com a mesma amostra, o que melhora o ajuste ao passado e piora a previsão do futuro.
Outra vantagem prática: por prever todas as variáveis de uma vez, o VAR entrega um cenário completo e internamente consistente — a previsão de inflação convive com a previsão de câmbio e de juros que a geraram. Modelos univariados entregam previsões isoladas, que podem se contradizer entre si.
As sete variáveis do sistema
O exercício usa um sistema típico de macroeconomia brasileira, com séries mensais de março de 2012 (início da PNAD Contínua mensal) até o dado mais recente: o IPCA acumulado em 12 meses, a expectativa de inflação 12 meses à frente do boletim Focus, o IC-Br (índice de commodities do Banco Central), o câmbio BRL/USD, a Selic anualizada, a taxa de desemprego da PNAD Contínua e o IBC-Br, proxy mensal do PIB.

Nada disso vem de planilha baixada à mão: as séries são coletadas direto das APIs do Banco Central — o SGS para as seis primeiras e a API de Expectativas de Mercado para a mediana do Focus, agregada de diária para mensal. Rodar o script em qualquer data traz o exercício atualizado até o mês mais recente.
Como a previsão foi construída
O caminho tem cinco etapas encadeadas, e cada uma prepara o dado ou o modelo para a seguinte:
📥
🧪
✂️
⚙️
📈
Estacionariedade: o teste que decide o formato dos dados
O VAR clássico exige séries estacionárias — com média e variância estáveis no tempo. Estimar o modelo com séries de tendência produz o problema clássico da regressão espúria: coeficientes que sugerem relações inexistentes, herdadas das tendências comuns. A saída usual é a primeira diferença, que troca o nível da série pela sua variação mês a mês.
A decisão sai de um teste formal: aplicamos o teste de Phillips-Perron, cuja hipótese nula é a presença de raiz unitária (a série não é estacionária). O resultado foi uniforme na amostra atualizada — nenhuma das sete séries rejeita a raiz unitária em nível, e todas se tornam estacionárias na primeira diferença:
| Variável | PP nível (p-valor) | PP 1ª diferença (p-valor) | Conclusão |
|---|---|---|---|
| IPCA (acum. 12m) | 0,1387 | 0,0000 | I(1): diferenciar |
| Expectativa IPCA | 0,4481 | 0,0000 | I(1): diferenciar |
| IC-Br | 0,9399 | 0,0000 | I(1): diferenciar |
| Câmbio BRL/USD | 0,4655 | 0,0000 | I(1): diferenciar |
| Selic | 0,4920 | 0,0000 | I(1): diferenciar |
| Desemprego | 0,7525 | 0,0000 | I(1): diferenciar |
| IBC-Br | 0,8777 | 0,0000 | I(1): diferenciar |
Teste de Phillips-Perron nas sete séries, amostra 2012–2026. Fontes: BCB e IBGE.
Uma série nessa condição é chamada de integrada de ordem 1, ou I(1). Quando as variáveis são I(1), o rigor pede também um teste de cointegração — a verificação de relações de longo prazo entre elas; para manter o foco na previsão, o exercício deixa esse procedimento registrado como extensão.
Como as séries mensais carregam padrão de calendário, o modelo recebe ainda dummies sazonais: variáveis que valem 1 no mês correspondente e 0 nos demais, permitindo capturar efeitos fixos de cada mês do ano sem contaminar os coeficientes das defasagens.
A escolha da ordem: parcimônia vence
Quantos meses de passado o modelo deve enxergar? Os critérios de informação respondem equilibrando ajuste e complexidade. O AIC, mais tolerante com modelos grandes, sugeriu ordem 10; o BIC e o HQIC, que penalizam mais cada parâmetro extra, apontaram ordem 1. Seguimos o BIC: num sistema em que cada defasagem custa 49 coeficientes, a parcimônia costuma prever melhor fora da amostra.
Previsão honesta: o modelo não vê o gabarito
Os últimos 12 meses da amostra ficaram fora da estimação. O modelo parte da última observação do treino e projeta os 12 meses seguintes iterando as próprias equações — a previsão de um mês vira insumo da previsão do mês seguinte. A comparação com o observado, que o modelo nunca viu, mede a capacidade preditiva real, não a memória do ajuste.

Quanto o modelo erra: as métricas por variável
Duas métricas resumem a qualidade da previsão em cada série, na escala diferenciada: o RMSE (raiz do erro quadrático médio, que pune mais os erros grandes) e o MAE (o tamanho médio do erro, em pontos da própria série).
| Variável | RMSE | MAE |
|---|---|---|
| IPCA (variação do acum. 12m, p.p.) | 0,3140 | 0,2549 |
| Expectativa IPCA (p.p.) | 0,1489 | 0,1241 |
| IC-Br (pontos) | 10,7024 | 9,3849 |
| Câmbio (R$) | 0,1036 | 0,0903 |
| Selic (p.p.) | 0,1887 | 0,1700 |
| Desemprego (p.p.) | 0,1061 | 0,0787 |
| IBC-Br (pontos) | 0,5405 | 0,4546 |
Erro de previsão do VAR(1) nos 12 meses de teste, por variável. Fontes: BCB e IBGE.
Para o IPCA, o erro médio de 0,25 ponto percentual na variação mensal do acumulado confirma a leitura do primeiro gráfico: o modelo acompanha o patamar da inflação, mas suaviza os movimentos, porque a previsão converge rápido para a média condicional — comportamento típico de um VAR parcimonioso em horizontes longos.
As ferramentas por trás



O que o resultado revela
- O VAR captura o patamar, não as oscilações. A previsão de inflação ficou estável perto de 5,2% enquanto o observado variou entre 3,8% e 5,3%: em horizontes longos, a projeção converge para a média condicional do processo.
- A parcimônia venceu o ajuste. O BIC escolheu 1 defasagem contra as 10 do AIC; com 49 coeficientes por defasagem, o modelo pequeno generaliza melhor fora da amostra.
- O diagnóstico muda com a amostra. Na versão anterior deste exercício, o IBC-Br aparecia estacionário em nível; com os dados até 2026, todas as sete séries são I(1). Refazer os testes a cada atualização evita carregar uma especificação que os dados já não sustentam.
Considerações finais
Este exercício mostra que uma previsão macroeconômica multivariada, do tipo que sustenta relatórios de bancos e consultorias, pode ser construída com dados públicos e um script em Python: a coleta automática nas APIs do Banco Central, o teste formal de estacionariedade, a estimação do sistema e a avaliação honesta do erro fora da amostra.
O Python concentra todas as etapas num só ambiente — coleta, tratamento, modelagem e gráficos — com bibliotecas maduras para o dado brasileiro. O mesmo caminho se repete em quase todo problema aplicado de macroeconomia; o que muda é a pergunta:
- Analistas de mercado: constroem cenários de inflação, juros e câmbio internamente consistentes para subsidiar decisões de alocação.
- Economistas de empresas: projetam as variáveis que entram no orçamento e no planejamento de preços, com atualização automática a cada divulgação.
- Consultores e pesquisadores: avaliam efeitos dinâmicos entre variáveis — o VAR é a porta de entrada para funções impulso-resposta e decomposição de variância.
- Estudantes de economia: saem da teoria dos livros-texto para um modelo estimado com dado real, reprodutível e testável.
Aprender a linguagem abre todas essas frentes de uma vez.
Você viu a previsão pronta; aprenda a construí-la
Na Formação em Análise Macroeconômica, você aprende a coletar, tratar e modelar os dados da economia brasileira no Python — inflação, atividade, câmbio, juros e mercado de trabalho, com exercícios como este. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.
Leia também:
- Como construir um Vetor Autoregressivo Estrutural (SVAR) no Python?
- Vetores Autoregressivos Bayesianos
Referências: Hyndman, R. J., & Athanasopoulos, G. Forecasting: principles and practice. OTexts. | Lütkepohl, H. (2005). New Introduction to Multiple Time Series Analysis. Springer.