Tag

coleta de dados Archives - Análise Macro

Coletando dados do IPEADATA com Python

By | Indicadores

A Coleta de dados econômicos é o primeiro passo para o trabalho de um analista de dados econômicos. Por sorte, o processo é facilitado através da biblioteca ipeadatapy, que permite extrair dados do IPEADATA de forma simples através de sua API. No post de hoje, iremos realizar uma demonstração de como é possível utilizar o pacote.

O Ipeadata é um repositório público que mantém dados de diversas fontes e temas de forma a auxiliar analistas e pesquisadores. É disponibilizado via seu site dados sobre macroeconomia, dados regionais e sociais. O seu site possui uma interface amigável que permite navegar entre os diferentes temas e fontes.

Apesar disto, o processo de extração pode ser melhorado através de sua API, que é disponibilizada pela própria plataforma. Por sorte, foi criado um API Wrapper para o Python, sendo facilitado a extração de dados direto para a linguagem.

Carrega a biblioteca

Lista de séries

O primeiro passo para utilizar o ipeadatapy após sua instalação e importação é conhecer os códigos dos diversos indicadores disponibilizados pelo Ipeadata. Apesar de ser possível conhecer as séries através do site http://www.ipeadata.gov.br/Default.aspx, de fato, conhecer o código da série para a extração não é trivial, sendo assim, utilizamos a função list_series() para obter as informações sobre todas as séries, bem como seus respectivos códigos.

Para obter informações sobre uma série em específico, usamos na função um string buscando um nome em comum dessa. Realizamos o procedimento com o Saldo de Admitidos do novo Caged.

Com o código em mãos, é possível obter maiores informações sobre os metadados da série com a função describe().

Metadados

Um outra função para a busca de informações da série, porém, mais completa, se encontra no metadata(), no qual permite a busca da série, porém, com maiores quantidades de filtros e informações.

Veja que desta vez é retornado 15 colunas, cada uma representando uma descrição sobre as séries. Através das informações das colunas, é possível utilizá-las como argumentos de forma a buscar as séries com as função.

Importação da série

Por fim, para extrair os dados do Ipeadata, utilizamos a função timeseries() em conjunto com o código da série para obter os dados de fato. É importado as colunas com o ano, dia, e mês de cada observação, além do valor da série. A importação também traz a data no índice.

A função também utiliza-se de argumentos que possibilitam ajustar o período de importação dos dados. Com eles, é possível extrair os dados em uma data exata, menor ou maior em relação ao ano, mês e dia escolhidos.

A biblioteca auxilia também no processo de visualização rápida com o método plot(). Abaixo, um exemplo de como utilizar o argumento para o eixo x e o eixo y da função, bem com o tipo do gráfico.

Quer saber mais?

Veja nossos cursos de Python aplicado: R e Python para Economistas, Econometria usando R e Python e Estatística usando R e Python

Finanças Quantitativas: Como coletar dados de Criptomoedas no R

By | mercado financeiro

As criptomoedas tem tomado grande espaço dentro do mercado financeiro, tanto como forma de investimento, quanto em discussões sobre sua usabilidade como moeda. Apesar de todas essas questões, é um fato que as criptomoedas inovaram na forma de transacionar moedas, utilizando a tecnologia de blockchain e de criptografia. Vamos explicar neste post como podemos coletar seus preços no R.

As criptomoedas, mais conhecidas como moedas digitais, são ativos descentralizados, ou seja, não possuem o controle de nenhuma autoridade monetária. Em sua grande maioria, como não há emissão de novas moedas por algum órgão, possuem oferta limitada, sendo seu preço medido substancialmente pela demanda.

Além do advento de diferente tipos de moedas digitais, a consolidação e também a aceitação de sua tecnologia pela população mundial, sua demanda tem aumentado substancialmente na última década, elevando os preços de diversas moedas digitais. Iremos visualizar essa mudança ao longo do tempo utilizando a linguagem R.

A primeira forma de realizar a coleta dos preços diários das criptomoedas é através do pacote {quantmod}, utilizando como fonte o Yahoo Finance. Os tickers das criptomoedas podem ser encontradas dentro do site do Yahoo Finance.

Aqui utilizaremos como exemplo o Bitcoin (BTC-USD), Ethereum (ETH-USD) e Dogecoin (DOGE-USD).

library(quantmod)
library(tidyverse)



tickers <- c("BTC-USD", "ETH-USD", "DOGE-USD")

getSymbols(Symbols = tickers, # Os tickers dos ativos a serem coletados
           src = "yahoo", # A fonte da coleta dos dados
           auto.assign = TRUE, # Permitir que faça a auto atribuição
           warnings = FALSE
           )

