Category

Comentário de Conjuntura

CAGED antecipa retomada mais forte do nível de atividade

By | Comentário de Conjuntura

Na Edição 58 do Clube do Código, realizei uma série de testes estatísticos envolvendo o saldo dessazonalizado entre admitidos e demitidos do CAGED e o crescimento acumulado em 12 meses do PIB. Os resultados encontrados sugerem, de forma bastante forte, que existe causalidade no sentido do saldo do CAGED para o crescimento do PIB. Para a decomposição de variância, passados 12 períodos, o saldo do CAGED explica mais de 95% da variância no crescimento do PIB.

Com base nisso e nos resultados do CAGED no 3º tri, podemos dizer que tivemos um PIB acima do esperado na margem. É possível que o PIB tenha crescido até 0,5% frente ao segundo trimestre. Os dados do CAGED, por suposto, também costumam antecipar os resultados da PNAD Contínua. Isso significa que devemos ver uma redução na taxa de desemprego mais forte nos próximos meses, respeitada a sazonalidade da série, obviamente.

_______________________

Hiato do produto deve diminuir no 2º semestre

By | Comentário de Conjuntura

Os dados de nível de atividade divulgados até aqui dão conta de um 3º tri positivo na margem, o que nos leva a projetar uma redução do hiato do produto, a diferença entre o PIB efetivo e o potencial da economia. De fato, isso pode ser verificado empiricamente ao estimarmos uma Curva IS como

(1)   \begin{align*} h_t = \beta_0 + \sum_{i>0} \beta_{1i} h_{t-1} + \sum_{j>0} \beta_{2j} r_{t-j} +\sum_{k > 0} \beta_{3k} \Delta sup_{t-k} + u_t, \end{align*}

onde o hiato do produto h_t é função das suas próprias defasagens, do juro real ex-ante r_{t-j} e da variação do resultado primário \Delta sup_{t-k}. As variáveis utilizadas para o exercício foram a série trimestral do hiato do produto divulgada pelo IPEA, o swap pré-DI 360 deflacionado pela expectativa de inflação 12 meses à frente o resultado primário estrutural da SPE. O gráfico abaixo ilustra as séries.

Ao estimarmos a Curva IS sugerida com os dados acima, vemos que a redução do juro real tem impacto positivo sobre o hiato. O impulso fiscal, por seu turno, medido como a diferença entre o resultado primário em t contra o mesmo em t-k, vai ter impacto negativo, considerando sup_{t-k} > sup_{t}. Já a desaceleração mundial, na falta de uma proxy para o mesma, é considera na Curva IS sugerida como um choque negativo de demanda. 

Dada a expectativa de queda na Selic, o juro ex-ante tem caído bastante nos últimos meses, sugerindo algum impacto expansionista sobre o hiato do produto nos próximos trimestres. Algum efeito, por suposto, deve ser sentido ainda nesse segundo semestre.

_________________________

(*) Conheça nosso Curso de Macroeconometria usando o R e aprenda a entender o organismo econômico por meio de equações!

Núcleos de Inflação seguem bem comportados

By | Comentário de Conjuntura

Ontem, comentei aqui nesse espaço sobre o cenário benigno para a inflação e como isso estava garantindo uma taxa básica de juros abaixo de 5% no final do ano. Hoje, vou detalhar um pouco melhor esse ponto a partir dos núcleos de inflação. A ideia de um núcleo é capturar a tendência da inflação ao longo do tempo, retirando assim variações idiossincráticas. Em outros palavras, busca capturar a persistência do aumento de preços ao longo do tempo. De modo a ilustrar, considere, por exemplo, que o preço de um bem/serviço {i} varie de acordo com a equação \pi_{i,t} = \pi_t + \mu_{i,t}, onde \pi_t representa uma tendência e \mu_{i,t} uma idiossincracia. Desse modo, para {n} bens/serviços, o núcleo será dado por:

(1)   \begin{align*} \pi_t^{nucleo} = \sum_{i=1}^{n} \omega_{i}\pi_{i,t} - \sum_{i=1}^{n} \omega_{i}\mu_{i,t} \end{align*}

Em outras palavras, o objetivo do núcleo é reconhecer e retirar a parte idissiocrática, \sum_{i=1}^{n} \omega_{i}\mu_{i,t}, concentrando-se na verdadeira tendência da variação dos preços ao longo do tempo. Não à toa, Bancos Centrais de todo o mundo procuram construir e acompanhar medidas de núcleo de inflação. No Brasil, em particular, temos atualmente sete medidas de núcleo. Para uma explicação completa sobre os núcleos de inflação construídos pelo BCB, ver o Estudo Especial 17/2018 Novas Medidas de Núcleos de Inflação.

De modo a ilustrar o comportamento da média desses núcleos ao longo do tempo, bem como comparar com a inflação cheia, vamos criar um gráfico com o comportamento de ambas as séries. Para isso, precisaremos primeiro carregar alguns pacotes, como abaixo.


## Carregar pacotes
library(tidyverse)
library(readxl)
library(sidrar)
library(ggplot2)
library(forecast)
library(tstools)
library(scales)
library(png)
library(grid)

Vamos baixar o número-índice do IPCA a partir do pacote sidrar e posteriormente podemos criar a inflação mensal e a acumulada em 12 meses. O código abaixo implementa.


## Criar Inflação mensal e acumulada em 12 meses
ipca_indice = get_sidra(api='/t/1737/n1/all/v/2266/p/all/d/v2266%2013')
ipca_indice = ts(ipca_indice$Valor, start=c(1979,12), freq=12)
ipca_mensal = round((ipca_indice/stats::lag(ipca_indice,-1)-1)*100,2)
ipca_anual = round((ipca_indice/stats::lag(ipca_indice,-12)-1)*100,2)

O número-índice do IPCA tem início em dezembro de 1979, pegando assim toda a hiperinflação da década de 80. Não queremos isso, então pegamos apenas uma amostra dos dados, começando em junho de 2007, quando os choques provenientes da eleição do ex-presidente Lula já haviam se dissipado.


## Criar amostras
ipca_indice_subamostra = window(ipca_indice, start=c(2007,06))
ipca_mensal_subamostra = window(ipca_mensal, start=c(2007,06))
ipca_anual_subamostra = window(ipca_anual, start=c(2007,06))

Uma vez que tenhamos a inflação acumulada em 12 meses, vamos agora pegar os núcleos de inflação. Você pode baixar os dados no Sistema de Séries Temporais do Banco Central e depois importar para o R como abaixo. Observe que o código utiliza pipes, de modo já a acumular os dados em 12 meses e se concentrar na amostra que queremos.


## Núcleos
nucleos_12m = read_excel('nucleos.xlsx')[,-1] %>%
ts(start=c(1999,06), freq=12) %>%
acum_p(12) %>%
ts(start=c(1999,06), freq=12) %>%
window(start=c(2007,06))

De posse de todos os dados, podemos agora construir o nosso gráfico com o pacote ggplot2, como no código a seguir.


## Gráfico
media.nucleos = rowMeans(nucleos_12m)
meta = c(rep(4.5, length(media.nucleos)-8), rep(4.25, 8))
time = seq(as.Date('2007-06-01'), as.Date('2019-08-01'), by='1 month')
df = data.frame(time=time, meta=meta, nucleos=round(media.nucleos,2),
inflacao=ipca_anual_subamostra)

img <- readPNG('logo.png')
g <- rasterGrob(img, interpolate=TRUE)

