Previsão com Vetores Autoregressivos

Neste artigo verificamos como é possível realizar previsão de variáveis macroeconômicas utilizando os Vetores Autoregressivos.

Modelos multivariados estacionários

Processos autorregressivos de média móvel (ARMA) podem ser facilmente estendidos para o caso multivariado, onde o processo estocástico que gera um vetor de séries temporais é modelado

O mais comum dentre eles é o vetor autorregressivo (VAR), isto porque pode ser facilmente estimado via mínimos quadrados ordinários ou método bayesiano, as suas propriedades têm sido extensivamente estudadas na literatura e também porque são bastante similares às regressões lineares múltiplas.

Um VAR irá descrever a evolução dinâmica de um determinado número de variáveis de acordo com a história comum entre elas. Para ilustrar, considere um vetor autorregressivo de ordem 1, como

(1)   \begin{align*} &Y_{t} = \delta_{1} + \theta_{11} Y_{t-1} + \theta_{12} X_{t-1} + \epsilon_{1t} \\ &X_{t} = \delta_{2} + \theta_{21} Y_{t-1} + \theta_{22} X_{t-1} + \epsilon_{2t} \end{align*}

onde \epsilon_{1t} e \epsilon_{2t} são ruídos brancos independentes das **estórias** de Y e X, mas que podem estar correlacionados.

Se, por exemplo, \theta_{12} \neq 0, significa dizer que a **estória** de X ajuda a explicar Y. O sistema acima, a propósito, pode ser representando da seguinte forma, como faz @tsay:

(2)   \begin{equation*} z_{t} = \phi_{0} + \phi_{1} z_{t-1} + \alpha_{t} \end{equation*}

Ou, ainda, como

    \begin{align*} \begin{bmatrix} z_{1t} \\ z_{2t} \end{bmatrix} = \begin{bmatrix} \phi_{10} \\ \phi_{20} \end{bmatrix} + \begin{bmatrix} \phi_{1,11} & \phi_{1,12} \\ \phi_{1,21} & \phi_{1,22} \end{bmatrix} \begin{bmatrix} z_{1, t-1} \\ z_{2, t-1} \end{bmatrix} + \begin{bmatrix} \alpha_{1t} \\ \alpha_{2t} \end{bmatrix} \end{align*}

Esse sistema de ordem 1, a propósito, pode ser generalizado para qualquer ordem p como

    \[z_{t} = \phi_{0} + \sum_{i=1}^{p} \phi_{i} z_{t-i} + \alpha_{t}\]

{#eq-varp}

onde z_{t} para t = 1,...,T é uma vetor M x 1 contendo observações de M séries temporais, \phi_{0} é um vetor M x 1 de interceptos, \phi_{i} é uma matriz M x M de coeficientes e \alpha_{t} é um vetor M x 1 de erros, independentes e identicamente distribuídos, com média zero e covariância igual a \Sigma_{\alpha}.

É conveniente representar o VAR com a utilização do operador defasagem \phi (L) = I_{k} - \phi_{1} L - ... - \phi_{p} L^{p} como

(3)   \begin{equation*} \phi (L) z_{t} = \phi_{0} + \alpha_{t} \end{equation*}

Estimação de um VAR

Para obter todo o código em R e Python para os exemplos abaixo, faça parte do Clube AM, o repositório de códigos da Análise Macro, contendo exercícios semanais.

Para ilustrar, vamos considerar um exemplo envolvendo algumas variáveis bastante conhecidas:

  1. inflação mensal medida pelo IPCA;
  2. expectativas em t para t+1 para a taxa de inflação mensal;
  3. IC-br;
  4. taxa de câmbio R/US;
  5. taxa Selic anualizada;
  6. taxa de desemprego medida pela PNAD Contínua.
  7. IBC-br

Os dados são importados abaixo.

Código

Um ponto importante que devemos nos atentar, para garantir a estabilidade do modelo, é a estacionariedade das séries. O gráfico abaixo deixa isso mais claro.

Acaso o leitor aplique o Teste ADF Sequencial visto na seção anterior, verá que algumas de nossas séries não são estacionárias. Isso, como vimos, pode ser um problema para a estabilidade do nosso VAR.

Código
       ipca desocupacao       eipca      cambio       selic       ic_br 
          0           1           1           1           2           1 
  ibc_br_sa 
          1 

Assim, de modo a contornar o problema, vamos simplesmente diferenciar as séries que consideramos não estacionárias. Vejamos agora o resultado visual das séries diferenciadas.

Estimando o modelo VAR

Abaixo, são produzidos 3 modelos, cada um com determinado número de lags de acordo com diferentes critérios de informação (AIC, AICc e BIC).

Código
.model term .response estimate std.error statistic p.value
var_aicc lag(ipca,1) ipca 0.4022673 0.1082380 3.7165076 0.0003219
var_aicc lag(eipca_diff,1) ipca 0.4877298 0.2086646 2.3373860 0.0212623
var_aicc lag(selic_diff,1) ipca -0.0122650 0.1677115 -0.0731315 0.9418368
var_aicc lag(ic_br_diff,1) ipca 0.0071756 0.0036690 1.9557476 0.0530779
var_aicc lag(ibc_br_sa_diff,1) ipca 0.0185280 0.0160211 1.1564761 0.2500382
var_aicc lag(ipca,2) ipca 0.2386245 0.1347311 1.7711171 0.0793622

E geramos a previsão das variáveis conforme os gráficos abaixo:

___________________________________
Quer aprender mais?

Seja um aluno da nossa trilha de Macroeconomia Aplicada  e aprenda a criar projetos voltados para a Macroeconomia.

Referências

Hyndman, R. J., e G. Athanasopoulos. 2013. Forecasting: Principles and Practice. OTexts.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar automação com Python e IA na análise de ações

No cenário atual, profissionais de finanças buscam formas mais rápidas, eficientes e precisas para analisar dados e tomar decisões. Uma das grandes revoluções para isso é o uso combinado de Python, automação e modelos de linguagem grande (LLMs), como o Google Gemini. O dashboard que criamos é um ótimo exemplo prático dessa integração, reunindo dados, cálculos, visualizações e análise textual em um único ambiente.

Análise de ações com IA - um guia inicial

Neste artigo, você vai aprender a integrar IA na análise de ações de forma automatizada utilizando Python. Ao final, você terá um pipeline completo capaz de coletar dados de mercado, gerar gráficos, elaborar relatórios com linguagem natural.

Quais são as ferramentas de IA?

Um aspecto crucial dos Agentes de IA é a sua capacidade de tomar ações, que acontecem por meio do uso de Ferramentas (Tools). Neste artigo, vamos aprender o que são Tools, como defini-las de forma eficaz e como integrá-las ao seu Agente por meio da System Prompt. Ao fornecer as Tools certas para o seu Agente — e ao descrever claramente como essas Tools funcionam — você pode aumentar drasticamente o que sua IA é capaz de realizar.

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.