A função getSymbols() permite que realizemos a coleta de dados direto do Yahoo Finance. É feito também uma auto atribuição dos dados coletados a objetos com o nomes dos tickers na forma OHLCVA (Open, High, Low, Close, Volume e Adjusted).

Podemos por fim realizar a visualização dos dados coletados. O próprio pacote fornece meios simplificados para gerar os gráficos.

chartSeries(`BTC-USD`)

Podemos também mudar as cores dos gráficos.

chartSeries(`ETH-USD`,
            theme = chartTheme('white',
                               up.col='blue',
                               dn.col='red')
            )

chartSeries(`DOGE-USD`,
            theme = chartTheme('white',
                               up.col='blue',
                               dn.col='red'),
            subset = "2021") # Filtra o período de tempo

Outro pacote que vale a menção é o {coinmarketcapr}, que nos dá informações além dos preços das criptomoedas, porém, com um limite de uso e de informações que podem ser coletadas através do plano de básico da API. Portanto, não iremos fazer sua avaliação aqui, somente deixando para quem queira se aprofundar neste campo.

________________________
(*) Para entender mais sobre Mercado Financeiro e aprender como realizar a coleta, tratamento e visualização de dados financeiros, confira nosso curso de R para o Mercado Financeiro.

Baixando dados do IPEADATA, FGV, Banco Central e IBGE com o R

By | Dados Macroeconômicos

É com enorme felicidade que tenho visto a maior penetração do no país. Ao longo das últimos meses, por onde passo, sou abordado por pessoas que conhecem a Análise Macro e estão interessadas em aprender o R. Passados dois anos do início desse projeto - sim, estamos comemorando dois anos! -, não deixa de ser bastante auspicioso verificar o avanço do uso da linguagem entre estudantes, profissionais de mercado e professores. Uma das formas de avaliar esse avanço, diga-se, é na produção de pacotes para coleta de dados nas principais bases do país. Nesse post, vou falar dos pacotes atualmente disponíveis para pegar dados do IPEADATA, FGV, IBGE Banco Central. Caso tenha esquecido de algum, por favor, deixe aí nos comentários!

BETS

O pacote que mais tenho utilizado atualmente para pegar dados dessas bases é o BETS, pacote produzido pelo pessoal da FGV. Está disponível no CRAN e tem se mostrado bastante estável, à medida que alguns bugs foram corrigidos. Ele pode ser utilizado para pegar dados do Banco Central, IBGE e da FGV. Um vignette do pacote está disponível aqui.


library(BETS)

BETS.chart(ts = 'iie_br', file = "iie_br", open = TRUE)

rbcb

Outro pacote que tenho utilizado é o rbcb, produzido pelo Wilson Freitas. Ele serve, como o próprio nome já entrega, para coletar dados do Banco Central.

library(rbcb)
library(ggplot2)
ipca = get_series(433)
ggplot(ipca, aes(x=date))+
 geom_line(aes(y=ipca$`433`), col='darkblue')

ribge

Um pacote que conheci recentemente foi o ribge, que ainda está em fase de desenvolvimento, disponível no GitHub. Tomare que ao longo dos próximos meses esteja plenamente funcional!

ecoseries

Por fim, outro pacote que também coleta dados do SIDRA IBGE, Banco Central e IPEADATA é o ecoseries, disponível no CRAN.


library(ecoseries)
library(BETS)
library(ggplot2)
library(forecast)

ipca = window(ts(series_ipeadata('36482', 
 periodicity = 'M')$serie_36482$valor,
 start=c(1979,12), freq=12), start=c(1999,08))

base = window(BETS.get(1833), start=c(1999,08))

data = ts.intersect(base, ipca)

par(mar=c(5,4,4,5)+.1)
plot(data[,1]/1000000, xlim=c(2000,2017), xlab='', ylab='Base Monetária',
 col='red', lty=1, lwd=2)
par(new=T)
plot(data[,2], xlim=c(2000,2017), xlab='', ylab='', 
 xaxt='n',yaxt='n', col='blue', lty=1, lwd=2) 
axis(4)
mtext('IPCA',side=4,line=3)
mtext('Base Monetária vs. IPCA', side=3, line=1, font=2)
mtext('Fonte: analisemacro.com.br com dados do IPEA e do BCB.', 
 side=1, line=3, font=1)
legend('topleft', col=c('red','blue'), lty=c(1,1), lwd=c(2,2),
 legend=c('Base', 'IPCA'))
grid()


Na minha visão, o e outras linguagens como o Python serão cada vez mais utilizadas no país, seja para fazer coleta de dados como os exemplos aqui, seja para facilitar/automatizar a vida dos analistas. E, claro, o momento de se tornar fluente nessas linguagens é agora! 🙂

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente