All Posts By

Vitor Wilher

Códigos em R do modelo do Imperial College London sobre Covid-19

By | Dicas de R

Em ciência, é importante ter o seu trabalho visto e revisto pelos pares. Então, achei de muito bom tom que os autores do modelo do Imperial College sobre infecção por Covid-19, que tem sido citado por um monte de gente, terem disponibilizados os códigos de R do exercício. Os códigos podem ser acessados aqui e o artigo pode ser lido aqui.

________________


Efeito sísmico do coronavírus sobre a previsão do PIB

By | PIB

Economistas de mercado estão nesse momento com uma pergunta difícil de ser respondida: qual será o efeito do coronavírus sobre a economia brasileira? As medidas de distanciamento social necessárias para conter a pandemia no país paralisaram o nível de atividade, em particular o setor de serviços, fazendo com que desabe o crescimento do PIB nesse ano. O mais provável é que tenhamos uma recessão econômica. E aí vai a pergunta: de qual tamanho?

Para ilustrar o tamanho da incerteza, vamos pegar o desvio-padrão das projeções de crescimento do PIB da pesquisa Focus, diretamente do Sistema de Expectativas do Banco Central através do pacote rbcb.


library(rbcb)
library(ggplot2)
library(scales)
library(ggrepel)
library(png)
library(grid)
library(dplyr)
library(magrittr)

pibe = get_annual_market_expectations('PIB Total',
start_date = '2015-01-01')

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

