Tag

rbcb Archives - Análise Macro

Coletando dados macroeconômicos em R e Python

By | Indicadores

O objetivo de lidar com dados Macroeconômicos é verificar o comportamento econômico de um determinado país em um dado período tempo, afim de realizar comparações com a Teoria Macroeconômica, bem como analisar o efeito de políticas econômicas, eventos extremos e a conjuntura econômica como um todo. Os dados também são imprescindíveis para a realização de previsões econômicas. Mas como obter esses dados? Explicamos neste post como é possível obter dados Macroeconômicos a partir do R e do Python, de forma fácil e rápida.

Antes de coletar os dados, devemos entender o que é Macroeconomia e o que são de fato os seus dados.

A macroeconomia estuda o comportamento de variáveis agregadas de uma economia. Portanto, é uma junção de decisões e comportamento de indivíduos e empresas. Sendo assim, essas agregações são criadas a partir da compreensão da lógica econômica, do uso intensivo da estatística e da junção dos dados das decisões de diversos agentes econômicos de um país, construindo o que conhecemos como variáveis macroeconômicas. A partir destas variáveis, é possível testar a teoria macroeconômica através da análise e modelagem dos dados.

E como podemos obter essas agregação de decisões e quais são elas? Na macroeconomia, existem variáveis agregadas que possuem uma  importância relativa maior que as outras para se realizar uma análise de dados, muito devido suas respectivas importância na teoria e seus efeitos sobre a população em geral.

As variáveis mais importantes são: o Produto Interno Bruto, que mensura o total de bens e serviços produzidos em um país, sendo um importante indicador de crescimento econômico; A Inflação, sendo a variação generalizada dos preços da economia e no qual é medida por indicadores, como o IPCA, IGP-m e entre outros; Desemprego; Juros; e entre outras variáveis.

Como exemplos utilizaremos três variáveis macroeconômicas coletadas por meio do R e do Python utilizando duas fontes diferentes: Ipeadata e o Sistema Gerenciador de Séries Temporais do Banco Central , duas fontes importantes para se coletar dados econômicos (mas não os únicos).

Dados Macroeconômicos no R

No R, é possível extrair estes dados utilizando os pacotes {ipeadatar} e {rbcb}, que coletam os dados do Ipeadata e Banco Central, respectivamente. A facilidade dos dois pacotes está no fato de que é extremamente fácil encontrar a séries por meio de funções do pacote, além de que os dados são importados de forma já tratadas, o que facilita a vida do analista de dados econômicos. Abaixo, segue os exemplos.

Coletando o PIB com o {ipeadatar}

Para buscar a série do PIB, devemos buscar a série utilizando a função search_series() afim de buscar o seu código. Através da função, busca-se um termo em comum do nome da série, como se fosse utilizado o buscador do site do Ipeadata. Esse processo pode ser um pouco complicado para iniciantes devido ao  fato de não se conhecer o nome da série a primeiro momento. No caso, buscamos pela série do PIB buscando o termo "PIB - preços de mercado". O que resultará em duas séries, uma medida unidades de R$ e outra em índice. Para obter mais detalhes de cada série, é utilizado a função metadata(), passando o código da série.



Coletando dados do IPCA com o {rbcb}

Para coletar os dados do SGS do Banco Central, o pacote {rbcb} nos auxilia, provendo também uma função que permite procurar o código da série, porém, este sendo um gadjet, criado por um Shiny. Outro método para buscar o código da série é através do site do SGS. No exemplo abaixo, buscamos a série da variação mensal do IPCA, reduzimos  a amostra da série para após de 2005, com o argumento start.

Coletando dados macroeconômicos com o Python

Para coletar os dados de ambas as fontes no Python utilizaremos as bibliotecas {ipeadatapy} e {python-bcb}, que possuem sintaxe similares ao do R. Desta vez, buscaremos os dados do Caged, que mensura o saldo de empregados com carteira assinada em um dado mês, através do Ipeadata e a Taxa Meta Selic, que determina os juros básico da economia brasileira, coletada através do SGS do Banco Central.

Coletando dados do Novo Caged com o {ipeadatapy}

