Super Combos: Último Dia da Promoção!

By | Cursos da Análise Macro

Vamos encerrar hoje, 24/01, às 23h59, a super promoção para você começar 2020 colocando uma linguagem de programação no currículo. Não fique para trás, pois cada vez mais empregos e empresas têm exigido conhecimentos de programação. São cada vez mais frequentes os anúncios de vagas de emprego/estágio onde o recrutador coloca como conhecimento diferencial saber alguma linguagem de programação como \mathbf{R}, voltada para análise de dados. Com o avanço das bases de dados, em pouco tempo isso deixará de ser diferencial e passará a ser mandatório, como falar inglês ou saber Excel Avançado.

E de modo a lhe oferecer uma oportunidade única e exclusiva, vamos conceder até 50% de desconto para os primeiros que adquirirem os nossos combos: todos os Cursos de cada uma das nossas cinco áreas por um único preço. Isso mesmo, você irá levar todos os cursos de econometria, por exemplo, por um único preço, com até 50% de desconto.

Em um plano exclusivo de início de ano, você terá acesso a todo o material dos Cursos da área, videoaulas gravadas, plataforma exclusiva de dúvidas, mentorias personalizadas, certificados e acesso ao Clube do Código por 1 ano.

Isso mesmo: tudo isso com desconto de até 50%! É a oportunidade que faltava para você colocar uma linguagem de programação no seu currículo. Clique nos links abaixo e adquira já os nossos Combos. A oferta é limitadíssima e acabará em muito pouco tempo, então garanta já a sua vaga!

Para conhecer os detalhes de cada curso, você pode navegar pelas páginas dos Cursos aqui. A aquisição dos combos, entretanto, é exclusiva pelos links acima.

Todos os nossos Cursos incluem Nivelamento gratuito em R e podem ser financiados em até 10x sem juros no cartão de crédito. 

Super Promoção: Combos com até 50% de desconto!

By | Cursos da Análise Macro

Decidimos fazer uma super promoção para você começar 2020 colocando uma linguagem de programação no currículo. Não fique para trás, pois cada vez mais empregos e empresas têm exigido conhecimentos de programação. São cada vez mais frequentes os anúncios de vagas de emprego/estágio onde o recrutador coloca como conhecimento diferencial saber alguma linguagem de programação como \mathbf{R}, voltada para análise de dados. Com o avanço das bases de dados, em pouco tempo isso deixará de ser diferencial e passará a ser mandatório, como falar inglês ou saber Excel Avançado.

E de modo a lhe oferecer uma oportunidade única e exclusiva, vamos conceder até 50% de desconto para os primeiros que adquirirem os nossos combos: todos os Cursos de cada uma das nossas cinco áreas por um único preço. Isso mesmo, você irá levar todos os cursos de econometria, por exemplo, por um único preço, com até 50% de desconto.

Em um plano exclusivo de início de ano, você terá acesso a todo o material dos Cursos da área, videoaulas gravadas, plataforma exclusiva de dúvidas, mentorias personalizadas, certificados e acesso ao Clube do Código por 1 ano.

Isso mesmo: tudo isso com desconto de até 50%! É a oportunidade que faltava para você colocar uma linguagem de programação no seu currículo. Clique nos links abaixo e adquira já os nossos Combos. A oferta é limitadíssima e acabará em muito pouco tempo, então garanta já a sua vaga!

Para conhecer os detalhes de cada curso, você pode navegar pelas páginas dos Cursos aqui. A aquisição dos combos, entretanto, é exclusiva pelos links acima.

Todos os nossos Cursos incluem Nivelamento gratuito em R e podem ser financiados em até 10x sem juros no cartão de crédito. 

Além da euforia: é possível manter o juro baixo no Brasil?

By | Comentário de Conjuntura

Há uma euforia no mercado financeiro brasileiro com os juros básicos na mínima histórica. O investidor mediano que mantinha seu portfólio aplicado basicamente em renda fixa viu seu rendimento cair substancialmente nos últimos anos. Com efeito, muitos desses migraram para o mercado de capitais, impulsionando a criação de novas gestoras e assets país à fora. A maior consequência dessa euforia talvez seja o avanço do índice Bovespa, mesmo com o crescimento econômico ainda bastante aquém do esperado.