filter(pibe, reference_year == 2020 & date > '2016-02-01') %>%
ggplot(aes(x=date))+
geom_line(aes(y=sd), size=.8)+
labs(title='Desvio-padrão das previsões para o crescimento do PIB em 2020',
caption='Fonte: analisemacro.com.br com dados do BCB.')+
xlab('')+ylab('')+
scale_x_date(breaks = date_breaks("2 months"),
labels = date_format("%b/%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1))+
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(.5,.4),
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-02-03'),
xmax=as.Date('2017-12-30'),
ymin=1, ymax=2)

A tarefa de verificar o impacto da pandemia sobre o nível de atividade é provavelmente o maior desafio da profissão nos últimos anos.

(*) Isso e muito mais você aprende em nossos Cursos Aplicados de R.

___________


Reformas dos últimos anos permitem melhor enfrentamento ao coronavírus

By | Comentário de Conjuntura

A pandemia do coronavírus vai obrigar o estado brasileiro a gastar algo próximo ao que economizou com a reforma da previdência no ano passado. Se os números divulgados pelo atual ministro da economia em uma live com o pessoal da XP nesse final de semana estiverem corretos - o que eu particularmente tenho dúvidas. E, diga-se, deve mesmo gastar. Estamos lidando com um choque humanitário, onde a reação de política pública deve se concentrar em preservar as pessoas. Seja aumentando o gasto com saúde, seja ampliando de reforma rápida a rede de proteção social.

Proteger as pessoas, nesse momento, diga-se, é fazer um investimento no futuro. Preservar capital humano, permitindo que a retomada do organismo econômico seja o mais célere possível.

A calamidade pública imposta pela chegada do Covid-19 ao Brasil acionou as válvulas de escape da lei de responsabilidade fiscal e da emenda do teto de gastos. Isso liberou o estado brasileiro a fazer gastos extraordinários para tentar conter a pandemia no país.

O aumento do gasto no curto prazo, seja lá qual for a sua dimensão, será financiado via emissão de títulos. As pessoas físicas e jurídicas comprarão os títulos emitidos, liberando recursos para que o governo possa realizar os gastos necessários com saúde e proteção social.

A consequência disso será tanto o aumento da dívida pública quanto o aumento do seu custo e encurtamento do prazo. Isto é, a dívida vai ficar mais alta e mais difícil de ser paga. Isso implica que o ajuste fiscal no período t+k, onde k representa a quantidade de trimestres que levará para os efeitos da pandemia passar, deverá ser ainda maior do que o que vinha sendo implementado ao longo dos últimos três anos.

Para ilustrar esse ponto, vamos ver o que aconteceu com os yields de duas NTN-B, uma com vencimento em 2045 e outra com vencimento em 2024. Para isso, nós usamos o pacote GetTDData para coletar os dados, o pacote ggplot2 para visualização e outros pacotes da família tidyverse para tratamento.


library(GetTDData)
library(ggplot2)
library(dplyr)
library(magrittr)
library(scales)
library(gridExtra)

ntnb <- download.TD.data('NTN-B')
ntnb45 <- read.TD.files(dl.folder = 'TD Files',
maturity = '150545')

g1 = filter(ntnb45, ref.date > '2019-01-01') %>%
ggplot(aes(x=ref.date, y=yield.bid*100))+
geom_line()+
scale_x_date(breaks = date_breaks("2 month"),
labels = date_format("%b/%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10))+
labs(x='', y='% a.a.',
title='NTN-B 2045')

ntnb24 <- read.TD.files(dl.folder = 'TD Files',
maturity = '150824')

g2 = filter(ntnb24, ref.date > '2019-01-01') %>%
ggplot(aes(x=ref.date, y=yield.bid*100))+
geom_line()+
scale_x_date(breaks = date_breaks("2 month"),
labels = date_format("%b/%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10))+
labs(x='', y='% a.a.',
title='NTN-B 2024')

grid.arrange(g1, g2,
ncol=2, nrow=1)

Como é possível observar nos gráficos, houve um salto nos yields. Esse movimento fez com que o Tesouro entrasse comprador no mercado, sem data de saída, de modo a garantir a liquidez do sistema.

Um ponto importante aqui é que os juros associados aos títulos públicos estavam caindo antes da pandemia, refletindo a queda geral de juros que tivemos no país nos últimos anos. Houve uma queda do juro de equilíbrio da economia brasileira, refletindo em particular a emenda do teto de gastos, que garantiu maior solvência do setor público no médio/longo prazo. Sobre isso, inclusive, publicamos exercício no Clube do Código.

Em outras palavras, se ainda estivéssemos vivendo em um país sem teto de gastos e sem reforma da previdência, é provável que o "salto nos yields" fosse ainda maior, o que tornaria a tarefa de reagir à pandemia ainda mais complexa. No limite, o estado brasileiro teria que emitir moeda para fazer frente ao necessário aumento de gastos.

Feitas essas ressalvas, volto ao ponto da fragilidade fiscal. Mesmo com todas as medidas feitas até aqui, ainda estamos em um ponto bastante delicado. Para ilustrar, considere o nível de endividamento do setor público, com os dados do Banco Central coletados através do pacote BETS.


library(BETS)
library(tidyr)
dbgg = BETSget(13762, data.frame=TRUE)

drop_na(dbgg) %>%
ggplot(aes(x=date, y=value))+
geom_line()+
scale_x_date(breaks = date_breaks("1 year"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10))+
labs(x='', y='% PIB',
title='Dívida Bruta do Governo Geral')

Observe que tivemos um aumento de dívida bastante pronunciado desde 2014. Somente na margem, com diversas medidas tomadas, como a devolução do valor emprestado ao BNDES, que a dívida bruta ensaiava sua redução. Nosso nível de endividamento é consideravelmente elevado, se comparado a países com mesma renda per capita.

Em termos de fluxo, por suposto, as coisas estavam melhorando, ainda que permanecesse a geração de déficit primário, quando o setor público não consegue gerar receitas o suficiente para pagar suas despesas essenciais.


primario = BETSget(5793, data.frame=TRUE)

drop_na(primario) %>%
ggplot(aes(x=date, y=-value))+
geom_line()+
geom_hline(yintercept=0, colour='red', linetype='dashed')+
scale_x_date(breaks = date_breaks("1 year"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10))+
labs(x='', y='% PIB',
title='Resultado Primário')

Em síntese, nosso quadro fiscal é muito pior do que às vésperas da crise de 2008. E a crise atual é muito mais severa do que a crise de 2008. Como já dito e insisto, o estado brasileiro deve fazer tudo o que for necessário para conter os efeitos da pandemia. Mas quando tudo passar, não se engane, estaremos desafiados à aumentar em muitos graus o esforço reformista. Sem ele, estaríamos ainda mais vulneráveis do que estamos hoje.

________________________

(*) Aprenda R nos nossos Cursos Aplicados de R.

(**) Um pdf com os códigos estará disponível amanhã no Clube do Código.


Focus: caiu a ficha da recessão para o mercado

By | Indicadores

O boletim Focus divulgado hoje pela manhã pelo Banco Central trouxe uma convergência das projeções de crescimento em 2020 rumo à recessão econômica. A média do mercado está agora em -0,14% de crescimento em 2020, enquanto a mediana situa-se em -0,48%. Houve, com efeito, forte revisão em relação à semana anterior, onde os números estavam em 0,89% e 1,48%, respectivamente. Parece que caiu a ficha do mercado sobre a gravidade da situação que estamos vivendo. O gráfico a seguir ilustra.

As projeções, contudo, devem ser vistas com cautela, dada a incerteza que estamos vivendo. Para se ter uma ideia disso, a mínima do Focus está em -5% e a máxima em 2,85%, entre 84 respondentes no dia 27/03. A expectativa para as demais variáveis é ilustrada a seguir. A inflação mediana esperada ficou em 2,94%, enquanto o câmbio médio no final do ano está em 4,50 R$/US$. A taxa de juros mediana esperada recuou para 3,5%.

 

 

(*) Isso e muito mais você aprende em nossos Cursos Aplicados de R.

___________


Covid-19: e se deixássemos a doença tomar o seu curso?

By | Dicas de R

Na terça-feira, publiquei o nosso comentário de conjuntura semanal com um modelo SIR ajustado aos dados do Brasil. Para quem quiser replicar, todos os códigos de R foram disponibilizados, de modo que o post é totalmente reprodutível. Já aqui, quero apresentar as curvas geradas pelo modelo, considerando um horizonte de 90 dias.

O modelo divide a população em compartimentos, como ilustra a figura a seguir.

As pessoas são suscetíveis à doença, depois infectadas e, por fim, recuperadas. Ao deixar a doença tomar seu curso, sem fazer nada a respeito, o total de infectados atingiria seu pico no início de maio, se reduzindo ao longo das semanas seguintes. O número do pico fica pouco abaixo de 24 milhões de pessoas, com todas as consequências conhecidas sobre o sistema de saúde.

Como o país está tomando medidas de distanciamento social, o pico de infectados deve ocorrer antes disso, em meados de abril e com um número menor.

(*) Aprenda a rodar modelos como esse ao aprender R em nossos Cursos Aplicados de R.

___________


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