Para buscar uma série do Ipeadata com o {ipeadatapy}, utilizamos a função list_series para obter uma lista de todas as séries do Ipedata com seus respectivos códigos. É possível passar dentro da função um termo para especificar a procura de uma série, no caso, como queremos obter a série do Caged, usamos na função a string 'Caged'.

Com a função describe(), obtemos os metadados da série escolhida, no caso, sendo "Empregados - saldo - novo caged".

Por fim, para importar a série, usamos a função timeseries(), veja que utilizamos o código para buscar a série e também filtramos o ano de interesse utilizando o argumento yearGreaterThan, obtendo os dados após 2021 (não é incluído o ano de 2020).

Coletando dados da Selic com o {python-bcb}

Para obter dados do Banco Central, o {python-bcb} (o {rbcb} do R, porém no Python), pode nos auxiliar. Para obter a série, assim como no {rbcb}, precisamos do código da mesma obtida no Sistema Gerenciador de Séries Temporais. Aqui, também é possível escolher a data de interesse utilizando o argumento start.

 

Quer saber mais?

Veja nossos cursos de R e Python para Análise de dados, onde ensinamos nossos alunos a coletar dados macroeconômicos e financeiros.

Como importar dados do Banco Central, IPEADATA e Sidra no R?

By | Data Science

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 reproduzir o exercício a seguir você precisará dos seguintes pacotes:

library(GetBCBData) # CRAN v0.6
library(ipeadatar) # CRAN v0.1.5
library(sidrar) # CRAN v0.2.7 
library(dplyr) # CRAN v1.0.7 
library(stringr) # CRAN v1.4.0

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 existem alguns pacotes que facilitam o trabalho:

  • {GetBCBData}: interface para acessar API de dados do SGS/BCB, possibilita a extração de uma ou diversas séries na mesma requisição, retorna objeto data frame em formato "long" ou "wide" e, opcionalmente, executa requisições com processamento paralelo e com sistema de cache de dados.
  • {rbcb}: interface para acessar API's do SGS, Sistema de Expectativas e dados de taxa de câmbio;
  • {meedr}: interface para acessar API do Sistema de Expectativas, com recursos de processamento paralelo e sistema de cache similar ao {GetBCBData}, disponível apenas no GitHub atualmente.

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 {GetBCBData}, aponte na função gbcbd_get_series() o código e período desejado, observando a documentação dos argumentos desta função, conforme abaixo:

# Coletar dados da SELIC no SGS/BCB
dados_sgs <- GetBCBData::gbcbd_get_series(
id = 432,
first.date = "2020-01-01",
last.date = Sys.Date()
)
tail(dados_sgs)

# ref.date value id.num series.name
# 768 2022-02-06 10.75 432 id = 432
# 769 2022-02-07 10.75 432 id = 432
# 770 2022-02-08 10.75 432 id = 432
# 771 2022-02-09 10.75 432 id = 432
# 772 2022-02-10 10.75 432 id = 432
# 773 2022-02-11 10.75 432 id = 432

Para coletar múltiplas séries especifique um vetor numérico (nomeado ou não) com os códigos das séries. Perceba que também especificamos o formato desejado dos dados "wide", ou seja, uma coluna para cada variável.


dados_sgs <- GetBCBData::gbcbd_get_series(
id = c("Dólar" = 3698, "IBC-Br" = 24363, "Resultado Primário" = 5793),
first.date = "2020-01-01",
last.date = Sys.Date(),
format.data = "wide"
)
tail(dados_sgs)

# ref.date Dólar IBC-Br Resultado Primário
# 20 2021-08-01 5.2517 142.17 1.56
# 21 2021-09-01 5.2797 138.86 0.63
# 22 2021-10-01 5.5400 138.07 0.24
# 23 2021-11-01 5.5569 139.76 -0.15
# 24 2021-12-01 5.6514 141.46 -0.75
# 25 2022-01-01 5.5341 NA NA

Dessa forma simples conseguimos acesso rápido e fácil a diversas séries. Consulte os detalhes dos argumentos na documentação do pacote e, sobre as séries, no site do BCB.

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}1 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);

