Análise de Dados de Setor Externo no R

Introdução

Na análise de conjuntura econômica a investigação do setor externo do Brasil é uma importante forma de conferir a dinâmica do país em relação ao resto do mundo. Os indicadores produzidos pelo setor externo merecem atenção pelo fato de contribuírem com informações importantes também para a economia doméstica. De forma que seja facilitado a análise desses indicadores, no post de hoje ensinamos como realizar a coleta, tratamento e visualização com o R.

Como exemplos, utilizaremos três indicadores do setor externo que exprimem informações importantes para a macroeconomia dos país e os possíveis caminhos que o Brasil está e pode seguir: Déficit em transações correntes, reservas internacionais e investimento direto no país em relação ao PIB.

Para coletar estes indicadores, importaremos os dados direto do Banco Central, utilizando o pacote {GetBCBData}, conforme os códigos de cada série que se encontram no Sistema Gerenciador de Séries Temporais do Banco Central. Com os códigos em mãos, podemos coletar os dados com a função gbcbd_get_series e realizar o tratamento necessário para visualizar os dados.


library(GetBCBData)
library(tidyverse)
library(ggrepel)
library(scales)

## Parâmetros e códigos para coleta de dados
parametros <- dplyr::lst(
# Balanço de Pagamentos
bpm6 = c(
# Transações correntes - mensal - saldo - US$ (milhões)
"Transações correntes" = 22701,

# Reservas internacionais - Total - mensal - US$ (milhões)
"Reservas internacionais" = 3546,

# Investimento Direto no País acumulado em 12 meses em relação ao PIB - mensal - %
"Investimento Direto no País (12m - % PIB)" = 23080
)
)

 

</pre>
### Coleta de dados

# Balanço de Pagamentos (contas e indicadores)
raw_bpm6 <- GetBCBData::gbcbd_get_series(
id = parametros$bpm6,
first.date = Sys.Date() - 5 * 365,
use.memoise = FALSE
)

# Balanço de Pagamentos (contas e indicadores)
bpm6 <- raw_bpm6 %>%
dplyr::select(
"date" = ref.date,
"variable" = series.name,
value
) %>%
dplyr::as_tibble() %>%
pivot_wider(names_from = variable, values_from = value)
<pre>

 

Déficit em Transações Correntes

</pre>
# Transações Correntes

bpm6 %>%
ggplot(aes(
x = date,
y = -`Transações correntes`/ 1000))+
geom_line(size = 1, color = "#282f6b")+
geom_hline(yintercept = 0, linetype = "dashed")+
labs(x = "",
y = "US$ Bilhões",
title = "Déficit em Transações Correntes",
subtitle = "Saldo Mensal",
caption = "Fonte: analisemacro.com.br com dados do BCB.")+
ggplot2::theme(
plot.title = ggplot2::element_text(size = 14, face = "bold", hjust = 0, vjust = 2),
plot.subtitle = ggplot2::element_text(size = 12, face = "italic", hjust = 0),
plot.caption = ggplot2::element_text(size = 10, hjust = 1),
panel.background = ggplot2::element_rect(fill = "white", colour = "white"),
axis.line.x.bottom = ggplot2::element_line(colour = "black"),
axis.line.y.left = ggplot2::element_line(colour = "black"),
legend.position = "top",
legend.direction = "horizontal",
plot.margin = ggplot2::margin(5, 25, 5, 5),
panel.spacing = ggplot2::unit(2, units = "lines"),
strip.background = ggplot2::element_rect(fill = "transparent", colour = NA),
strip.text = ggplot2::element_text(face = "bold")
)
<pre>

Reservas Internacionais

</pre>
# Reservas Internacionais

bpm6 %>%
ggplot(aes(
x = date,
y = `Reservas internacionais`/ 1000))+
geom_line(size = 1, color = "#b22200")+
labs(x = "",
y = "US$ Bilhões",
title = "Reservas Internacionais",
subtitle = "Estoque mensal",
caption = "Fonte: analisemacro.com.br com dados do BCB.")+
ggplot2::theme(
plot.title = ggplot2::element_text(size = 14, face = "bold", hjust = 0, vjust = 2),
plot.subtitle = ggplot2::element_text(size = 12, face = "italic", hjust = 0),
plot.caption = ggplot2::element_text(size = 10, hjust = 1),
panel.background = ggplot2::element_rect(fill = "white", colour = "white"),
axis.line.x.bottom = ggplot2::element_line(colour = "black"),
axis.line.y.left = ggplot2::element_line(colour = "black"),
legend.position = "top",
legend.direction = "horizontal",
plot.margin = ggplot2::margin(5, 25, 5, 5),
panel.spacing = ggplot2::unit(2, units = "lines"),
strip.background = ggplot2::element_rect(fill = "transparent", colour = NA),
strip.text = ggplot2::element_text(face = "bold")
)
<pre>

Investimento Direto no país

</pre>
# Investimento Direto no país

bpm6 %>%
ggplot(aes(
x = date,
y = `Investimento Direto no País (12m - % PIB)`))+
geom_line(size = 1, color = "#eace3f")+
labs(x = "",
y = "",
title = "Investimento Direto no País",
subtitle = "Acumulado em 12 meses (% PIB)",
caption = "Fonte: analisemacro.com.br com dados do BCB.")+
ggplot2::theme(
plot.title = ggplot2::element_text(size = 14, face = "bold", hjust = 0, vjust = 2),
plot.subtitle = ggplot2::element_text(size = 12, face = "italic", hjust = 0),
plot.caption = ggplot2::element_text(size = 10, hjust = 1),
panel.background = ggplot2::element_rect(fill = "white", colour = "white"),
axis.line.x.bottom = ggplot2::element_line(colour = "black"),
axis.line.y.left = ggplot2::element_line(colour = "black"),
legend.position = "top",
legend.direction = "horizontal",
plot.margin = ggplot2::margin(5, 25, 5, 5),
panel.spacing = ggplot2::unit(2, units = "lines"),
strip.background = ggplot2::element_rect(fill = "transparent", colour = NA),
strip.text = ggplot2::element_text(face = "bold")
)

 

Quer aprender a criar códigos para análises de conjuntura?

Confira nosso curso de Análise de Conjuntura no R, no qual ensinamos a realizar uma análise completa da conjuntura do país realizando a coleta, tratamento e visualização de forma totalmente reprodutível.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como tratar dados no Python? Parte 5: renomeando colunas

Como dar novos nomes significativos para as colunas em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de renomeação de colunas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Como tratar dados no Python? Parte 4: operações por grupos

Como mensalizar dados diários? Ou como filtrar os valores máximos para diversas categorias em uma tabela de dados usando Python? Estas perguntas são respondidas com os métodos de operações por grupos. Neste tutorial mostramos estes métodos disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Boletim AM

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

Boletim AM

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

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.