Category

Comentário de Conjuntura

Juro baixo com inflação controlada é vitória da ortodoxia econômica

By | Comentário de Conjuntura

Em 31 de agosto de 2011, alegando ventos deflacionários vindos do exterior, o Banco Central liderado por Alexandre Tombini surpreenderia o mercado ao reduzir a taxa básica de juros de 12,5% para 12% ao ano. A decisão daria início a um cavalo de pau na política monetária, o que estava em linha com a promessa de campanha da então presidente da República, Dilma Rousseff de levar o juro real para abaixo de 2%. O problema, como se veria mais tarde, era combinar essa queda dos juros com a inflação.

Para ilustrar, importamos abaixo a taxa básica de juros e a inflação com o pacote Quandl, bem como criei a meta de inflação para o período.


library(Quandl)
library(ggplot2)
library(scales)
library(gridExtra)
library(magrittr)

inflacao = Quandl('BCB/13522', order='asc', start_date='2007-01-01')
selic = Quandl('BCB/4189', order='asc', start_date='2007-01-01')

meta = c(rep(4.5, length(inflacao$Value)-10), rep(4.25, 10))
inflacao = cbind(inflacao, meta)

O gráfico a seguir ilustra o comportamento da taxa básica de juros, chamando atenção para o choque heterodoxo liderado por Alexandre Tombini e para a queda da taxa com Ilan Goldfajn à frente do Banco Central.

O início da queda abrupta da taxa de juros fica nítido na parte laranja hachurada. O efeito líquido disso foi uma inflação em aceleração nos períodos seguintes, como pode ser visto no gráfico a seguir.

Ao longo do período em que a taxa básica de juros era mantida artificialmente baixa, o governo controlava os preços chamados de administrados, em uma tentativa de usar mecanismos não monetários para controle da inflação. Como se vê, a estratégia heterodoxa não daria certo, levando a inflação para dois dígitos.

A convergência da inflação para a meta só seria possível graças ao bom trabalho de Ilan Goldfajn à frente da autoridade monetária a partir de meados de 2016, que não cedeu à tentação de ajustar a meta de inflação em 2016, mantendo os juros constantes até o final do ano. Sua gestão colheria os frutos logo adiante, com a espinha inflacionária quebrada, permitindo uma queda de juros sustentada.

Esse episódio mostra de forma inequívoca que, (1) a tese heterodoxa de controle não monetário da inflação se mostrou errada e (2) a gestão ortodoxa da política monetária permitiu que a inflação convergisse para a meta e ocorresse queda dos juros para as mínimas históricas. Tomare que tenhamos aprendido com esse episódio...

_____________

(*) Os códigos completos do exercício estarão disponíveis logo mais no Clube do Código.

Mais desemprego, menor a proporção de emprego com carteira na população ocupada

By | Comentário de Conjuntura

Escrevi nesse espaço no último domingo sobre a forte relação (negativa) entre a taxa de desemprego e a razão entre emprego com carteira e população ocupada. Isto é, mais desemprego está associado a menos emprego formal como proporção da população ocupada. Naquela oportunidade, meu ponto principal era mostrar que mesmo para níveis muito baixos de desemprego, o grau de formalização era pouco superior à metade da população ocupada.

Volto ao tema nesse Comentário de Conjuntura, cujos códigos completos estarão disponíveis logo mais no Clube do Código, para revelar que não apenas existe uma correlação forte entre as séries, mas também há uma relação de causalidade unidirecional entre elas, se aplicado às mesmas a metodologia proposta por Toda e Yamamoto (1995). De modo a relembrar, abaixo o código que carrega alguns pacotes e importa o arquivo clt.csv, contendo as séries que utilizei no exercício.


library(magrittr)
library(dplyr)
library(readr)
library(ggplot2)
library(scales)
library(forecast)
library(vars)
library(aod)
### Pacote Seasonal
library(seasonal)
Sys.setenv(X13_PATH = "C:/Séries Temporais/R/Pacotes/seas/x13ashtml")

data = read_csv2('clt.csv',
col_types = list(col_date(format='%d/%m/%Y'),
col_double(), col_double(),
col_double())) %>%
mutate(razao = po_carteira/po*100)

desemprego_sa = ts(data$desemprego, start=c(2002,03), freq=12)
desemprego_sa = final(seas(desemprego_sa))

data = mutate(data, desemprego_sa=desemprego_sa)

E a seguir, um gráfico das séries de desemprego com ajuste sazonal e a razão entre população ocupada com carteira assinada e população ocupada total.

Como mostrei no post anterior, há uma forte correlação negativa entre as séries de -0,93. A relação entre as séries, contudo, não fica apenas nisso. Além de correlacionadas, existe uma relação de causalidade unidirecional entre elas. Para verificar esse ponto, utilizamos a metodologia proposta por Toda e Yamamoto (1995), já que as séries não são estacionárias em nível. O código a seguir implementa o teste.


