All Posts By

Vitor Wilher

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!

Análise do IBC-Br com o R

By | Indicadores

A deflação de setembro e a divulgação da POF 2017-2018, que traz novos pesos para os grupos do IPCA, trouxeram revisões importantes para a inflação nesse e no próximo ano. A expectativa para a inflação medida pelo IPCA em 2019 caiu de 3,42% para 3,28%, enquanto para o ano que vem a revisão foi de 3,78% para 3,73%. Esse último dado deve cair mais, à medida que as instituições avaliem melhor o impacto deflacionário da POF no ano que vem. Em outras palavras, há uma avenida aberta para a redução da Selic.

Hoje, a propósito, o Banco Central divulgou o seu IBC-Br, que busca avaliar o nível de atividade com base em pesquisas de periodicidade mensal. É um espécie de sumário das pesquisas recém divulgadas: PIM-PF, PMS e PMC. A tabela abaixo resume os dados do índice nos últimos três meses.

Variação do IBC-Br (%)
Mensal Trimestral Interanual Anual
Jun/19 0,32 -0,14 -1,47 1,15
Jul/19 -0,07 0,92 1,62 1,13
Ago/19 0,07 0,90 -0,73 0,87

Como se vê, o resultado de agosto mostra por um lado um avanço na margem - contra o mês anterior - e uma retração na comparação interanual - contra o mesmo mês do ano anterior. No acumulado em 12 meses, o índice cresceu 0,87% até agosto, na comparação com os 12 meses anteriores. Abaixo, um resumo da evolução das principais métricas calculadas a partir dos números-índices do IBC-Br.

 

No nosso Curso de Análise de Conjuntura usando o R, nós temos uma apresentação completa sobre como tratar o índice. Ela está disponível aqui.

________________

Loops no R e a contribuição dos grupos do IPCA para a inflação cheia

By | Dicas de R

A inflação foi o tema recorrente no Blog essa semana. Para fechar a discussão sobre isso, imagine que você estivesse interessado em ver a contribuição dos 9 grupos do IPCA para a inflação cheia ao longo do tempo. De modo a construir um gráfico como esse, podemos usar o R, de modo a baixar com o pacote sidrar as variações e os pesos desses nove grupos do IPCA diretamente do site do SIDRA/IBGE, conforme o código abaixo - saiba mais em nosso Curso de Análise de Conjuntura usando o R.

## Carregar pacotes
library(sidrar)
## Baixar e tratar os dados
tab1 = get_sidra(api='/t/2938/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')
tab2 = get_sidra(api='/t/1419/n1/all/v/63,66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202,v66%204')

Uma vez que tenhamos baixado os dados, é preciso organizá-los, transformando-os em uma matriz legível. Para isso, nós podemos utilizar um loop de modo a não ter de pegar um a um os dados de variação e peso para cada mês. Isso é feito com o código a seguir.


series = c(7170, 7445, 7486, 7558, 7625, 7660,
7712, 7766, 7786)

names = c('Alimentos', 'Habitação', 'Art de Resid',
'Vestuário', 'Transporte', 'Saúde e cuid pessoais',
'Despesas Pessoas', 'Educação', 'Comunicação')

var1 = matrix(NA, ncol=length(series), 
nrow=nrow(tab1)/length(series)/2)

peso1 = matrix(NA, ncol=length(series), 
nrow=nrow(tab1)/length(series)/2)

var2 = matrix(NA, ncol=length(series), 
nrow=nrow(tab2)/length(series)/2)

peso2 = matrix(NA, ncol=length(series), 
nrow=nrow(tab2)/length(series)/2)