ggplot(df, aes(x=time))+
annotate("rect", fill = "gray", alpha = 0.6,
xmin = as.Date('2016-01-01'),
xmax = as.Date('2019-08-01'),
ymin = -Inf, ymax = Inf)+
geom_line(aes(y=inflacao, colour='Inflação 12 meses'), size=.8)+
geom_line(aes(y=meta, colour='Meta de Inflação'), size=.8)+
geom_line(aes(y=nucleos, colour='Média dos 7 Núcleos'), size=.8)+
scale_colour_manual('',
values=c('Inflação 12 meses'='darkblue',
'Meta de Inflação'='red',
'Média dos 7 Núcleos'='#56B4E9'))+
theme(legend.position = 'top')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
xlab('')+ylab('% a.a.')+
labs(title='Inflação vs. Núcleos de Inflação',
caption='Fonte: analisemacro.com.br com dados do BCB.')+
theme(panel.background = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.background = element_rect(fill='#8abbd0'),
axis.line = element_line(colour='black',
linetype = 'dashed'),
axis.line.x.bottom = element_line(colour='black'),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(.2,.8),
legend.background = element_rect((fill='#acc8d4')),
legend.key = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.margin=margin(5,5,15,5))+
annotation_custom(g,
xmin=as.Date('2016-06-01'),
xmax=as.Date('2019-06-01'),
ymin=8.5, ymax=11)

E assim temos um gráfico com o comportamento da inflação cheia e a média dos 7 núcleos construídos e divulgados pelo Banco Central.

Como é possível observar no gráfico acima, a média dos 7 núcleos segue bem comportada na margem - 3,17% no acumulado até agosto -, bem abaixo da meta de inflação para esse ano, que é de 4,25%. Mesmo a inflação cheia também está abaixo da meta e a expectativa, como notei ontem, é que feche próximo a 3,42% no final de 2019. Se os núcleos de inflação forem bons preditores para a inflação no curto prazo - ver, por exemplo, Forecasting inflation in Latin America with core measures, publicado no International Journal of Forecasting - podemos considerar que na ausência de choques relevantes - principalmente, em relação ao câmbio - a inflação tanto esse quanto no próximo ano dá sinais de ficar mesmo abaixo da meta, abrindo caminho para mais cortes na taxa básica de juros nas próximas reuniões do COPOM.

___________________

(*) O script completo do exercício estará disponível logo mais no Clube do Código.

(**) No nosso Curso de Análise de Conjuntura usando o R, nós destrinchamos o IPCA na parte de inflação.

Produção industrial de agosto gera ânimo com 3º tri

By | Comentário de Conjuntura

Há alguns dias, comentei nesse espaço sobre os bons números de julho na PMC e PMS e o resultado frustrante da indústria no mesmo mês - ver aqui. O resultado da produção industrial nos meses de agosto e setembro parecia aquela altura ser o fiel da balança para um 3º tri positivo. Pois bem, ontem o IBGE divulgou que a indústria geral cresceu 0,8% na margem - contra o mês de julho. A tabela abaixo faz um resumo da pesquisa nos últimos três meses.

Métricas da Indústria Geral (%)
Mensal Interanual Trimestral Anual
2019 Jun -0,6 -5,8 -0,1 -0,7
2019 Jul -0,2 -2,4 -0,3 -1,3
2019 Aug 0,8 -2,2 0,0 -1,7

É o terceiro resultado positivo na margem esse ano, para uma produção industrial bastante machucada pelos problemas na Argentina. De modo a ilustrar, ploto abaixo o número-índice dessazonalizado da produção industrial.

Como se vê, os últimos meses têm sido marcados por queda no índice, após o choque pronunciado na série, causado pela greve dos caminhoneiros. O gráfico abaixo traz as métricas obtidas a partir dos números-índices da produção industrial.

Como se vê, é difícil extrair alguma tendência com base apenas nos dados da produção industrial. Há alguma esperança, contudo, que o resultado de agosto se repita em setembro, o que abre boas perspectivas para o PIB do 3º tri. Com efeito, esperamos, agora, por um resultado mais próximo de 0,4% na margem no PIB do 3º trimestre.

Uma apresentação da pesquisa feita em RMarkdown está disponível aqui.

_________________________

Como calcular o juro real ex-ante usando o R

By | Comentário de Conjuntura