################ TESTE DE CAUSADALIDE #########################
### VAR(1)
subdata = data[,5:6]
var1 <- VAR(subdata, p=1, type='none')
serial.test(var1)
### Teste de Wald
var2 <- VAR(subdata, p=2, type='none')
### Wald Test 01: Desemprego não granger causa formalização
wald.test(b=coef(var2$varresult[[1]]),
Sigma=vcov(var2$varresult[[1]]),
Terms=2)

### Wald Test 02: formalização não granger causa desemprego
wald.test(b=coef(var2$varresult[[2]]),
Sigma=vcov(var2$varresult[[2]]),
Terms= 1)

De fato, quando a hipótese nula é que o desemprego não granger causa a razão de formalização, temos uma rejeição da mesma. Para o caso contrário, nós não conseguimos essa rejeição. Assim, podemos dizer que mais desemprego causa menos formalização no mercado de trabalho. O que, diga-se, é meio intuitivo. À medida que a taxa de desemprego aumenta, as pessoas costumam se virar, o que aumenta a proporção de emprego informal na população ocupada.

Tudo isso dito, meu ponto no post anterior é bastante simples: mesmo para níveis muito baixos de desemprego, o emprego com carteira alcançou pouco mais da metade da população ocupada. Isso sugere que é impossível universalizar o emprego com carteira assinada para toda a população ocupada.

__________________

Toda H.Y.; Yamamoto T. (1995). Statistical inference in vector autoregressions with possibly integrated processes. Journal of Econometrics, 66, 225–250. 

Análise do Mercado de Crédito com o R

By | Comentário de Conjuntura

A disponibilidade de crédito é uma variável de suma importância para impulsionar tanto o consumo das famílias quanto o investimento das firmas. Nesse Comentário de Conjuntura, por suposto, seguindo a análise do mercado de crédito que faço no Curso de Análise de Conjuntura usando o R, vamos dar uma olhada em alguns aspectos desse mercado. Para isso, vou utilizar aqui o pacote Quandl para pegar as séries do Banco Central diretamente para o R.


library(Quandl)
library(ggplot2)
library(scales)
Quandl.api_key('a sua chave aqui') # Permite mais de 50 acessos dia
credito_total = Quandl('BCB/20631', order='asc')

credito_pj = Quandl('BCB/20632', order='asc')
credito_pf = Quandl('BCB/20633', order='asc')

credito_livre = Quandl('BCB/20634', order='asc')
credito_direc = Quandl('BCB/20685', order='asc')


Os dados importados sofrem de sazonalidade, de modo que é preciso fazer o ajuste da série. Também é preciso deflacionar as séries, de modo a tornar a análise dos dados correta. Isso é feito com o código a seguir.


### Importar IPCA
library(sidrar)
ipca = get_sidra(api='/t/1737/n1/all/v/2266/p/all/d/v2266%2013')
ipca = ts(ipca$Valor, start=c(1979,12), freq=12)
ipca = window(ipca, start=c(2011,03))

### Pacote Seasonal
library(seasonal)
Sys.setenv(X13_PATH = "C:/Séries Temporais/R/Pacotes/seas/x13ashtml")
concessoes = ts(data.frame(credito_total$Value, credito_pj$Value,
credito_pf$Value, credito_livre$Value,
credito_direc$Value), start=c(2011,03), freq=12)
### Deflacionar Séries
concessoes <- ipca[length(ipca)-1]*(concessoes/ipca)

colnames(concessoes) = c('Total', 'juridica',
'fisica', 'livre', 'direcionado')
matrix <- matrix(NA, nrow = nrow(concessoes), ncol=ncol(concessoes))
colnames(matrix) <- colnames(concessoes)

for(i in 1:ncol(concessoes)){

matrix[,i] <- final(seas(concessoes[,i]))
}

concessoes_sa = data.frame(time=credito_total$Date, matrix)

Uma vez que os dados estejam tratados, podemos visualizá-los. Abaixo, vemos as concessões mensais totais.

Como se vê, há um avanço nas concessões mensais de crédito na margem. Podemos tentar entender melhor esse avanço com a abertura por pessoa física e jurídica. O gráfico abaixo ilustra.

Tanto as concessões mensais à pessoa física quanto jurídica mostram avanço nos últimos anos. Também podemos verificar o crédito quanto a diferenciação entre crédito livre e direcionado. O gráfico abaixo ilustra.

Observa-se uma diferença importante entre as categorias. Enquanto o crédito livre mostra avanço, o crédito direcionado tem se mantido estável nos últimos anos. A seguir, vemos o estoque de crédito normalizado pelo PIB.


