Category

Comentário de Conjuntura

Efeitos da pandemia sobre o PIB ainda são incertos

By | Comentário de Conjuntura

A média das previsões para o crescimento do PIB em 2020, disponível no boletim Focus do Banco Central, se aproximou de -6%. Mesmo há quase três meses imersos na maior pandemia da nossa geração, esse pode não ser ainda o fundo do poço. O desvio-padrão das previsões continua bastante elevado, refletindo a incerteza que domina o ambiente econômico. Os dados do Focus são coletados a partir do pacote rbcb como abaixo.


library(rbcb)

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

O gráfico que reflete o intervalo das previsões é colocado abaixo.

Como se pode ver, a média de -5,92% situa-se entre uma mínima de -11% e uma máxima de 1,89%, com um desvio-padrão de 1,73 pontos. Abriu-se uma boca de jacaré nas previsões do boletim Focus. A seguir, o comportamento do desvio-padrão.

desvio-padrão, que ficava em torno de 0,5, deu um salto em março, refletindo a incerteza que tomou conta do ambiente econômico global. Esse aumento de incerteza, diga-se, foi captado pelo índice da FGV, como pode ser visto abaixo.

Ao que parece, ainda estamos longe de saber os efeitos da pandemia sobre a economia brasileira.

____________________

(*) Você aprende a coletar, tratar e visualizar dados macroeconômicos no nosso Curso de Análise de Conjuntura usando o R.


_____________________

Coleta do Índice Cielo do Varejo Ampliado com o R

By | Comentário de Conjuntura

Dada a defasagem na divulgação dos dados de nível de atividade e diante de uma das maiores crises da nossa geração, torna-se cada vez mais importante para economistas e analistas de mercado a busca por índices de alta frequência, bem como índices antecedentes. Dentro desse contexto, passou a ganhar bastante relevância, em particular para o acompanhamento do varejo brasileiro, o índice cielo do varejo ampliado (icva). Nesse Comentário de Conjuntura, eu mostro como fazer a coleta, tratamento e visualização desses dados.

Para começar, nós carregamos alguns pacotes.


require(tidyverse)
require(readxl)
require(scales)

A seguir, nós fazemos o download e leitura da planilha excel que está disponível no site da Cielo.


url = 'https://apicatalog.mziq.com/filemanager/v2/d/4d1ebe73-b068-4443-992a-3d72d573238c/3e864198-0b72-c970-1771-80cd8c338a30?origin=2'
download.file(url, destfile='icva.xlsx', mode='wb')
icva = read_excel('icva.xlsx')
colnames(icva) = c('date', 'nominal', 'nominal_sa', 'real', 'real_sa')

Uma vez coletados os dados, nós transformamos os mesmos para uma melhor visualização com o pacote ggplot2.


icva_long =
icva %>%
gather(metrica, values, -date) %>%
group_by(metrica)

Por fim, podemos gerar um gráfico com o código abaixo.


ggplot(icva_long, aes(x=date, y=values*100, colour=metrica))+
geom_line()+
theme(legend.title = element_blank(),
legend.position = 'top')+
geom_hline(yintercept=0, colour='black', linetype='dashed')+
scale_x_datetime(breaks = pretty_breaks(n=8))+
labs(x='', y='%',
title='Índice Cielo do Varejo Ampliado',
caption='Fonte: analisemacro.com.br com dados da Cielo')

Como é possível verificar, o ICVA chegou a cair 37% em abril na série real com ajuste sazonal.

____________________

(*) Você aprende a coletar, tratar e visualizar dados macroeconômicos no nosso Curso de Análise de Conjuntura usando o R.


_____________________

Rolling Regression e Inércia Inflacionária no R

By | Comentário de Conjuntura

No nosso Curso de Macroeconometria II, nós vemos diversas técnicas econométricas aplicadas a variáveis macroeconômicas reais. Para ilustrar, vamos considerar nesse comentário de conjuntura o comportamento da inércia inflacionária no período recente através da técnica de rolling regression. A abordagem de regressão recursiva é frequentemente usada na análise de séries temporais para avaliar a estabilidade dos parâmetros do modelo em relação ao tempo.

