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

Previsão do Desemprego: Redes Neurais vs. Previsões do Focus

Não é de hoje que técnicas de machine learning vêm sendo usadas para explorar características não lineares de séries temporais (econômicas), especialmente para finalidade de previsão. Como exemplo, apresentamos uma abordagem híbrida do modelo NNAR e comparamos suas previsões com as de mercado, encontrando resultados em linha com a literatura recente.

Incorporando IA na previsão do PIB

O PIB é uma variável econômica complexa e de difícil previsão. Neste artigo, mostramos que unir métodos simples e métodos avançados pode aumentar significativamente a previsibilidade do crescimento da economia.

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.