O IBC-Br é um bom preditor do PIB?

[latexpage] Antes de todo o tsunami político que o Brasil se envolveu na semana passada, vínhamos experimentando uma gradual retomada do nível de atividade. Uma das formas possíveis de capturar isso é através do Índice de Nível de Atividade do Banco Central, o IBC-Br. Abaixo, baixamos os números índices do mesmo a partir do Sistema de Séries Temporais do BCB com o pacote BETS. [code lang=”r”] library(BETS) ibc = BETS.get(24363) ibc.sa = BETS.get(24364) ibc = ts.intersect(ibc, ibc.sa) [/code] Uma vez que tenhamos baixado as séries, podemos agora criar algumas métricas, de forma a avaliar o crescimento do índice no período recente. [code lang=”r”] ## Variação mensal vmensal = (ibc[,2]/lag(ibc[,2],-1)-1)*100 ## Interanual interanual = (ibc[,1]/lag(ibc[,1],-12)-1)*100 ## Anual anual = ibc[,1] anual = (((anual+lag(anual,-1)+lag(anual,-2)+lag(anual,-3)+lag(anual,-4)+lag(anual,-5)+lag(anual,-6)+lag(anual,-7)+lag(anual,-8)+lag(anual,-9)+lag(anual,-10)+lag(anual,-11))/12)/ ((lag(anual,-12)+lag(anual,-13)+lag(anual,-14)+lag(anual,-15)+lag(anual,-16)+lag(anual,-17)+lag(anual,-18)+lag(anual,-19)+lag(anual,-20)+lag(anual,-21)+lag(anual,-22)+lag(anual,-23))/12)-1)*100 # Trimestral Marginal trimestral = (((ibc[,2]+lag(ibc[,2],-1)+lag(ibc[,2],-2))/3)/ ((lag(ibc[,2],-3)+lag(ibc[,2],-4)+lag(ibc[,2],-5))/3)-1)*100 [/code] De posse dessas métricas, podemos agora criar uma tabela resumo com os dados dos últimos meses. [code lang=”r”] library(xtable) table.vmensal = tail(vmensal, n=3) table.trimestral = tail(trimestral, n=3) table.interanual = tail(interanual, n=3) table.anual = tail(anual, n=3) table = cbind(table.vmensal, table.trimestral, table.interanual, table.anual) colnames(table) = c(‘Mensal’, ‘Trimestral’, ‘Interanual’, ’12 meses’) rownames(table) = c(‘Jan/17’, ‘Fev/17’, ‘Mar/17′) print(xtable(table, digits=2, caption=’Variação do IBC-Br (%)’), format.args=list(decimal.mark=’,’), font.size=’footnotesize’, type=’html’) [/code] Abaixo, a tabela…

Variação do IBC-Br (%)
MensalTrimestralInteranual12 meses
Jan/170,370,160,42-3,59
Fev/171,370,69-0,65-3,28
Mar/17-0,441,121,05-2,63
  Também podemos construir alguns gráficos para ver a evolução das métricas no período recente. [code lang=”r”] library(forecast) library(ggplot2) library(gridExtra) g1 = autoplot(window(vmensal, start=c(2014,06)))+ xlab(”)+ylab(‘%’)+ labs(title=’Variação mensal’, subtitle=’Mês t/Mês t-1′)+geom_line(colour=’red’, size=.8)+ scale_x_discrete(limits=2014:2017) g2 = autoplot(window(trimestral, start=c(2014,06)))+ xlab(”)+ylab(‘%’)+ labs(title=’Variação trimestral’, subtitle=’3 meses contra 3 meses anteriores’, caption=’IBC-Br é o índice de atividade do Banco Central.’)+ geom_line(colour=’darkblue’, size=.8)+ scale_x_discrete(limits=2014:2017) g3 = autoplot(window(interanual, start=c(2014,06)))+ xlab(”)+ylab(‘%’)+ labs(title=’Variação interanual’, subtitle=’Mês t/Mês t-12′)+ geom_line(colour=’darkgreen’, size=.8)+ scale_x_discrete(limits=2014:2017) g4 = autoplot(window(anual, start=c(2014,06)))+ xlab(”)+ylab(‘%’)+ labs(title=’Variação em 12 meses’, subtitle=’12 meses contra 12 meses anteriores’, caption=’Fonte: analisemacro.com.br com dados do BCB.’)+ geom_line(colour=’blue’, size=.8)+ scale_x_discrete(limits=2014:2017) grid.arrange(g1, g3, g2, g4, top = "Evolução do IBC-Br ao longo do tempo", layout_matrix = matrix(c(1,2,3,4), ncol=2, byrow=TRUE)) [/code] Abaixo, os gráficos… Os dados na ponta do índice parecem indicar uma retomada. O quanto dessa retomada pode ser visto no PIB a ser divulgado na próxima semana? Em outras palavras, de que forma o IBC-Br e o PIB estão associados? É o que procuramos fazer na 31ª edição do Clube do Código. Abaixo, mostramos um resumo do exercício.