# Extrair tabela com todas séries e códigos disponíveis
series_ipeadata <- ipeadatar::available_series()
# Filtrar séries com o termo "caged"
dplyr::filter(
series_ipeadata,
stringr::str_detect(source, stringr::regex("caged", ignore_case = TRUE))
)

# # A tibble: 10 x 7
# code name theme source freq lastupdate status
# <chr> <chr> <fct> <fct> <fct> <date> <fct>
# 1 CAGED12_ADMISN12 Empregados - admissõe~ Macr~ Min. ~ Mont~ 2022-02-02 "Acti~
# 2 CAGED12_DESLIGN12 Empregados - demissõe~ Macr~ Min. ~ Mont~ 2022-02-02 "Acti~
# 3 CAGED12_SALDON12 Empregados - saldo - ~ Macr~ Min. ~ Mont~ 2022-02-02 "Acti~
# 4 CAGED12_ADMIS Empregados - admissões Macr~ MTE/C~ Mont~ 2020-05-27 "Inac~
# 5 CAGED12_DESLIG Empregados - demissões Macr~ MTE/C~ Mont~ 2020-05-27 "Inac~
# 6 CAGED12_SALDO12 Empregados - saldo Macr~ MTE/C~ Mont~ 2020-05-27 "Inac~
# 7 ADMIS Total da evolução de ~ Regi~ MTE/C~ Mont~ 2020-07-07 ""
# 8 ADMISNC Total da evolução de ~ Regi~ MTE/C~ Mont~ 2022-02-04 ""
# 9 DESLIG Total da evolução de ~ Regi~ MTE/C~ Mont~ 2020-07-07 ""
# 10 DESLIGNC Total da evolução de ~ Regi~ MTE/C~ Mont~ 2022-02-04 ""

  • Passo 2: aponte na função ipeadata() o(s) código(s) da(s) séries(s), conforme abaixo:

dados_ipeadata <- ipeadatar::ipeadata("CAGED12_SALDON12")
tail(dados_ipeadata)

# # A tibble: 6 x 5
# code date value uname tcode
# <chr> <date> <dbl> <ord> <int>
# 1 CAGED12_SALDON12 2021-07-01 316725 "" NA
# 2 CAGED12_SALDON12 2021-08-01 373344 "" NA
# 3 CAGED12_SALDON12 2021-09-01 316993 "" NA
# 4 CAGED12_SALDON12 2021-10-01 253083 "" NA
# 5 CAGED12_SALDON12 2021-11-01 324112 "" NA
# 6 CAGED12_SALDON12 2021-12-01 -265811 "" NA

Dessa forma simples conseguimos acesso rápido e fácil a diversas séries. Consulte os detalhes dos argumentos na documentação do pacote e, sobre as séries, pela função metadata() ou no site da instituição.

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 marcamos "Variável" = "IPCA - Variação mensal (%)"; "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 de consulta com filtros na tabela 7060 (Sidra/IBGE)
cod_sidra <- "/t/7060/n1/all/v/63/p/all/c315/7169/d/v63%202"
# Coleta dos dados com o código
dados_sidra <- sidrar::get_sidra(api = cod_sidra)

tail(dplyr::as_tibble(dados_sidra))

# # A tibble: 6 x 13
# `Nível Territorial ~` `Nível Territo~` `Unidade de Me~` `Unidade de Me~` Valor
# <chr> <chr> <chr> <chr> <dbl>
# 1 1 Brasil 2 % 0.87
# 2 1 Brasil 2 % 1.16
# 3 1 Brasil 2 % 1.25
# 4 1 Brasil 2 % 0.95
# 5 1 Brasil 2 % 0.73
# 6 1 Brasil 2 % 0.54
# # ... with 8 more variables: `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.

Ressalvas

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.

Para suporte personalizado e aprofundamento dê uma olhada nos cursos aplicados da Análise Macro, como o Análise de Conjuntura usando o R.

 


1 Em Python há uma biblioteca correspondente, o ipeadatapy.

Relatório AM #15 - Crédito

By | Indicadores

