Como obter dados macroeconômicos com a linguagem R? Um guia para sair do Excel

Introdução

Neste exercício mostramos como dar os primeiros passos para acessar dados brasileiros de fontes públicas, disponibilizados nas volumosas bases do BCB, IPEADATA e IBGE. Estas fontes constituem um ativo valiosíssimo para pesquisadores e profissionais de mercado - além de ser um “parquinho de diversões” para amantes de dados -, sendo fundamental o domínio de linguagens de programação como o R para coleta e automatização de rotinas.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Dados do BCB

Existem diversas bases de dados que o Banco Central do Brasil (BCB) disponibiliza para acesso público, dentre elas:

  • Sistema Gerenciador de Séries Temporais (SGS): milhares de séries econômico-financeiras de diversas fontes;
  • Sistema Expectativas de Mercado: dados de expectativas de agentes de mercado para indicadores econômicos, compilados no Relatório Focus.

E para acessar estes dados pela linguagem R podemos utilizar o pacote {rbcb}.

  • {rbcb}: interface para acessar API’s do SGS, Sistema de Expectativas e dados de taxa de câmbio;

Sistema Gerenciador de Séries Temporais (SGS)

Vamos a um exemplo: suponha que você queira coletar uma série temporal do SGS/BCB (usaremos o código 432 da taxa SELIC no exemplo).

  • Passo 1: localize no site https://www3.bcb.gov.br/sgspub/ o código da série desejada;
  • Passo 2: utilizando o pacote {rbcb}, aponte na função get_series() o código e período desejado, observando a documentação dos argumentos desta função, o resultado é exposto conforme abaixo:
Código
# A tibble: 6 × 2
  date       selic
  <date>     <dbl>
1 2023-12-26  11.8
2 2023-12-27  11.8
3 2023-12-28  11.8
4 2023-12-29  11.8
5 2023-12-30  11.8
6 2023-12-31  11.8

Sistema Expectativas de Mercado

Aprenda a coletar, processar e analisar dados na formação de Do Zero à Análise de Dados Econômicos e Financeiros com a linguagem R.

No segundo exemplo mostramos como obter dados do Sistema Expectativas de Mercado.

  • Passo 1: Checar a série de interesse conforme a documentação do sistema de Expectativas do BCB através do site https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/documentacao
  • Passo 2: Usar a função get_market_expectations para retornar as expectativas de mercado discutidas no Relatório Focus que resume as estatísticas calculadas a partir das expectativas coletadas junto aos profissionais de mercado.

A função aceita como argumento as seguintes pesquisas:

  • annual: expectativas anuais
  • quarterly: expectativas trimestrais
  • monthly: expectativas mensais
  • top5s-monthly: monthly: expectativas mensais para os top 5 indicadores
  • top5s-annual: expectativas anuais para os top 5 indicadores
  • inflation-12-months: expectativas de inflação para os próximos 12 meses
  • institutions: expectativas de mercado informadas por instituições financeiras

 

O gráfico abaixo mostra o resultado da importação das expectativas anuais do IPCA.

Dados do IPEADATA

O IPEADATA oferece um grande volume de dados com acesso público, organizados nos seguintes temas:

  • Macroeconômico: dados econômicos e financeiros do Brasil em séries anuais, mensais e diárias na mesma unidade monetária;
  • Regional: dados econômicos, demográficos e geográficos para estados, municípios (e suas áreas mínimas comparáveis), regiões administrativas e bacias hidrográficas brasileiras;
  • Social: dados e indicadores sobre distribuição de renda, pobreza, educação, saúde, previdência social e segurança pública.

E para acessar estes dados no R existe o pacote {ipeadatar}, que possibilita ler e pesquisar metadados e extrair variáveis de interesse.

Vamos a um exemplo: suponha que você queira coletar a série do saldo do Novo CAGED.

  • Passo 1: utilize a função available_series() para localizar a série desejada e obter o código da mesma (retorna um tibble);
Código
# A tibble: 10 × 7
   code              name                   theme source freq  lastupdate status
   <chr>             <chr>                  <fct> <fct>  <fct> <date>     <fct> 
 1 CAGED12_ADMIS     Empregados - admissõe… Macr… MTE/C… Mont… 2020-05-27 "Inac…
 2 CAGED12_DESLIG    Empregados - demissõe… Macr… MTE/C… Mont… 2020-05-27 "Inac…
 3 CAGED12_SALDO12   Empregados - saldo - … Macr… MTE/C… Mont… 2020-05-27 "Inac…
 4 CAGED12_ADMISN12  Empregados - admissõe… Macr… Min. … Mont… 2024-03-20 "Acti…
 5 CAGED12_DESLIGN12 Empregados - demissõe… Macr… Min. … Mont… 2024-03-20 "Acti…
 6 CAGED12_SALDON12  Empregados - saldo - … Macr… Min. … Mont… 2024-03-20 "Acti…
 7 ADMIS             Empregados - admissõe… Regi… MTE/C… Mont… 2020-07-07 ""    
 8 ADMISNC           Empregados - admissõe… Regi… MTE/C… Mont… 2024-03-26 ""    
 9 DESLIG            Empregados - demissõe… Regi… MTE/C… Mont… 2020-07-07 ""    
