Usando um VECM para projetar a Dívida Bruta

[et_pb_section admin_label="section"][et_pb_row admin_label="row"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="justified" text_font="Verdana||||" text_font_size="18" use_border_color="off" border_color="#ffffff" border_style="solid"]

A trajetória da Dívida Bruta brasileira tem sido objeto de preocupação entre analistas e investidores. Exemplo disso foi o rebaixamento da nota de crédito do país pelas três principais agências de classificação de risco. Mas o que está por trás do aumento da relação Dívida/PIB? Quais são os determinantes do endividamento público? Como podemos modelar essa relação ao longo do tempo? Melhor: como podemos prever essa relação para os próximos meses? São essas e outras questões que abordamos em uma das seções do nosso Curso de Macroeconometria usando o R e na edição 33 do Clube do Código. Para isso, construímos um Modelo Vetor de Correção de Erros (VECM).

Com o código abaixo, nós coletamos os dados que utilizaremos, bem como fazemos os tratamentos necessários para tornar os dados comparáveis.


### Coletar os dados
dbgg = window(BETS.get(13762), start=c(2007,01))
selic = window(BETS.get(4189), start=c(2007,01))
inflacao = window(BETS.get(13522), start=c(2007,01))
pib = BETS.get(22099)
nfsp = window(BETS.get(5793), start=c(2007,01))
cambio = window(BETS.get(3697), start=c(2007,01))
### Construir variáveis
dpib = (((pib+lag(pib,-1)+lag(pib,-2)+lag(pib,-3))/4)/
((lag(pib,-4)+lag(pib,-5)+lag(pib,-6)+lag(pib,-7))/4)-1)*100
juroreal = (((1+(selic/100))/(1+(inflacao/100)))-1)*100
### Juntar os dados mensais
data = ts.intersect(dbgg, juroreal, nfsp, cambio)
### Trimestralizar
data = ts(aggregate(data, nfrequency=4, FUN=mean),
start=c(2007,01), freq=4)
### Juntar todos os dados
data = ts.intersect(data, dpib)
colnames(data) = c('dbgg', 'juroreal', 'nfsp', 'cambio', 'dpib')

Abaixo, visualizamos as séries.

Com os dados coletados e tratados, podemos iniciar o nosso exercício.

 

Construindo um Vetor de Correção de Erros

 

De forma a gerar um modelo para a Dívida Bruta, nós vamos construir um Vetor de Correção de Erros (VECM), uma vez que todas as séries são não estacionárias. Para isso, vamos nos basear no exercício realizado por Johansen e Juselius (1992), onde os autores utilizam um contexto de cointegração multivariada. Para começar, podemos especificar, como em Pfaff (2008) uma versão de um VECM, onde y_t, um vetor (Kx1) de séries no período t entram com defasagem t-p:

(1)   \begin{align*} y_t& = \tau_1 \Delta y_{t-1} + ... + \tau_{p-1} \Delta y_{t-p+1} + \Pi y_{t-p} + \mu + \Phi D_t + \varepsilon_t \\ \tau_i& = - (I - \Pi_1 - ... - \Pi_i) \quad \text{para} \quad i = 1,...,p-1 \\ \Pi& = - (I - \Pi_1 - ... - \Pi_p) \end{align*}

onde \Pi_i(i=1,...,p) é uma matriz (KxK) de coeficientes das variáveis endógenas defasadas, \mu é um vetor (Kx1) de constantes, D_t é um vetor de variáveis não estocásticas, I é a matriz identidade (KxK), \tau_i(i=1,...,p) é a matriz que contém os impactos cumulativos de longo prazo e, por fim, \varepsilon_t é o vetor (Kx1) de termos de erros, supostamente i.i.d. tal que \varepsilon_t \sim \mathcal{N}(0,\Sigma).

Uma vez especificado o modelo, passamos agora à fase prática. Existe, afinal, cointegração entre as séries envolvidas? Utilizamos o teste de Johansen abaixo para verificar.


### Selecionar Defasagem
def = VARselect(data,lag.max=12,type="both")
### Teste de Cointegração Máximo AutoValor
jo.eigen = ca.jo(data, type='eigen', K=5, ecdet='const', 
 spec='transitory')

Não podemos rejeitar a existência de três vetores de cointegração pelo teste do máximo autovalor. Com efeito, montamos o VECM e geramos as previsões. Abaixo um gráfico que ilustra a projeção da Dívida Bruta do 2º trimestre de 2017 ao quarto trimestre de 2018. Pelo modelo estimado, a Dívida Bruta chega a 85% no final do período.

 

 

 

 

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

Como usar modelos do Sklearn para previsão? Uma introdução ao Skforecast

Prever séries temporais é uma tarefa frequente em diversas áreas, porém exige conhecimento e ferramentas específicas. Os modelos de machine learning do Sklearn são populadores, porém são difíceis de aplicar em estruturas temporais de dados. Neste sentido, introduzimos a biblioteca Skforecast, que integra os modelos do Sklearn e a previsão de séries temporais de forma simples.

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.