No Relatório AM dessa semana, vamos comentar sobre o setor de crédito. Como podemos ver nos gráficos abaixo, as concessões de crédito nos últimos anos contam a história recente da economia brasileira através da confiança que os credores têm no estado geral da economia, no caso das concessões livres. Essa medida, que de modo geral está em escala muito maior que o crédito direcionado, sofreu forte impacto com a crise de 2016, porém já estava em plena recuperação no começo de 2020. Com a incerteza causada pela pandemia, há um duro choque nas concessões, porém os dados indicam novamente a recuperação. Por outro lado, o crédito direcionado, que esteve em seu auge até 2015, não se recuperou da crise de 2016, aumentando apenas durante a pandemia, com a concessão de crédito sendo utilizada como um combate à recessão.

Outro efeito da crise de 2016 que pode ser observado é o recuo da participação do crédito privado no crédito total. Isso pode ser considerado indicativo de que, com o estouro da crise, os credores estavam sendo mais cautelosos frente à incerteza da economia, o que é corroborado pela diminuição do estoque de crédito entre seu pico em 2016 e 2019.

Para finalizar, visualizamos abaixo a pesquisa trimestral de condições de crédito. É interessante notar que os movimentos não são perfeitamente sincronizados com a tendência generalizada, com a oferta de crédito habitacional e para grandes empresas sendo desfavorecida logo no começo de 2015, enquanto que o crédito para consumo e para pequenas empresas (MPMEs) demorou a se retrair. Com a pandemia, todos os 4 tipos tiveram redução nas condições de oferta, e, apesar das últimas pesquisas apresentarem melhora, o patamar do final de 2019 não foi recuperado.

________________________

(*) Para entender mais sobre crédito e análise de conjuntura econômica, confira nosso Curso de Análise de Conjuntura usando o R - Versão 5.0.

Relatório AM #14 - Política fiscal

By | Indicadores

No Relatório AM de hoje, vamos comentar a situação da política fiscal nos últimos meses. A análise é feita com os dados disponibilizados pelo STN, porém a última atualização ocorreu em maio desse ano, então há certa defasagem nos valores apresentados. Inicialmente, vamos apresentar os resultados acumulados em 12 meses para maio desse ano, e do ano passado:

Como podemos ver, as receitas do governo parecem ter um crescimento estável, porém as políticas necessárias para o combate da pandemia e manutenção do bem-estar da população aumentaram fortemente as despesas, abrindo o déficit nominal. É interessante notar que essa trajetória negativa vai na contramão da tendência pré-pandemia, que era de melhora do resultado nominal, em face da crise de 2016:

Ademais, podemos ver que a composição dos gastos foi diferente durante a pandemia, correspondendo ao caráter emergencial das medidas tomadas. Com isso, era esperado que o resultado fiscal fosse melhor após o aumento do estoque de pessoas vacinadas.

Há, porém, uma grande dúvida aberta em torno da agenda fiscal que tem sido tocada pelo Congresso. Em particular, temas antigos como o dos precatórios voltaram à pauta, bem como há diversos questionamentos em relação à reforma tributária.

Todos esses questionamentos se refletem no aumento do risco-país nas últimas semanas, como pode ser visto no gráfico abaixo.

________________________

(*) Para entender mais sobre política fiscal e análise de conjuntura econômica, confira nosso Curso de Análise de Conjuntura usando o R - Versão 5.0.

Relatório AM #13 - Previsões

By | Indicadores

No Relatório AM dessa semana, vamos apresentar de modo conjunto o resultado de nossos modelos preditivos para as próximas observações de algumas variáveis macroeconômicas. Tais previsões são resultado de intensa modelagem estatística, e demonstram a utilidade do R como ferramenta para o dia-a-dia de um economista.

Abaixo, apresentamos as previsões para a PMC:

E também para a PMS:

Finalmente, apresentamos a expectativa para o IPCA. Ela está disponível online, em um de nossos dashboards.

_______________________

(*) Para maiores detalhes sobre o uso desse tipo de modelo para fins de previsão, conheça nossos Cursos de Previsão Macroeconométrica e Modelos Preditivos aplicados à Macroeconomia.

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

Assinar Gratuitamente