10 DESLIGNC          Empregados - demissõe… Regi… MTE/C… Mont… 2024-03-26 ""    
  • Passo 2: aponte na função ipeadata() o(s) código(s) da(s) séries(s), e realize a importação. Podemos verificar o gráfico da variável importada abaixo:
Código
# A tibble: 6 × 5
  code             date         value uname tcode
  <chr>            <date>       <dbl> <ord> <int>
1 CAGED12_SALDON12 2023-08-01  220844 ""       NA
2 CAGED12_SALDON12 2023-09-01  211764 ""       NA
3 CAGED12_SALDON12 2023-10-01  190366 ""       NA
4 CAGED12_SALDON12 2023-11-01  130097 ""       NA
5 CAGED12_SALDON12 2023-12-01 -430159 ""       NA
6 CAGED12_SALDON12 2024-01-01  180395 ""       NA

Dados do Sidra/IBGE

O Sidra é um sistema disponibilizado pelo IBGE com bases de dados públicas dos mais variados temas, organizados em tabelas agregadas (não identificam o informante). Estes dados são oriundos das pesquisas e diversos trabalhos que a instituição realiza, podendo conter informações atreladas a nível territorial, a um período de tempo, a classificações ou a unidades de medida/cálculos estatísticos.

Para acessar estes dados no R existe o pacote {sidrar}, que possibilita pesquisar tabelas, obter informações de parâmetros de consulta e extrair dados de tabelas de interesse.

Vamos a um exemplo: suponha que você queira coletar dados de uma tabela do Sidra/IBGE (usaremos a tabela 7060 referente ao IPCA no exemplo). Você pode usar o próprio pacote para especificar uma consulta com filtros ou construir essa consulta diretamente no site do Sidra (mais fácil), obtendo um código de consulta.

  • Passo 1: localize no site https://sidra.ibge.gov.br/ a tabela de interesse e aplique os filtros desejados (neste caso usaremos a tabeça 7060, marcamos “Variável” = “IPCA - Variação acumulada em 12 meses (%)”; “Geral, grupo, subgrupo, item e subitem” = “Índice geral”; “Mês” = todos períodos disponíveis e “Unidade Territorial” = “Brasil”);
  • Passo 2: clique no botão de compartilhar na parte inferior chamado “Links de compartilhar” e, na tela que se abre, copie o código a partir de “/t/” (inclusive) até o final;
  • Passo 3: aponte na função get_sidra(), usando o argumento api, o código de consulta obtido no passo anterior, conforme abaixo:
Código
# A tibble: 6 × 13
  `Nível Territorial (Código)` `Nível Territorial` `Unidade de Medida (Código)`
  <chr>                        <chr>               <chr>                       
1 1                            Brasil              2                           
2 1                            Brasil              2                           
3 1                            Brasil              2                           
4 1                            Brasil              2                           
5 1                            Brasil              2                           
6 1                            Brasil              2                           
# ℹ 10 more variables: `Unidade de Medida` <chr>, Valor <dbl>,
#   `Brasil (Código)` <chr>, Brasil <chr>, `Variável (Código)` <chr>,
#   Variável <chr>, `Mês (Código)` <chr>, Mês <chr>,
#   `Geral, grupo, subgrupo, item e subitem (Código)` <chr>,
#   `Geral, grupo, subgrupo, item e subitem` <chr>

Dessa forma simples conseguimos acesso rápido e fácil aos dados de qualquer tabela do Sidra. Consulte os detalhes e mais opções na documentação do pacote e, sobre as tabelas, no site da instituição.

Considerações

Note que as fontes de dados aqui exploradas são públicas e, apesar de serem um ativo valiosíssimo para os amantes de dados, frequentemente podem apresentar instabilidades. Se você obteve um erro estranho ao tentar extrair dados destas fontes, verifique no site da instituição se está tudo ok e tente novamente em outro momento se for o caso.

Além disso, API’s de dados públicos geralmente possuem limitações de requisição/acessos - como é o caso Sidra/IBGE -, portanto, utilize com cautela e responsabilidade, evitando realizar requisições de dados desnecessárias.

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

Criando Tabelas com o Python: mostrando o poder da linguagem sobre o Excel

Nos dias atuais, pessoas que trabalham com dados estão constantemente confrontados com um dilema: criar uma tabela não tão genial no Excel ou manter em um formato ainda pior, como um dataframe, mas mantendo a flexibilidade de obtenção dos dados. Podemos resolver esse grande problema, unindo a flexibilidade e beleza ao usar a biblioteca great_tables do Python.

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.