Sabemos da evidência empírica que existe uma correlação negativa entre o índice Bovespa e o juro real. Isto é, menos juro reais estão associados a maiores níveis do índice Bovespa. Isso pode ser facilmente ilustrado com um código de R simples. Abaixo, faço um exemplo.


## Pacotes utilizados nesse comentário
library(tidyverse)
library(sidrar)
library(scales)
library(png)
library(grid)
library(zoo)
library(rbcb)
library(ggrepel)
library(gridExtra)
library(readxl)
library(xts)
library(grDevices)
library(ggalt)
library(quantmod)
library(Quandl)

script desse comentário começa, como de hábito, com os pacotes que utilizaremos. A seguir, importo o ibovespa, o juro nominal (Selic) e a expectativa de inflação.


## Ibovespa
env <- new.env()
getSymbols("^BVSP",src="yahoo",
env=env,
from=as.Date('2008-12-01'))
ibovespa = env$BVSP[,4]
ibovespa = ibovespa[complete.cases(ibovespa)]

## Juro Real
selic = Quandl('BCB/1178', order='asc', start_date='2008-12-01')
expinf = get_twelve_months_inflation_expectations('IPCA',
start_date = '2008-12-01')

Com as variáveis importadas, é preciso criar o juro real. Isso é feito na sequência.


selic = xts(selic$Value, order.by = selic$Date)
expinf12 = xts(expinf$mean[expinf$smoothed=='S'],
order.by = expinf$date[expinf$smoothed=='S'])
dataex = cbind(selic, expinf12)
dataex = dataex[complete.cases(dataex),]
juro_ex = (((1+(dataex[,1]/100))/(1+(dataex[,2]/100)))-1)*100

Por fim, eu posso colocá-las em um tibble para gerar um gráfico de correlação como no código abaixo.


## Juntar dados
df01 = cbind(ibovespa, juro_ex)
df01 = df01[complete.cases(df01),]
df01 = tibble(ibovespa=df01[,1], juroreal=df01[,2])

E o gráfico de correlação é posto abaixo.


ggplot(df01, aes(x=juroreal, y=ibovespa/1000))+
geom_point(size=.8, colour='darkblue')+
geom_smooth(method='lm', se=FALSE, colour='red')+
labs(x='Juro Real (% a.a.)', y='Ibovespa (Mil Pontos)',
title='Juro Real vs. Ibovespa',
caption='Fonte: analisemacro.com.br')

Como dito, há uma correlação negativa entre o índice Bovespa e o juro real. Aí está, basicamente, a raiz da euforia que temos visto no mercado financeiro brasileiro, a despeito do crescimento econômico ainda bastante aquém do desejado. O ponto principal, por suposto, é saber até quando vai essa euforia. E isso passa por saber se o atual nível de juro real será mantido no futuro próximo.

Ao longo dos últimos anos, vimos a aprovação de um conjunto importante de reformas estruturais. Em particular, como visto na edição 71 do Clube do Código, a aprovação do teto de gastos teve como efeito reduzir o juro neutro da economia brasileira - o nível de juro real compatível com hiato do produto nulo em uma Curva IS estacionária.

Um ponto importante, entretanto, é saber o quanto essas reformas irão afetar a capacidade de poupança da economia brasileira. Isto porque, sabemos da teoria e da evidência que a taxa de poupança é um dos fatores mais importantes para determinar o nível de juro do país - ver, por exemplo, The Puzzle of Brazil's High Interest Rates. Infelizmente, como se sabe, a taxa de poupança brasileira é não só baixa como cadente nos últimos anos.

Para ilustrar esse ponto, podemos pegar os dados das Contas Nacionais Trimestrais através do pacote sidrar. O código abaixo implementa.


tab1 = get_sidra(api='/t/2072/n1/all/v/933,940/p/all')
pib = tab1$Valor[tab1$`Variável (Código)`==933]
poupanca = tab1$Valor[tab1$`Variável (Código)`==940]
fbcf = get_sidra(api='/t/1846/n1/all/v/all/p/all/c11255/93406/d/v585%200')$Valor

Com o código acima, pegamos os dados do PIB, da Poupança Bruta e da Formação Bruta de Capital Fixo. A seguir, nós tratamos os dados, de modo a colocar em um tibble as taxas de poupança e de investimento acumuladas em quatro trimestres.


dates_1 = seq(as.Date('1996-01-01'), as.Date('2019-09-01'),
by='3 month')
dates_2 = seq(as.Date('2000-01-01'), as.Date('2019-09-01'),
by='3 month')

