Análise do boletim Focus no Python

O Boletim Focus é uma pesquisa realizada pelo Banco Central do Brasil, que divulga semanalmente as projeções de diversos indicadores macroeconômicos do país. A pesquisa é extremamente útil para entender a conjuntura econômica do país. Para coletar os dados do relatório, podemos utilizar a biblioteca python-bcb, que realiza a conexão com a API do Banco Central e permite realizar a importação dos dados direto para o Python.

Para utilizar o python-bcb é extremamente simples. Primeiro devemos carregar o módulo Expectativas e utilizar suas funções e métodos para realizar a importação.

Utilizamos a função Expectativas() para instanciar com as informações da pesquisa. Salvamos em objeto com o nome "em" para utilizar o método describe() de forma a obtermos as pesquisas disponíveis e conectar com a que desejamos. No caso, queremos obter informações das Expectativas Anuais.

!pip install python-bcb
from bcb import Expectativas
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# Instancia a classe
em = Expectativas()
# Obtém os entitysets (nome das pesquisas)
em.describe()
</pre>
# Obtém as informações da pesquisa
em.describe('ExpectativasMercadoAnuais')

Com as informações conhecidas sobre o data frame a ser importado, utilizamos o método get_endpoint() para conectar com a API do Banco Central e executar a consulta com .query()

ep = em.get_endpoint('ExpectativasMercadoAnuais')
# Dados do IPCA
ipca_expec = ( ep.query()
 .filter(ep.Indicador == 'IPCA', ep.DataReferencia == 2023)
 .filter(ep.Data >= '2022-01-01')
 .filter(ep.baseCalculo == '0')
 .select(ep.Indicador, ep.Data, ep.Media, ep.Mediana, ep.DataReferencia)
 .collect()
  )
# Formata a coluna de Data para formato datetime
ipca_expec['Data'] = pd.to_datetime(ipca_expec['Data'], format = '%Y-%m-%d')

Em conjunto com query(), utilizamos os métodos do pandas de forma a obter os dados já tratados, com os dados da expectativas do IPCA do ano referente a 2023, coletados em 2022.

Por fim, obtemos o data frame com a Media e a Mediana das projeções divulgadas pelo Boletim Focus nas semanas ao longo de 2022. Abaixo, criamos o gráfico para representar a evolução do indicador.

# Configura o tema do gráfico
## Cores
colors = ['#282f6b', '#b22200', '#eace3f', '#224f20', '#b35c1e', '#419391', '#839c56','#3b89bc']
## Tamanho
theme = {'figure.figsize' : (15, 10)}
## Aplica o tema
sns.set_theme(rc = theme,
              palette = colors)


# cria o gráfico
sns.lineplot(x = 'Data',
             y = 'Mediana',
             data = ipca_expec).set(title = 'Expectativas de Mercado para o IPCA - 2023',
                                    xlabel = '',
                                    ylabel = '% a.a.')
# Adiciona a fonte no gráfico
plt.annotate('Fonte: analisemacro.com.br com dados do BCB/SGS',
            xy = (1.0, -0.07),
            xycoords='axes fraction',
            ha='right',
            va="center",
            fontsize=10)

Abaixo, realizamos o mesmo procedimento com a SELIC, o PIB e o Câmbio.

selic_expec = ( ep.query()
 .filter(ep.Indicador == 'Selic', ep.DataReferencia == 2023)
 .filter(ep.Data >= '2022-01-01')
 .filter(ep.baseCalculo == '0')
 .select(ep.Indicador, ep.Data, ep.Media, ep.Mediana, ep.DataReferencia)
 .collect()
  )
selic_expec['Data'] = pd.to_datetime(selic_expec['Data'], format = '%Y-%m-%d')

# cria o gráfico
sns.lineplot(x = 'Data',
             y = 'Mediana',
             data = selic_expec).set(title = 'Expectativas de Mercado para a SELIC - 2023',
                                     xlabel = '',
                                     ylabel = '% a.a.')
# Adiciona a fonte no gráfico
plt.annotate('Fonte: analisemacro.com.br com dados do BCB/SGS',
            xy = (1.0, -0.07),
            xycoords='axes fraction',
            ha='right',
            va="center",
            fontsize=10)


pib_expec = ( ep.query()
 .filter(ep.Indicador == 'PIB Total', ep.DataReferencia == 2023)
 .filter(ep.Data >= '2022-01-01')
 .filter(ep.baseCalculo == '0')
 .select(ep.Indicador, ep.Data, ep.Media, ep.Mediana, ep.DataReferencia)
 .collect()
)
pib_expec['Data'] = pd.to_datetime(pib_expec['Data'], format = '%Y-%m-%d')

# cria o gráfico
sns.lineplot(x = 'Data', y = 'Mediana', data = pib_expec).set(title = 'Expectativas de Mercado para o PIB - 2023',
                                     xlabel = '',
                                     ylabel = '% a.a.')
# Adiciona a fonte no gráfico
plt.annotate('Fonte: analisemacro.com.br com dados do BCB/SGS',
            xy = (1.0, -0.07),
            xycoords='axes fraction',
            ha='right',
            va="center",
            fontsize=10)

cambio_expec = ( ep.query()
 .filter(ep.Indicador == 'Câmbio', ep.DataReferencia == 2023)
 .filter(ep.Data >= '2022-01-01')
 .filter(ep.baseCalculo == '0')
 .select(ep.Indicador, ep.Data, ep.Media, ep.Mediana, ep.DataReferencia)
 .collect()
)
cambio_expec['Data'] = pd.to_datetime(cambio_expec['Data'], format = '%Y-%m-%d')


# cria o gráfico
sns.lineplot(x = 'Data',
             y = 'Mediana',
             data = cambio_expec).set(title = 'Expectativas de Mercado para o Câmbio - 2023',
                                      xlabel = '',
                                      ylabel = '% a.a.')
# Adiciona a fonte no gráfico
plt.annotate('Fonte: analisemacro.com.br com dados do BCB/SGS',
            xy = (1.0, -0.07),
            xycoords='axes fraction',
            ha='right',
            va="center",
            fontsize=10)

_____________________________________

Quer aprender mais?

Seja um aluno da nossa trilha de Macroeconomia Aplicada e aprenda a criar projetos voltados para a Macroeconomia

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como coletar dados do Eurostat usando a API com o Python?

Neste artigo mostramos como pesquisar e como coletar os dados do portal Eurostat através do sistema de API usando a linguagem Python. Este processo permite automatizar rotinas de extração de dados, eliminando trabalho manual e repetitivo de atualização de bases de dados econômicos.

Estimando a volatilidade da taxa de câmbio

O que é Volatilidade? Como podemos calcular essa métrica? Este artigo apresenta uma breve introdução à volatilidade, descreve como podemos calcular a volatilidade utilizando Modelos de Volatilidade Condicional e demonstra a aplicação prática dessa abordagem para estimar a volatilidade da taxa de câmbio BRL/USD por meio da linguagem de programação Python.

Como analisar o Núcleo de Inflação no Brasil usando Python?

O Python se destaca como uma ferramenta robusta para análise de dados, permitindo a aplicação de uma ampla gama de técnicas em dados econômico-financeiros. Neste exercício, destacamos como a linguagem oferece uma facilidade muito grande na coleta de dados dos núcleos do IPCA diretamente do site do Banco Central, na manipulação eficiente desses dados e na construção de gráficos que facilitam a compreensão dos indicadores.

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.