Ontem, o jornal Valor Econômico deu destaque para o fato do juro real ex-ante ter atingido a marca histórica de 1,37% a.a., o menor patamar da série, ao se considerar a série suavizada de expectativa de inflação do Banco Central. Vou falar um pouquinho sobre o impacto disso na economia brasileira. Mas antes, cumprindo a missão do Blog, vou ensinar a fazer a conta no R. Primeiro, vamos carregar alguns pacotes.


library(GetTDData)
library(readr)
library(xts)
library(forecast)
library(scales)
library(ggplot2)
library(mFilter)
library(grid)
library(png)
library(rbcb)

Pacotes carregados, você precisará pegar a série 7806 lá no site do Banco Central, que é o swap DI 360 diário. De posse do arquivo csv, você pode importá-lo como abaixo.


## Swap DI 360
swap = read_csv2('swap.csv',
col_types = list(col_date(format='%d/%m/%Y'),
col_double()))

Com o juro do swap em mãos, você pode agora pegar a série de expectativa de inflação com o pacote rbcb, como abaixo.


## Expectativa de Inflação 12 meses à frente
expinf = get_twelve_months_inflation_expectations('IPCA',
start_date = '2012-06-01')

Observe que eu peguei a expectativa de inflação 12 meses à frente. No tibble importado, entretanto, vem uma série de informações. Nós queremos apenas a média da série suavizada. Com o código abaixo, nós tratamos os nossos dados para termos exatamente o que queremos.


swap = xts(swap$swap, order.by = swap$date)
expinf12 = xts(expinf$mean[expinf$smoothed=='S'],
order.by = expinf$date[expinf$smoothed=='S'])
dataex = cbind(swap, expinf12)
dataex = dataex[complete.cases(dataex),]

Temos agora um objeto xts com as nossas duas séries devidamente tratadas. Tudo isso feito, podemos aplicar a seguinte fórmula aos nossos dados:

(1)   \begin{equation*}(1+r_{t+1}) = (1+i_t)/(1+E_t\pi_{t+1}) \end{equation*}

O código abaixo implementa.


juro_ex = (((1+(dataex[,1]/100))/(1+(dataex[,2]/100)))-1)*100

E a seguir um gráfico rápido...

Como se pode ver no gráfico, nós de fato já alcançamos esse patamar de juros lá no final de 2012. Mas, como a História iria mostrar, não era um nível sustentável, dado que foi alcançado na marra, via imposição do governo Dilma Rousseff. Já aqui, o enredo é completamente distinto. Principalmente porque a inflação efetiva está controlada, deve encerrar 2019 abaixo da meta, refletindo o bom trabalho do Banco Central. Isso leva a termos expectativas de inflação ancoradas, cenário bastante distinto do final de 2012.

De modo a comparar, veja o que está acontecendo com os títulos públicos brasileiros, tomando como exemplo a NTN-B com vencimento em 2050.

yield do título alcançou o valor de 3,57% na ponta, o mínimo histórico. Tanto um quanto o outro refletem a queda da taxa básica de juros, em um cenário de expectativas de inflação ancoradas, grave ociosidade da economia e um amplo conjunto de reformas que estão sendo feitas no país.

O juro da NTN-B 2050, diga-se, é uma espécie de proxy para o que os economistas chamam de juro neutro ou juro de equilíbrio. Nesses termos, como tem apontado outros estudos sobre o tema, é possível que o nosso juro de equilíbrio tenha caído nos últimos anos, em função do conjunto de reformas que foi feito no país. Em particular, a estipulação do teto de gastos, a mudança na taxa de juros que serve de base para os empréstimos do BNDES e agora com a reforma da previdência.

O fato, portanto, do juro real ex-ante estar próximo a 1,37% na ponta indica que a política monetária está em posição expansionista, mesmo considerando uma queda expressiva do juro de equilíbrio da economia. Se vai ter efeito sobre a economia, aí já são outros quinhentos...

_____________________________

O código completo do exercício estará disponível mais tarde no repositório do Clube do Código.

Cadastre-se na newsletter
e receba nossas novidades em primeira mão!