Previsão com Vetores Autoregressivos no Python

Previsões com Vetores Autoregressivos no Python

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.

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.

Vetores AutoRegressivos (VAR)

O modelo VAR(p) para um vetor de variáveis endógenas \mathbf{y}_t é dado por:

    \[\mathbf{y}_t = A_1 \mathbf{y}_{t-1} + A_2 \mathbf{y}_{t-2} + \dots + A_p \mathbf{y}_{t-p} + \varepsilon_t,\]

onde:
- \mathbf{y}_t é um vetor (k \times 1) de variáveis endógenas,
- A_i são matrizes de coeficientes (k \times k),
- \varepsilon_t é um vetor de inovações com média zero e covariância constante.

Exemplo econômico com Vetores AutoRegressivos

Vamos aplicar o modelo VAR a um conjunto de séries macroeconômicas mensais:

- Inflação acumulada em 12 meses (IPCA);

- Expectativas de inflação para os próximos 12 meses (EIPCA);

- IC-Br (Indicador de Commodities do Banco Central);

- Câmbio BRL/USD;

- Taxa Selic (anualizada);

- Taxa de desemprego (PNAD Contínua);

- IBC-Br (proxy mensal do PIB).

Dados

As séries são mensais, com origem em fontes como IBGE e BCB. Abaixo, visualizamos as séries presentes na modelagem.

Variáveis Selecionadas para previsão com Vetor AutoRegressivo

Passos para a Previsão de Vetores AutoRegressivos

1. Verificar estacionariedade das séries com o teste de Phillips-Perron (PP);

2. Diferenciar as séries quando necessário para garantir estacionariedade;

3. Dividir os dados em conjuntos de treino e teste;

4. Determinar a ordem ótima de defasagem do VAR;

5. Estimar o modelo VAR com as séries estacionárias;

6. Realizar previsões para o período de teste.

Obs. para aplicar VAR em variáveis não estacionárias em nível e estacionárias em I(1) é importante a verificação de cointegração, entretando, deixamos de lado esse procedimento.

Estacionariedade das variáveis

Realizamos o teste de Phillips-Perron (PP). O resultado está resumido abaixo:

Variável PP Nível (p-valor) PP 1ª Dif. (p-valor) Conclusão
IPCA 0.1564 0.0000 1ª Dif. Estacionária
Desemprego 0.6642 0.0000 1ª Dif. Estacionária
EIPCA 0.4175 0.0000 1ª Dif. Estacionária
Câmbio 0.7224 0.0000 1ª Dif. Estacionária
Selic 0.4578 0.0001 1ª Dif. Estacionária
IC-Br 0.7591 0.0000 1ª Dif. Estacionária
IBC-Br 0.0000 0.0000 Estacionária

Como a maioria das séries são integradas de ordem 1 (I(1)), utilizamos as primeiras diferenças para garantir estacionariedade no VAR.

Separacão Treino-Teste

Dividimos a amostra em duas partes:

  • Treino: Dados até 12 meses antes do fim da amostra.
  • Teste: Os últimos 12 meses, usados para avaliar a capacidade preditiva.

Determinação da Ordem de Defasagem do VAR

A ordem ideal do modelo foi determinada com base nos critérios AIC, BIC, FPE e HQIC:

  VAR Order Selection (* highlights the minimums)  
==================================================
       AIC         BIC         FPE         HQIC   
--------------------------------------------------
0       -3.241      -1.576     0.03921      -2.565
1       -10.70     -7.976*   2.279e-05     -9.593*
2       -10.88      -7.096   1.941e-05      -9.343
3       -11.10      -6.253  1.618e-05*      -9.129
4       -11.03      -5.125   1.831e-05      -8.630
5       -11.15      -4.191   1.754e-05      -8.325
6       -11.30      -3.281   1.696e-05      -8.043
7       -11.28      -2.193   2.044e-05      -7.585
8       -11.36      -1.220   2.319e-05      -7.240
9       -11.79     -0.5877   2.002e-05      -7.238
10     -12.03*      0.2321   2.277e-05      -7.047
--------------------------------------------------

Apesar do AIC sugerir ordem 10, usamos ordem 1 (com menor BIC e HQIC), para evitar sobreparametrização.

Previsão do Vetor Autoregressivo

Com o modelo estimado, realizamos previsões para os próximos 12 meses usando:

    \[\hat{\mathbf{y}}_{t+1} = A_1 \mathbf{y}_{t} + \hat{\varepsilon}_{t+1}\]

Assim comparamos as previsões dos dados de treinos com os valores observados contidos nos dados de teste.

Por conta da característica de um modelo Vetorial AutoRegressivo, é possível prever todas as séries do sistema, mas no gráfico abaixo mostramos somente a previsão da série do IPCA em 12 meses diferenciado.

Previsão do IPCA 12 meses diferenciado com Vetor AutoRegressivo

Quer aprender mais?

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


Referências:

  • Lütkepohl, H. (2005). New Introduction to Multiple Time Series Analysis.
  • Enders, W. (2014). Applied Econometric Time Series.
  • Statsmodels documentation - VAR

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

Dashboard Financeiro com IA e Shiny Python: Análise de Dados Abertos da CVM

Este artigo apresenta um tutorial completo sobre como construir uma ferramenta de análise financeira de ponta. Utilizando Shiny for Python, demonstramos a automação da coleta de dados das Demonstrações Financeiras Padronizadas (DFP) da CVM e o tratamento dessas informações com Pandas. O ponto alto do projeto é a integração da IA Generativa do Google Gemini, que atua como um assistente de análise, interpretando os dados filtrados pelo usuário e fornecendo insights contábeis e financeiros em tempo real. O resultado é um dashboard dinâmico que democratiza a análise de dados complexos e acelera a tomada de decisão.

Econometria, ML ou IA para previsão da PMS?

Prever a Pesquisa Mensal de Serviços (PMS/IBGE) é um desafio por natureza: trata-se de uma série mensal, sujeita a volatilidade e choques que vão de fatores sazonais a mudanças estruturais no setor. Para enfrentar esse problema, realizamos um exercício de comparação entre três abordagens de modelagem: econometria tradicional (ARIMA), machine learning (XGBoost) e inteligência artificial (TimeGPT).

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.