library(tidyverse)
estoque_cred = Quandl('BCB/20539', order='asc',
start_date='1999-01-31')
pib = Quandl('BCB/4382', order='asc', start_date='1999-01-31')
estoque_cred = mutate(estoque_cred,
razao=estoque_cred$Value/pib$Value*100)
ggplot(estoque_cred, aes(Date, razao))+
geom_area(stat='identity', fill='darkblue', colour='darkblue')+
scale_y_discrete(limits=c(10,20,30,40,50))+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=15))+
labs(x='', y='% PIB', title='Estoque de Crédito (% PIB)',
caption='Fonte: analisemacro.com.br')

Na ponta, há um leve avanço no estoque normalizado pelo PIB, refletindo o aumento das concessões mensais. A seguir, fazemos a divisão desse estoque entre crédito público e privado.

De fato, o estoque de crédito associado à instituições privados tem recuperado espaço em relação às instituições estatais. A seguir, olhamos para a taxa média de juros associada às operações de crédito.

As taxas médias na ponta ainda permanecem acima de 20% a.a., refletindo o que os economistas chamam de spread bancário, a diferença entre taxas de captação e aquelas cobradas dos que demandam crédito. O gráfico abaixo ilustra essas taxas de spread.

Como se vê, o spread permanece ainda elevado. A seguir, ilustramos o comportamento da inadimplência.

Por fim, vemos o comportamento do endividamento das famílias em relação à renda acumulada nos últimos 12 meses.

Uma recuperação mais pujante do mercado de crédito é crucial para que possamos acelerar o crescimento da economia brasileira. Para isso, contudo, são fundamentais as reformas microeconômicas que estão no radar tanto do Congresso Nacional quanto do próprio Banco Central.

_____________________________

(*) A análise completa está disponível no nosso Curso de Análise de Conjuntura usando o R.

O novo juro neutro da economia brasileira

By | Comentário de Conjuntura

Hoje à tarde, a equipe econômica anunciou o plano Mais Brasil, que tem por objetivo uma ampla reforma administrativa do Estado brasileiro. Se levado a cabo pelo Congresso Nacional, trará enormes externalidades positivas tanto para a política fiscal quanto para a produtividade da economia brasileira. De fato, o plano é lançado após três anos de diversas reformas econômicas, como a aprovação do Teto de Gastos, a adoção do cadastro positivo, a aprovação da TLP nos empréstimos do BNDES e mais recente a reforma da previdência. Todo esse conjunto de reformas fez, diga-se, com que o juro de equilíbrio da economia brasileira despencasse, mesmo com uma trajetória ainda crescente da dívida pública.

Economistas se importam com o juro de equilíbrio ou juro neutro porque ele é fundamental para prever se a política monetária em vigor será expansionista ou contracionista. Juros reais maiores do que o juro neutro configuram uma política monetária contracionista, enquanto o contrário configura uma política monetária expansionista.

O diabo, porém, está nos detalhes. Dado que o juro neutro é uma medida não observável, ele precisa ser estimado. Existem diversos métodos de fazê-lo, como por exemplo, através de um modelo estrutural que represente o organismo econômico. Nesse comentário de conjuntura, a propósito, de modo a mostrar evidências de que, de fato, o juro de equilíbrio da economia brasileira está em queda, diante das reformas feitas nos últimos anos, tomaremos como referência o trabalho de Barbosa et al. (2016).

Barbosa et al. (2016) estimam o juro de equilíbrio da economia brasileira por alguns métodos. Em um deles, calculam o juro neutro a partir da tendência obtida a partir do título público de mais longo prazo à venda, a NTN-B 2045. Já aqui, optei por fazer a conta utilizando a NTN-B 2050. Para isso, utilizei os pacotes de R abaixo.


## Pacotes utilizados
library(GetTDData)
library(ggplot2)
library(forecast)
library(mFilter)
library(xts)
library(scales)
library(grid)
library(png)

Uma vez carregados os pacotes, nós podemos fazer o download dos dados com o código a seguir.


## Download dos dados
download.TD.data('NTN-B')
ntnb50 = read.TD.files(dl.folder = 'TD Files',
maturity = '150850')

Um tratamento dos dados é feito abaixo.


## Mensalizar os dados
ntn = data.frame(time=ntnb50$ref.date, ntnb50=ntnb50$yield.bid)
ntn$time = as.Date(ntn$time, format='%d/%m/%Y')
ntn$ntnb50 = ntn$ntnb50*100
ntn$ntnb50 = xts(ntn$ntnb50, order.by = ntn$time)

ntn = apply.monthly(ntn$ntnb50, FUN=mean)
ntn = ts(ntn, start=c(2012,06), freq=12)

## Construir juro neutro
hp = hpfilter(ntn, fre=14400, type='lambda')

Uma vez que os dados estão tratados, nós plotamos a série que representa uma evidência do juro neutro.

 