Avaliando o IBC-Br como preditor do PIB

Antes de mais nada, precisaremos pegar os dados do PIB, da mesma forma que coletamos os dados do IBC-Br. [code lang=”r”] pib = BETS.get(22109) [/code] Um gráfico dos dois índices é posto abaixo. De modo a tornar os dados do PIB e do IBC-Br comparáveis, precisaremos fazer alguns ajustes. Nesse exercício, vamos comparar a variação marginal dos dois índices. Isto é, estamos interessados em \begin{equation} vm = \frac{I_t}{I_{t-1}} \end{equation} Já calculamos acima a variação trimestral do IBC-Br. Uma vez calculada essa métrica, agora nós vamos trimestralizar os dados. Para fazer isso, vamos pegar apenas as variações trimestrais nos meses de março, junho, setembro e dezembro. O código abaixo faz isso. [code lang=”r”] trimestral = window(trimestral, start=c(2004,01)) dates = as.Date(time(trimestral)) ibc.tri = xts(trimestral, dates) ibc.tri = ibc.tri[.indexmon(ibc.tri) %in% c(1,4,7,10)] ibc.tri = ts(ibc.tri, start=c(2004,01), freq=4) [/code] Obtida a variação trimestral do IBC-Br, agora devemos obter a do PIB. Feito isso, juntamos os dados em uma mesma matriz, como no código abaixo. [code lang=”r”] # Obter a Variação Trimestral Marginal do PIB pib.tri = (pib/lag(pib,-1)-1)*100 # Juntar os dois data = ts.intersect(pib.tri, ibc.tri) colnames(data) = c(‘pib’, ‘ibc’) [/code] Abaixo, um gráfico das séries. Com os dados devidamente prontos, podemos agora construir um modelo linear simples, como abaixo: \begin{equation} pib_t = \alpha + \beta ibc_t + \varepsilon_t \label{modelo} \end{equation} O código abaixo operacionaliza. [code lang=”r”] # Modelo modelo = lm(pib~ibc, data=data) [/code] A Tabela abaixo traz os dados da regressão. Pelo modelo, observamos que uma mudança de um ponto percentual no IBC-BR equivale a uma variação de 0.79 no PIB.  
Dependent variable:
pib
ibc0.790***
(0.060)
Constant0.165*
(0.095)
Observations52
R20.775
Adjusted R20.770
Residual Std. Error0.641 (df = 50)
F Statistic171.960*** (df = 1; 50)
Note:*p<0.1; **p<0.05; ***p<0.01
  Com o modelo em mãos, podemos avaliar o erro de previsão do mesmo. A tabela abaixo resume.
MERMSEMAEMPEMAPEMASEACF1Theil’s U
Training set-0.000.660.53196.04375.080.62
Test set-0.490.600.52-42.43136.980.610.170.96
  O modelo proposto pela equação tende a superestimar a variação marginal do PIB em 0.49 pontos percentuais. O IBC-Br, nas palavras do Banco Central, tem como objetivo refletir a evolução contemporânea da atividade econômica do país. Por ter frequência mensal, tem sido frequentemente apontado como uma espécie de prévia do PIB. Nesse exercício, por suposto, vimos que os resultados do IBC-Br devem ser vistos com cautela, se associados ao PIB.

Vítor Wilher

Vítor Wilher é Bacharel e Mestre em Economia, pela Universidade Federal Fluminense, tendo se especializado na construção de modelos macroeconométricos, política monetária e análise da conjuntura macroeconômica doméstica e internacional. Sua dissertação de mestrado foi na área de política monetária, titulada "Clareza da Comunicação do Banco Central e Expectativas de Inflação: evidências para o Brasil", defendida perante banca composta pelos professores Gustavo H. B. Franco (PUC-RJ), Gabriel Montes Caldas (UFF), Carlos Enrique Guanziroli (UFF) e Luciano Vereda Oliveira (UFF). É o criador da Análise Macro, empresa especializada em treinamento e consultoria em linguagens de programação voltadas para data analysis, construção de cenários e previsões, fundador do hoje extinto Grupo de Estudos sobre Conjuntura Econômica (GECE-UFF), Visiting Professor da Universidade Veiga de Almeida, onde dá aulas nos cursos de MBA da instituição e membro do Comitê Gestor do Instituto Millenium. Escreveu para o Terraço Econômico em 2017.
Yogh - Especialistas em WordPress