for(i in 1:length(series)){
  
  var1[,i] <- tab1$Valor[tab1$`Variável (Código)`==63&
                           tab1$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
  
  var2[,i] <- tab2$Valor[tab2$`Variável (Código)`==63&
                           tab2$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
  
  peso1[,i] <- tab1$Valor[tab1$`Variável (Código)`==66&
                            tab1$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
  
  peso2[,i] <- tab2$Valor[tab2$`Variável (Código)`==66&
                            tab2$`Geral, grupo, subgrupo, item e subitem (Código)`==series[i]]
}
variacao = ts(rbind(var1, var2), start=c(2006,07), freq=12)
peso = ts(rbind(peso1, peso2), start=c(2006,07), freq=12)

colnames(variacao) = names
colnames(peso) = names

Pronto! Agora, temos uma matriz que contém a variação dos nove grupos, desde julho de 2006; e outra que contém os pesos desses grupos para o mesmo período. Agora, nós podemos construir um gráfico que ilustre a contribuição desses grupos em cada um dos meses, bem como adicionamos a esse gráfico a inflação mensal cheia. O código a seguir implementa.


contribuicao = variacao*peso/100
colnames(contribuicao) = names

time = as.Date(time(contribuicao))

data_bar = xts(contribuicao, order.by = time)
data_bar = data.frame(time=index(data_bar),
melt(as.data.frame(data_bar)))
colnames(data_bar) = c('time', 'tipo', 'value')

ipca = ts(round(rowSums(variacao*peso/100),2),
start=c(2006,07), freq=12)

data_ipca = xts(ipca, order.by = time)
data_ipca = data.frame(time=index(data_bar),
melt(as.data.frame(data_ipca)))

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

ggplot(data_bar, aes(x=time, y=value))+
geom_col(aes(fill=tipo))+
geom_line(data=data_ipca, aes(x=data_bar$time, y=value),
colour='black', size=.8)+
theme(legend.position = 'bottom',
legend.key.size = unit(0.3, "cm"),
legend.title = element_blank())+
scale_x_date(breaks = date_breaks("1 year"),
labels = date_format("%Y"))+
labs(x='', y='p.p.',
title='Contribuição dos grupos para a inflação medida pelo IPCA',
caption='Fonte: analisemacro.com.br')+
annotation_custom(g,
xmin=as.Date('2006-06-01'),
xmax=as.Date('2010-01-01'),
ymin=0.7, ymax=1.6)

E o gráfico...

Temos então um gráfico com a contribuição de cada um dos 9 grupos do IPCA construído de forma automática. Da próxima vez, é só rodar o script com o último dado disponível.

________________________

Inflação está próxima ao piso do regime de metas

By | Inflação

O Brasil opera desde 1999 o regime de metas para inflação - conhecido no mundo como Inflation Target -, donde o objetivo explícito do Banco Central é conduzir a política monetária de modo a manter a inflação próxima a uma meta previamente estabelecida pelo Conselho Monetário Nacional. Nesse regime, há uma meta explícita e bandas de tolerânciaque servem para acomodar choques diversos que ocorrem sobre a inflação ao longo do tempo. De modo a ilustrar a operação do regime de metas no Brasil, podemos construir um gráfico com a inflação, os núcleos de inflação, a meta e as bandas de tolerância.

O gráfico acima mostra todas essas variáveis e o último dado disponível para a inflação cheia, que fechou em 2,89% no acumulado em 12 meses até setembro. O piso da meta é de 2,75%, considerando 1,5 pontos percentuais de tolerância para mais ou menos em torno da meta de 4,25% para esse ano. Como se pode ver no gráfico, a inflação cheia flerta nesse momento com o piso do regime de metas.

O caminho para uma taxa básica nominal de juros de 4,5% no final do ano está aberto. Na verdade, não é mais nem um caminho: é uma avenida!

______________________

(*) O código para o gráfico estará disponível logo mais no Clube do Código.

Analisando a deflação de setembro com o R

By | Inflação

Ontem, o IBGE divulgou a inflação medida pelo IPCA em setembro. O resultado surpreendeu, com uma deflação de 0,04% em um mês onde tipicamente a inflação é positiva, dada a sazonalidade da mesma. De modo a investigar esse comportamento atípico, podemos plotar em um gráfico a inflação para os meses de setembro de vários anos. Usando o R, o script começa carregando alguns pacotes.


# Pacotes
library(tsutils)
library(ggplot2)
library(scales)
library(sidrar)

A partir do pacote sidrar, nós obtemos o número-índice do IPCA e depois a variação mensal do índice, que é a inflação.


## Criar Inflação mensal
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)

De posse da inflação, nós pegamos agora uma subamostra desde 1995.


## Criar amostras
ipca_mensal_subamostra = window(ipca_mensal, start=c(1995,01))

Agora, usando a função seas do pacote tsutils, nós agrupamos a inflação por meses e pegamos apenas os meses de setembro de cada ano.


# Criando e guardando gráfico de sazonalidade
seas <- seasplot(ipca_mensal_subamostra, trend=F, outplot = 3)
setembro <- as.numeric(seas$season[,9])
time <- seq(as.Date('1995-09-01'), as.Date('2019-09-01'), by='1 year')
df <- data.frame(time=time, setembro=setembro)

E por fim, geramos um gráfico com apenas os meses de setembro com o código abaixo.


# Gráfico
ggplot(df, aes(x=time, y=setembro))+
geom_bar(stat='identity', fill='darkblue', colour='darkblue')+
geom_text(aes(label=setembro), size=3,
fontface='bold',
position = position_dodge(width = 2),
hjust=0.5, vjust=ifelse(setembro>0,-0.7,1),
shape=21, colour=ifelse(setembro>0,"black", 'red'))+
theme(axis.text.x=element_text(angle=45, hjust=1))+
scale_x_date(labels = date_format("%b/%Y"),
breaks = time)+
labs(x='',y='% a.m.',
title='Inflação medida pelo IPCA em setembro',
caption='Fonte: analisemacro.com.br')

E o gráfico...

Como podemos ver, desde 1995, essa foi a segunda deflação que tivemos no mês de setembro. Tipicamente, a inflação se acelera no segundo semestre, de modo que os meses de setembro são marcados por variações positivas. A seguir, coloco um gráfico que deixa claro a sazonalidade da inflação.


# ggseasonplot
ipca_mensal_subamostra_2 = window(ipca_mensal, start=c(2007,01))
ggsubseriesplot(ipca_mensal_subamostra_2)+
labs(x='', y='% a.m.',
title='Sazonalidade da inflação medida pelo IPCA',
caption='Fonte: analisemacro.com.br')

Em outras palavras, parece que o hiato do produto negativo está tendo impacto sobre o cenário inflacionário, diante de uma política monetária muito bem conduzida pelo Banco Central nos últimos anos.

_____________________________

(*) Aprenda a lidar com dados macroeconômicos no nosso Curso de Análise de Conjuntura usando o R.

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