De fato, como ilustra o gráfico, houve uma queda consistente no juro de equilíbrio a partir de 2016. Na margem, ele flerta com 3,5% a.a. Mesmo diante, ressalto, de um crescimento ainda bastante crítico do endividamento público, fruto de seis anos de déficit primário. Em outros termos, as reformas que estão sendo pautadas e aprovadas têm garantido uma trajetória cadente do juros a despeito de uma situação fiscal ainda delicada.

(*) Aprenda a fazer esse e muitos outros exercícios com nossos Cursos Aplicados de R.

(**) Os códigos completos desse exercício estarão disponíveis logo mais no Clube do Código.

___________________________

Barbosa, F. H., F. D. Camêlo, and I. C. João. 2016. “A Taxa de Juros Natural E a Regra de Taylor No
Brasil: 2003-2015.” Revista Brasileira de Econometria 70 (4): 399–417.

Câmbio para baixo, IBOV para cima no apagar de outubro

By | Comentário de Conjuntura

Outubro termina com uma espécie de redenção na agenda econômica. Após mais de 20 anos e cinco presidentes, enfim, foi aprovada uma reforma no sistema público de previdência de grande envergadura. O resultado prático disso são dois. Primeiro, deve haver alguma contaminação em indicadores macro e financeiros desse grande evento - ainda que boa parte já tenha sido antecipada. Segundo, a agenda parlamentar fica aberta para mares nunca antes navegados, como a reforma tributária e a administrativa.

Nesse comentário de conjuntura, por suposto, gostaria de avaliar o comportamento de quatro variáveis: taxa de câmbio R$/US$, Ibovespa, CDS 5 anos e CRB. Os três primeiros são afetados de forma direta pela agenda econômica, de modo que é esperado alguma contaminação sobre eles da aprovação da reforma da previdência. O quarto eu coloco como uma espécie de controle, dada a influência do mesmo sobre a taxa de câmbio.

Antes de mais nada, vamos carregar alguns pacotes...


library(quantmod)
library(ggplot2)
library(scales)
library(forecast)
library(readr)
library(xts)
library(gridExtra)

E abaixo eu importo os dados para o RStudio...


## Pegar dados
getSymbols("BRL=X",src="yahoo", from='2019-06-02')
getSymbols("^BVSP",src="yahoo", from='2019-06-02')
cds = read_csv2('cds.csv', col_types = list(col_date(format='%d/%m/%Y'),
col_double()))
crb = read_csv2('crb.csv', col_types = list(col_date(format='%d/%m/%Y'),
col_double()))

Os dados do câmbio e do ibovespa eu pego do yahoo finance com o pacote quantmod enquanto os dados do CDS e do CRB de um arquivo csv usando o pacote readr. Abaixo, um tratamento rápido dos dados.


cambio = `BRL=X`[,4]
ibov = BVSP[,4]
cds = window(xts(cds$cds5y, order.by = cds$date), start='2019-06-02')
crb = window(xts(crb$crb, order.by = crb$date), start='2019-06-02')
data = cbind(cambio, ibov, cds, crb)
data = data[complete.cases(data)]
colnames(data) = c('cambio', 'ibov', 'cds', 'crb')

Com os dados prontos, meu objetivo é construir uma espécie de painel com o gráfico das quatro variáveis. Isso pode ser feito com a combinação de quatro pacotes: ggplot2, forecast, scales e gridExtra. Abaixo, crio e guardo o gráfico da primeira variável.


g1 = autoplot(cambio)+
scale_x_date(breaks = date_breaks("15 days"),
labels = date_format("%d/%b"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10))+
labs(x='', y='R$/US$',
title='Taxa de Câmbio R$/US$ diária')

O código é idêntico para as demais variáveis, então não os repito aqui. Uma vez construídos e guardados os objetos, posso gerar meu painel com a função grid.arrange do pacote gridExtra como abaixo.


grid.arrange(g1, g2, g3, g4, ncol=2, nrow=2,
bottom='Fonte: Yahoo Finance e Bloomberg')

E aí está o gráfico...

Podemos observar na ponta um recuo do câmbio para próximo a 4 R$/US$ e um avanço do índice Bovespa para recordes históricos. Já o CDS 5 anos recuou no período selecionado, o mesmo comportamento registrado para o CRB. A agenda econômica pró-reformas traz um alento para o país em um momento bastante delicado no cenário internacional, marcado por riscos consistentes de uma desaceleração global. Algo que obviamente tem impacto nas variáveis aqui selecionadas.

________________________

(*) Saiba coletar e tratar dados macroeconômicos com o nosso Curso de Análise de Conjuntura usando o R.

(**) Agradeço ao meu amigo Sávio Barbosa, da Paineiras Investimentos, por disponibilizar os dados do CDS5Y e do CRB.

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