Baixando séries diretamente do SGS do Banco Central pelo R

Pesquisando pelos blogs a gente acaba conhecendo vários pacotes que fazem isso. Alguns ótimos, outros exageradamente grandes, mas minha dificuldade sempre foi fazer funcionar através do firewall do escritório. Pesquisei um pouco mais e adotei uma abordagem mais minimalista, baixando os dados direto das APIs dos institutos e trabalhando. Segue um código de exemplo simples, facilmente adaptável e a explicação:

Os dados do BCB estão acessíveis através de endereços web especialmente construídos, que podemos colocar no próprio browser. Vou usar como exemplo a série do IBC-BR, que é a série 24363. O endereço para ela é:

http://api.bcb.gov.br/dados/serie/bcdata.sgs.24363/dados?formato=json

Se quiser, experimente colar este endereço no seu navegador. Os dados aparecem razoavelmente ordenados, de acordo com o formato JSON. Repare que o número da série é parte do endereço, portanto, para puxar outra série basta substituir o número dela no local correto.

Para o IBC reparei que a série não vai até o final quado chamada neste endereço. Para vir ela toda eu adiciono no fim uma data inicial e ele interpreta que quero tudo, até o fim. O endereço fica assim:

http://api.bcb.gov.br/dados/serie/bcdata.sgs.24363/dados?formato=json&dataInicial=01/01/2001

Repare que coloquei 2001, mas os dados só começam em 2003. O R possui algumas bibliotecas que lêem os dados no formato JSON, eu escolhi usar a “jsonlite”.


library(jsonlite)

A função que lê os dados JSON é a fromJSON. Na linha a seguir mando ele baixar os dados do endereço, passo pelo fromJSON para traduzir para o formato data.frame e salvo em uma variável.


ibc = fromJSON("http://api.bcb.gov.br/dados/serie/bcdata.sgs.24363/dados?formato=json&dataInicial=01/01/2001")

Se der um erro provavelmente você está no escritório e a TIC está bloqueando o acesso direto. Contornamos isso baixando os dados primeiro para um arquivo e lendo ele a partir daí.


download.file("http://api.bcb.gov.br/dados/serie/bcdata.sgs.24363/dados?formato=json&dataInicial=01/01/2001","ibcbr.json")
ibc = fromJSON("ibcbr.json")

Já podemos ler essa variável IBC no R normalmente, PARECE que está tudo certo. Se analisarmos mais profundamente, no entanto, vemos que os dados estão codificados como “caracteres” e não como números. Vamos fazer a conversão no R mesmo.


ibc$valor = as.numeric(ibc$valor)
ibc$data = as.Date(ibc$data,"%d/%m/%Y")

ibc

plot(ibc, type="l", main="IBC-BR", ylab="", xlab="")

O último gráfico deve ficar assim:

Rplot.jpg

Esse método vale para o BCB, mas para os demais órgãos é semelhante. Só é questão de descobrir como são formados os endereços e qual formato de arquivo eles usam. Por exemplo, no IBGE os endereços são formados com regras de acordo com esta página: http://api.sidra.ibge.gov.br/home/ajuda

Ciência reprodutível com R

Segue o link para uma apresentação do pessoal da Microsoft de como utilizar a linguagem R para aumentar a reprodutibilidade de sua pesquisa. Este vem sendo um tema que tenho insistido nos últimos tempos e que tem crescido bastante, com novos métodos e recomendações práticas mais claras.

Yesterday, I had the honour of presenting at The Data Science Conference in Chicago. My topic was Reproducible Data Science with R, and while the specific practices in the talk are aimed at R users, my intent was to make a general argument for doing data science within a reproducible workflow. Whatever your tools, a reproducible process:Saves time,Produces better science,Creates more trusted research,Reduces the risk of errors, andEncourages collaboration.

Fonte: Reproducible Data Science with R

Trabalho de campo na economia

Interessante texto sobre como a disciplina economia pode se beneficiar da maior difusão do uso de trabalho de campo, isto é, investigação direta, para além do uso tradicional em economia industrial.

More recently, Swann (2008, p. ix) proposed a new direction and a new attitude to applied economics, what he calls “vernacular knowledge of the economy, knowledge of the economy gathered by ordinary people from their everyday interactions with markets.” He argued that “such vernacular knowledge may sit uncomfortably with the formal models of economists […] But no wise economist should discard the vernacular, because it offers insights that can never be found in formal analysis alone.”

Fonte: Fieldwork and model building in economics— Part 2 | World Economics Association

R 3.3.3 lançado

Uma rapidinha, já podem atualizar seus computadores, está disponível uma nova versão do R. Aparentemente conserta alguns bugs apenas, mas melhora a funcionalidade do download.file quando tenta baixar um arquivo de sites que redirecionam o link para um site seguro. Talvez ajude com alguns sites de governo.

Fonte: R 3.3.3 now available

Fazendo previsão com o Profeta (não, não esse)

Vejam só, o Facebook tem um time de dados e eles utilizam o R como ferramenta de estatística. Eles utilizam um pacote próprio para previsão, que utiliza técnicas bayesianas, que pega uma série com datas e dados e cria previsões só com isso. O pacote é aberto e se chama “Prophet”. Versão também disponível para Python.

Dica do blog Revolutions, que é da equipe de dados da Microsoft (!), que tem sua própria versão do R (!!) e que é disponível para nós mortais baixarem (!!!).

Facebook is a famously data-driven organization, and an important goal in any data science activity is forecasting. Now, Facebook has released Prophet, an open-source package for R and Python that implements the time-series methodology that Facebook uses in production for forecasting at scale.

Fonte: Revolutions

Dez regras para usar Git e GitHub

Um tema que venho pesquisando recentemente, desde o curso de inverno na UNICAMP sobre modelos baseados em agente é a questão do compartilhamento e da organização de versões de programação. O sistema Git de versionamento é uma forma de controle de versões e alterações do trabalho que tem utilidade muito maior do que apenas para os programadores puros. GitHub é um programa que facilita a interação entre o seu trabalho e os servidores de hospedagem. Nesse clima, segue um pequeno artigo sobre o tema.

Rule 1: Use GitHub to Track Your Projects:

The backbone of GitHub is the distributed version control system Git. Every change, from fixing a typo to a complete redesign of the software, is tracked and uniquely identified. Although Git has a complex set of commands and can be used for rather complex operations, learning to apply the basics requires only a handful of new concepts and commands and will provide a solid ground to efficiently track code and related content for research projects. Many introductory and detailed tutorials are available (see Table 2 below for a few examples). In particular, we recommend A Quick Introduction to Version Control with Git and GitHub by Blischak et al. [5].

Fonte: PLOS Computational Biology: Ten Simple Rules for Taking Advantage of Git and GitHub