Para isso, vamos precisar carregar alguns pacotes e coletar o dado da inflação mensal diretamente do Banco Central com o pacote BETS. Você também pode usar outros pacotes para isso, como o rbcb ou o Quandl ou ainda a própria API do Banco Central.


library(BETS)
library(lmtest)
library(forecast)
library(ggplot2)
library(scales)

### Importando a inflação mensal
ipca = BETSget(433, from='1999-06-01')

Eu peguei a inflação mensal a partir de junho de 1999, quando foi o publicado o decreto executivo sobre o regime de metas para inflação. Uma vez coletada a inflação, nós podemos construir nossa rolling regression. A ideia básica da regressão recursiva é tomar uma janela de observações e andar com ela ao longo da amostra disponível. Por exemplo, podemos criar uma janela com de 48 meses e estimar o nosso modelo para as primeiras 48 observações. Guardamos o parâmetro que interessa do modelo e andamos com a nossa janela, até chegar a última observação disponível.

Para fazer isso na prática, nós vamos precisar criar um loop, que basicamente automatiza o processo de andar com a nossa janela. Para não termos que repetir o processo acima n vezes.

Para fazer isso, primeiro, vamos setar algumas coisas, como o número de parâmetros a serem guardados e o tamanho da janela da rolling regression. Além disso, vamos criar matrizes para guardar os parâmetros estimados e os seus desvios-padrão.


### Criando matrizes que guardarão coeficientes e desvios-padrões
p <- 2 # Parâmetros a serem guardados
janela <- 48 # número de meses da janela
coefs <- matrix(NA, ncol = p, nrow = length(ipca)-janela)
dps <- matrix(NA, ncol = p, nrow = length(ipca)-janela)
colnames(coefs) <- c('AR(1)', 'Intercepto')
colnames(dps) <- c('AR(1)', 'Intercepto')

Uma vez que esteja tudo preparado para receber os valores, nós precisaremos estimar o nosso modelo. A ideia aqui é basicamente estimar um modelo AR(1), guardando assim o coeficiente autorregressivo que irá medir a inércia inflacionária ao longo do tempo.


### Loop para rodar o AR(1)
for (i in 1:nrow(coefs)){
ar1 <- Arima(ipca[(1+i-1):(janela+i-1)],
order=c(1,0,0))
coefs[i,] <- coef(ar1)
dps[i,] <- coeftest(ar1)[,2]
}

Uma vez estimado o modelo e guardado os parâmetros, nós podemos criar um gráfico como abaixo, que ilustrar o comportamento da inércia inflacionária ao longo do tempo. Isto é, o comportamento do coeficiente autorregressivo do nosso modelo AR(1).

Como se pode ver, há um recuo da inércia inflacionária a partir do início de 2018.

_____________________

(*) Isso e muito mais você irá aprender no nosso Curso de Macroeconometria II.


_____________________

Análise dos títulos do Tesouro Direto com o R

By | Comentário de Conjuntura

A forte aversão a risco que tomou conta do mercado nas últimas semanas não deixou impune o mercado de títulos públicos. Uma análise dos yields associados aos principais títulos negociados pelo chamado Tesouro Direto mostra o stress que tem tomado conta dos investidores. Para ilustrar, vamos utilizar o pacote GETTDData para coletar os dados diretamente do Tesouro Direto, bem como outros pacotes do R para tratamento e visualização dos dados.


library(tidyverse)
library(tidyquant)
library(timetk)
library(scales)
library(quantmod)
library(GetTDData)
library(ecoseries)
library(RColorBrewer)

Com os pacotes carregados no meu arquivo .Rmd, posso começar a coletar os dados. Eu começo pelas NTN-B, agora nomeadas como Tesouro IPCA. O código abaixo faz o download e a leitura das planilhas.


download.TD.data('NTN-B')
ntnb <- read.TD.files(dl.folder = 'TD Files',
asset.codes = 'NTN-B')

A seguir, nós podemos visualizar alguns dos títulos que acabamos de coletar tendo como referência janeiro do ano passado.


filter(ntnb, ref.date > '2019-01-01') %>%
ggplot(aes(x=ref.date, y=yield.bid*100, colour=asset.code))+
geom_line()+
geom_hline(yintercept=0, colour='black', linetype='dashed')+
scale_x_date(breaks = date_breaks("1 month"),
labels = date_format("%b/%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1))+
labs(x='', y='% a.a.',
title='NTN-B',
caption='Fonte: Tesouro Direto')

Como se vê pelo gráfico, há um nítido salto nos yields, provocado pelo aumento da incerteza. Como proxy, aliás, para esse aumento de incerteza, podemos visualizar o comportamento do risco-país. Podemos coletá-lo a partir do site do IPEADATA com o pacote ecoseries. O código a seguir ilustra.


embi = series_ipeadata('40940', periodicity = 'D')$serie_40940
filter(embi, data > '2019-01-01') %>%
ggplot(aes(x=data, y=valor))+
annotate("rect", fill = "gray", alpha = 0.5,
xmin = as.Date('2020-02-15'),
xmax = as.Date('2020-04-28'),
ymin = -Inf, ymax = Inf)+
geom_line()+
scale_x_date(breaks = date_breaks("1 month"),
labels = date_format("%b/%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1))+
labs(x='', y='Índice',
title='EMBI+ Risco-Brasil',
caption='Fonte: IPEADATA')

De fato, houve um salto no risco-Brasil de meados de fevereiro para cá, o que reflete os desdobramentos da pandemia do coronavírus e também, infelizmente, o aumento da incerteza doméstica.

_____________________

(*) Isso e muito mais você irá aprender no nosso Novo Curso Mercado Financeiro e Gestão de Portfólios.


Coletando dados financeiros com o R

By | Comentário de Conjuntura

Os efeitos da pandemia do coronavírus não param de nos surpreender. Ontem, o preço do contrato futuro de petróleo com vencimento em maio fechou no terreno negativo! Ou seja, as pessoas pagaram para quem comprou o papel. Para ilustrar, podemos pegar os dados do Yahoo Finance através do pacote quantmod, como iremos ensinar no nosso novo Curso da área de finanças Mercado Financeiro e Gestão de Portfólios. Carregamos o quantmod e outros pacotes abaixo para fazer o tratamento e visualização dos dados.


library(tidyverse)
library(tidyquant)
library(timetk)
library(scales)
library(quantmod)

Uma vez carregados os pacotes, nós podemos pegar o contrato de petróleo com vencimento em maio de 2020 com o código abaixo.


getSymbols('CLK20.NYM', warning=FALSE)

Com a função tk_tbl do pacote timetk nós transformamos nossos dados de xts para tibble.


df = `CLK20.NYM` %>%
tk_tbl(preserve_index = TRUE,
rename_index = 'date') %>%
drop_na()

E a seguir, podemos visualizá-los com o pacote ggplot2.


ggplot(df, aes(x=date, y=`CLK20.NYM.Low`))+
geom_line()+
geom_hline(yintercept=0, colour='red', linetype='dashed')+
scale_x_date(breaks = date_breaks("3 days"),
labels = date_format("%d/%b"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=10, face='bold'))+
labs(x='', y='',
title='Preço mínimo do Contrato Futuro de Petróleo WTI com vencimento em maio de 2020',
caption='Fonte: analisemacro.com.br com dados do Yahoo Finance')

Observe que o preço rompeu a barreira do zero ontem, 20 de abril. Um marco dos tempos sombrios que estamos vivendo...

_____________________

(*) Isso e muito mais você irá aprender no nosso Novo Curso Mercado Financeiro e Gestão de Portfólios.


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