df1 = tibble(dates=dates_1, fbcf=fbcf)
df2 = tibble(dates=dates_2, pib=pib, poupanca=poupanca)

data = inner_join(df1, df2, by='dates') %>%
mutate(tx_poupanca = (poupanca+lag(poupanca,1)+lag(poupanca,2)+
lag(poupanca,3))/(pib+lag(pib,1)+lag(pib,2)+lag(pib,3))*100) %>%
mutate(tx_investimento = (fbcf+lag(fbcf,1)+lag(fbcf,2)+
lag(fbcf,3))/(pib+lag(pib,1)+lag(pib,2)+lag(pib,3))*100) %>%
transform(dates = as.yearqtr(dates))

Com os dados prontos, podemos construir o gráfico a seguir.

Como se vê, temos um nível de poupança bastante baixo, mesmo se comparado a outros países de mesmo nível de renda per capita. Há muitas explicações para isso, como a existência de uma ampla rede de proteção social no país, incluindo aí a previdência pública, que desincentivaria a necessidade de poupança para a velhice ou a existência de universidades estatais subsidiadas para a classe média, dentre outras.

A dúvida, portanto, é se as reformas aprovadas ao longo dos últimos anos, bem como as que estão ainda em andamento no Congresso serão suficientes para mudar essa questão institucional estrutural, incentivando as famílias e o governo a aumentarem a poupança no médio e longo prazo. Esse ponto é crucial para saber se o juro que estamos experimentando no momento é de fato permanente ou há risco de voltarmos a flertar com juros nominais de um dígito quando a economia conseguir reduzir a ociosidade.

Não é uma questão simples de responder posto que envolve uma economia política bastante complexa. Em particular, passa pela continuação dos avanços reformistas que vivemos nos últimos anos. E isso não é nada trivial.

A conferir...

__________________________

(*) O código completo desse comentário estará logo mais no Clube do Código.

(**) Aprenda a fazer análises como essa com nossos Cursos Aplicados de R.

Cursos Aplicados de R: Inscrições Abertas para as Turmas 2020.1

By | Cursos da Análise Macro

Estão abertas as inscrições para o 1º lote com 30% de desconto das Turmas do 1º Semestre de 2020 dos nossos Cursos Aplicados de R. Temos vagas para 16 Cursos Livres e 3 Formações. O 1º lote é limitado aos primeiros inscritos. As turmas do 1º semestre terão início no dia 17/02 e contarão com Nivelamento em R, de modo que não é necessário nenhum conhecimento prévio na linguagem. Para todos os detalhes sobre as Turmas do 1º Semestre de 2020, continue lendo esse informativo...

Há vagas para as cinco áreas dos nossos Cursos Livres: Data Science, Macroeconomia Aplicada, Econometria, Finanças e Central Banking. Abaixo todos os Cursos e Formações com vagas abertas:

Cursos de Data Science

Macroeconomia Aplicada

Cursos de Econometria

Cursos de Finanças

Cursos de Central Banking

Além disso, também abrimos inscrições para as nossas Formações:

Combos

Exclusivamente para essa edição dos nossos Cursos Aplicados de R, oferecemos combos com todos os Cursos das áreas vistas acima com até 50% de desconto. As vagas dos combos são limitadas aos primeiros inscritos. Você pode adquirir pelos links abaixo:

Inscrições em Lotes

Importante dizer que, para manter o nosso suporte aos alunos funcionando de forma plena, as inscrições serão abertas em lotes. No primeiro lote, daremos desconto de 30% apenas para os primeiros alunos inscritos. Tão logo o primeiro lote atinja o limite de alunos, nós fecharemos ele e passaremos para o segundo lote com as vagas restantes, mas com o preço cheio. As inscrições no primeiro lote costumam acabar rápido, então garanta o quanto antes a sua inscrição!

Planos Disponíveis

Em relação aos planos disponíveis, para os cursos de Análise de Conjuntura, Introdução ao R para Análise de Dados, Macroeconometria II, Microeconometria, Machine Learning, Política Monetária, Modelos do Banco Central, Gestão de Portfólios e para as Formações, será ofertado um Plano Único com acesso por 12 meses, suporte customizado do professor e acesso ao Clube do Código também por 12 meses. Os preços variarão de acordo com a complexidade de cada Curso. Nosso objetivo com isso é dar um treinamento totalmente customizado para os alunos inscritos. Para os demais Cursos, ofereceremos um plano básico e um plano premium. O plano básico dá acesso apenas ao material do curso até 30/06. Já o Plano Premium concede todas as regalias listadas anteriormente no plano único.

Investimento

Os preços dos Cursos variam de acordo com a complexidade do conteúdo. Os alunos poderão financiar a aquisição dos Cursos em até 10x sem juros no cartão de crédito.

Qualquer dúvida adicional, por favor, mande e-mail para comercial@analisemacro.com.br.

______________

Detecção de outliers com o R

By | Dicas de R

Outliers são valores atípicos e distantes das demais observações de um determinado conjunto de dados. A depender do tipo de análise que você esteja fazendo, eles podem distorcer os resultados, levando a conclusões nem sempre verdadeiras. Por isso, é sempre importante fazer uma análise exploratória dos dados, se certificando de que o seu conjunto de dados não está contaminado com esse tipo de problema.

De modo a ilustrar como detectar e descartar outliers no R, vou mostrar aqui a parte introdutória da Edição 73 do Clube do Código, em que faço um exercício relacionando a inflação observada com as expectativas de inflação. Os dados estão disponíveis no Banco Central. Para começar, eu carrego alguns pacotes como abaixo.


## Pacotes
library(rbcb)
library(tidyverse)
library(scales)
library(ggrepel)
library(png)
library(grid)
library(gridExtra)
library(sidrar)
library(readxl)
library(xts)
library(grDevices)
library(ggalt)

Com o pacote rbcb, eu importo os dados de inflação e de expectativa de inflação, já fazendo um tratamento dessa última. O objetivo é ter um tibble com dados mensais de ambas as variáveis.


## Importar expectativas de inflação
expinf = get_twelve_months_inflation_expectations('IPCA',
start_date = '2001-11-01')

expectativa = expinf$mean[expinf$smoothed=='N' & expinf$base==0]
dates = expinf$date[expinf$smoothed=='N' & expinf$base==0]

expinf12 = xts(expectativa, order.by = dates)
expinf12 = apply.monthly(expinf12, FUN=mean)
expinf12 = expinf12[-length(expinf12)]

## Importar inflação
inflacao = get_series(13522, start_date='2001-11-01')

## Juntar dados
data = tibble(date=inflacao$date,
expfocus=as.numeric(expinf12),
inflacao=inflacao$`13522`)
colnames(data) = c('date', 'expfocus', 'inflacao')

Com os dados disponíveis, nós podemos gerar um gráfico de correlação já chamando atenção para os outliers presentes no conjunto de dados. O código abaixo implementa.


select.outliers = data[data$inflacao > min(boxplot.stats(data$inflacao)$out) |
data$expfocus > min(boxplot.stats(data$expfocus)$out),]

ggplot(data, aes(x=inflacao, y=expfocus))+
geom_point(stat='identity')+
geom_encircle(aes(x=inflacao, y=expfocus),
data=select.outliers,
color="red",
size=2,
expand=0.08)+
annotate('text', x=14, y=10,
label='Outliers',
colour='darkblue', size=4.5)+
labs(x='Inflação Observada', y='Expectativa de Inflação',
title='Inflação vs. Expectativa de Inflação no Brasil',
caption='Fonte: analisemacro.com.br com dados do BCB.')

Observe que estou usando a função boxplot.stats do pacote grDevices para construir o intervalo onde vou circular os possíveis outliers do conjunto de dados. Com essa função, nós conseguimos definir um outlier como sendo os valores que estão fora do intervalo composto por [(Q1 - 1,5*IQR), (Q3 + 1,5*IQR)] - para quem é iniciante em estatística, talvez seja necessário conhecer nosso Curso de Introdução à Estatística usando o R. A seguir colocamos o gráfico.

Uma vez identificadas as observações consideradas outliers, nós podemos nos livrar dela com o código abaixo.


outliers = c(boxplot.stats(data$inflacao)$out,
boxplot.stats(data$expfocus)$out)

data_outliers = data[-c(which(data$inflacao %in% outliers),
which(data$expfocus %in% outliers)),]

Produzimos agora um gráfico de correlação sem os pontos considerados outliers como abaixo.

Bem melhor, não?

__________________________

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

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