Category

Dados Macroeconômicos

Projeções macroeconômicas para 2022

By | Dados Macroeconômicos, Indicadores

2022 será mais um ano novo com velhos desafios. A combinação de inflação acima da meta, atividade econômica em recessão técnica, alto desemprego e contas públicas deterioradas é ao mesmo tempo passado e futuro da economia brasileira. A perspectiva não é animadora, confira nossos números dos principais indicadores macroeconômicos abaixo.

Com a inflação corrente em patamar elevado e acima da meta, além da surpresa do IPCA em outubro, nossa projeção de inflação para 2021 é de 9,82%, convergindo para dentro do intervalo da meta somente após o segundo semestre de 2022 e encerrando em 3,74%.

O custo de trazer a inflação para meta será enorme e o Banco Central deve continuar fazendo sucessivos aumentos da taxa de juros durante o primeiro semestre de 2022, com SELIC terminal projetada em 10,75% a.a. e risco de alta.

O impacto da contração monetária será significativo, mas ainda assim o PIB deve apresentar - com otimismo - crescimento de 1,83% em 2022. O valor é abaixo da média histórica (2,20%) da série, mensurada a partir de 2000. Na variação marginal, a economia deve sair do terreno negativo somente a partir do segundo trimestre de próximo ano.

Por fim, a moeda brasileira deve seguir se desvalorizando significativamente, encerrando o ano de 2022 com a taxa de câmbio nominal cotada acima dos (R$/US$) 7,00.

_________________

Saiba mais sobre modelos de previsão nos cursos de Macroeconomia Aplicada utilizando o R da Análise Macro.

5 armadilhas dos dados (macro)econômicos no Brasil

By | Dados Macroeconômicos

Diariamente os economistas utilizam uma grande variedade de dados que são de difícil mensuração e que, portanto, são estimados/coletados por terceiros (IBGE, BCB, etc.). A falta de investigação aprofundada sobre como esses dados são produzidos, entendendo seus pontos fortes e suas limitações, pode nos levar a cair em algumas "armadilhas" peculiares.

Apesar de as fontes públicas de dados econômicos e financeiros do Brasil serem aderentes as "boas práticas" de dados do FMI - conforme o site dedicado ao assunto intitulado "Dissemination Standards Bulletin Board (DSBB)" -, o tema de qualidade de dados (macro)econômicos por essas bandas é sempre produtivo. Problemas de consistência, mudança de metodologia, disponibilidade e acesso a bancos de dados são corriqueiros no dia a dia de quem trabalha com esses dados, de modo que, mesmo que se queira fazer uma simples análise, você provavelmente precisará "matar um leão por dia". Em um contexto mais amplo, frequentemente circulam notícias reportando algum tipo de desvario observado em dados públicos, desde na área da saúde até em dados de programas sociais.

Apesar dos problemas, dados são o sangue que corre na veia de quase todo macroeconomista - eles não sobrevivem sem! - sendo imprescindível conhecer suas nuances. Dessa forma, destacamos abaixo 5 casos das principais armadilhas e nuances dos dados (macro)econômicos brasileiros:

1) Dados simplesmente somem

Talvez a "armadilha" mais gritante seja a situação inesperada de determinado dado, que você habitualmente utiliza, simplesmente... sumir. Nessas circunstâncias, o primeiro palpite razoável que pode surgir é que a pesquisa/variável/etc. pode ter sido descontinuada pela fonte primária. Mas, como é o caso de diversas variáveis, os dados são geralmente mantidos no banco de dados para acesso, mesmo que não haja ingestão de dados novos. Não foi o caso, por exemplo, do que aconteceu alguns meses atrás com as tabelas 6390 e 6392 da PNAD Contínua mensal, disponibilizada no SIDRA/IBGE, das quais as variáveis referentes a massa e rendimento real simplesmente sumiram. Apesar de esses dados já terem sido reestabelecidos, pelo menos até a data de hoje, fica a lição: pode ser útil você ter e manter o seu próprio banco de dados!

2) Dados mudam constantemente

Aquela frase que diz que "no Brasil até o passado é incerto" é tão verdadeira que até mesmo sua autoria é questionável - alguns atribuem a Pedro Malan, outros a Gustavo Loyola. E em se tratando de dados macroeconômicos, essa incerteza é até esperada, pois diversas estatísticas produzidas em um país - como as Contas Nacionais, por exemplo - são revisadas com frequência. Portanto, não se deve assumir que aqueles gráficos e tabelas bonitas vistos por aí continuarão com os mesmos valores históricos para sempre.

Um caso recente dessa armadilha aconteceu com os dados de 2020 do saldo de empregos do CAGED (que já tem histórico de mudanças metodológicas), após uma revisão expressiva. Portanto, se você utiliza com frequência dados passíveis de revisão, o melhor remédio para evitar dor de cabeça é sempre atualizar a série total, não apenas as novas observações mais recentemente divulgadas.

3) Dados são imprecisos

Não podemos também escapar de problemas de acurácia, erros de medida, de registro e de coleta dos dados que, apesar disso, estão diariamente na mídia. Na maioria dos casos, dados que são provenientes de pesquisas (surveys) estão mais propensos a apresentar estas armadilhas, mas não limitado a esse tipo de dado. Por exemplo, você sabia que em diversos meses os pesos dos subitens do IPCA não somam 100%, considerando 4 casas decimais? Ou que no Sistema de Expectativas (Focus) do Banco Central do Brasil estão registradas expectativas em certas datas para variáveis cujo valor real já havia sido divulgado? São casos, no mínimo, curiosos e que passam despercebidos.

No caso dos pesos do IPCA alguém pode argumentar um certo preciosismo ao considerar 4 casas decimais - de fato é - e outrem poderia ponderar que se o dado é divulgado com 4 casas decimais, espera-se que, pela metodologia, feche 100%. Já no caso das expectativas do Focus, preocupa o fato de que dados com tal "sujeira" guiem as decisões do COPOM, afinal o sistema não deveria aceitar ou registrar expectativas para variáveis cujo valor/horizonte de previsão já é sabido.

Sobre imprecisão e qualidade dos dados, aproveito a oportunidade para resgatar a ótima tirinha de Calvin e Haroldo sobre o assunto:

Calvin and Hobbes by Bill Watterson for August 23, 1995

Fonte: Calvin and Hobbes by Bill Watterson for August 23, 1995

4) Metodologias dos dados mudam

De tempos em tempos as metodologias e definições de dados podem mudar, em alguns casos de maneira programática e em outros inesperadamente. Dependendo da alteração, como no caso recente e famoso do CAGED, pode-se inviabilizar a comparação dos dados pré e pós mudança metodológica. Isso torna obrigatória a leitura das notas de rodapé associadas a divulgação dos dados, além da página de histórico das mudanças da pesquisa na internet, pois tais mudanças e rupturas nas séries afetam a análise dos dados.

Além disso, vale enfatizar que também há problemas quando as metodologias não mudam quando deveriam mudar, ou seja, pesquisas que estão defasadas e precisam de atualização. Isso foi (tem sido) especialmente importante nos tempos recentes de pandemia e seus choques, onde, por exemplo, indicadores que mensuram a inflação no país utilizam estruturas de consumo das famílias de 2017-18, mas isso é outra discussão.

5) Disponibilidade de dados públicos é precária

A questão de infraestrutura para disponibilidade e acesso aos dados econômicos também merece atenção. Dados disponibilizados em formatos arcaicos - como planilhas de Excel com formatação pouco convidativa -, sites instáveis ou que ficam fora do ar, limitações de download/requisição e até mesmo a própria usabilidade dos sites e fontes públicas brasileiras são alguns dos problemas mais frequentes e que ninguém escapa. Apesar de avanços, nos dados macroeconômicos o âmbito fiscal parece ser o mais problemático. Por exemplo, há alguns meses a planilha de resultado primário do Tesouro Nacional ficou indisponível por cerca de 2 semanas.

Por fim, enfatizo que instituições brasileiras como o IBGE cumprem um papel fundamental no país e, atualmente, são respeitadas nacional e internacionalmente pelo seu trabalho. Este texto não visa realizar críticas, mas apenas relata fatos do dia a dia de quem lida com dados (macro)econômicos, acendendo o alerta para os mais iniciantes. Comentários são bem-vindos!

 

Datação de recessões e ciclos econômicos no R com o algoritmo de Harding-Pagan

By | Artigos de Economia, Dados Macroeconômicos, Data Science, Economia

Ao longo do tempo a economia apresenta o que se chama de ciclos econômicos, ou seja, períodos de expansão e recessão. Mas de que forma podemos saber em qual ponto do ciclo econômico a economia se encontra? Como sabemos se a economia está em recessão? Estas são perguntas de grande interesse para acadêmicos e profissionais da área, e neste breve exercício demonstramos como replicar a datação de ciclos econômicos que instituições como NBER (EUA) e CODACE (Brasil) tradicionalmente publicam.

De maneira prática, neste exercício replicamos o algoritmo de Harding & Pagan (2002) para datar o ciclos de negócios do Produto Interno Bruto (PIB) brasileiro. Em resumo, o método considera algumas regras impostas ao comportamento de uma série temporal para classificar picos e vales. Recessão é o período entro o pico da atividade econômica e seu subsequente vale, ou ponto mínimo. Entre o vale e o pico, diz-se que a economia está em expansão.

O método é bastante simples e poderoso, conseguindo praticamente replicar a cronologia de recessões desenvolvidas pelas instituições mencionadas acima.

Pacotes

Para aplicar o algoritmo utilizaremos o pacote BCDating na linguagem R, criado por Majid Einian (Central Bank of Islamic Republic of Iran) e Franck Arnaud (National Institute of Statistics and Economic Studies, France). Outros pacotes são utilizados para coleta, tratamento e visualização de dados:


# Instalar/carregar pacotes
if(!require("pacman")) install.packages("pacman")
pacman::p_load(
"magrittr",
"BCDating",
"sidrar",
"dplyr",
"lubridate",
"timetk",
"zoo",
"ggplot2",
"ggthemes"
)

Dados

Neste exercício utilizaremos a série do PIB a preços de mercado (série encadeada do índice de volume trimestral com ajuste sazonal, média de 1995 = 100), disponível no SIDRA/IBGE. Para coletar os dados via API pode-se usar o pacote sidrar, especificando o código de coleta. Além disso realizamos a preparação dos dados para utilização posterior:


# Coleta e tratamento de dados
pib <- sidrar::get_sidra(api = "/t/1621/n1/all/v/all/p/all/c11255/90707/d/v584%202") %>%
dplyr::select("date" = `Trimestre (Código)`, "value" = `Valor`) %>%
dplyr::mutate(value = value, date = lubridate::yq(date)) %>%
dplyr::as_tibble()

Algoritmo de Harding & Pagan (2002)

Para aplicar o algoritmo e obter as datações de ciclo de negócios, primeiro transformamos o objeto pro formato de série temporal e, em seguida, utilizamos a função BBQ() do pacote BCDating. Optamos por deixar com os valores predefinidos os demais argumentos da função, que servem para definir os valores mínimos de duração do ciclo (pico ao pico ou vale ao vale) e da fase do ciclo (pico ao vale ou vale ao pico).


# Obter datação de ciclo de negócios
bc_dates <- pib %>%
timetk::tk_ts(select = value, start = c(1996, 1), frequency = 4) %>%
BCDating::BBQ(name = "Ciclo de Negócios do PIB do Brasil")

Resultados

Como pode ser visto abaixo, o objeto retornado traz como resultado as datas (trimestres) de picos e vales, assim como a duração do ciclo.


# Exibir resultados
show(bc_dates)

## Peaks Troughs Duration
## 1 2001Q1 2001Q4 3
## 2 2002Q4 2003Q2 2
## 3 2008Q3 2009Q1 2
## 4 2014Q1 2016Q4 11
## 5 2019Q4 2020Q2 2

Outras informações podem ser obtidas com a função summary(), porém o mais interessante é avaliar o resultado visualmente através de um gráfico. Para tal, fazemos um tratamento dos dados retornados pela função BBQ() e utilizamos o ggplot2 para gerar o gráfico com as áreas sombreadas referente às datas de recessão que foram identificadas pelo algoritmo, acompanhadas do comportamento do PIB no período:

Comparação com cronologia do CODACE/FGV

Por fim, vamos comparar os resultados aqui encontrados com a Cronologia de Ciclos de Negócios Brasileiros elaborada pelo Comitê de Datação de Ciclos Econômicos (CODACE). A última reunião do comitê foi em 29 de junho de 2020, na qual reportou a seguinte situação do ciclo de negócios:

Fonte: CODACE/FGV

Percebe-se que a série utilizada pelo comitê inicia-se em 1980, mas se analisarmos a partir de 1996 (período de início da série utilizada em nosso exercício), verificamos que 5 de 6 recessões datadas pelo CODACE são identificadas pelo algoritmo de Harding & Pagan (2002). Apenas a recessão do 1º trimestre de 1998 ao 1º trimestre de 1999 não foi detectada. Apesar disso, o resultado é empolgante!

Por fim, vamos comparar os resultados de ambas as datações mais a fundo na tabela a seguir, na qual contabilizamos o período de recessão partindo do trimestre imediatamente posterior ao pico até o subsequente vale:

Perceba que ambas as datações são idênticas! A única diferença está na última datação, a qual o CODACE ainda não definiu o próximo vale. Dessa forma, fica demonstrado o poder e facilidade de uso do algoritmo de Harding & Pagan para datação de ciclos econômicos.

________________________

(*) Para entender mais sobre ciclos econômicos e modelos macroeconômicos, confira nossos Cursos de Macroeconomia Aplicada.

Como deflacionar uma série no R

By | Dados Macroeconômicos, Data Science, Economia, Hackeando o R

Algumas pessoas ainda devem se lembrar de quando era possível "fazer o rancho", as compras do mês, com apenas cem reais no bolso, mas já faz bastante tempo que uma simples ida ao supermercado é deveras custosa. O carro popular que podia ser adquirido por menos de R$ 30 mil nos anos 1990 é facilmente vendido por não menos de R$ 50 mil hoje. Ou seja, com uma nota de R$ 100 não se compra a mesma quantidade de bens hoje do que era possível há 20 anos e isso constitui um problema econômico básico, motivo pelo qual devemos deflacionar valores monetários para poder compará-los no tempo.

Sendo assim, se queremos ter uma visão realística quando analisando uma série de preços, devemos transformar os valores nominais para valores deflacionados, ou reais, contabilizando o efeito inflacionário do período. Apesar de ser um procedimento padrão, costumam haver alguns equívocos, de modo que iremos esclarecer alguns pontos e explorar uma abordagem moderna da técnica usando a linguagem R.

Para transformar uma série de preços para valores reais, são necessárias duas coisas: os dados nominais e um índice de preços adequado. A série de dados nominais pode ser qualquer uma que mede algo em valores correntes (R$), como por exemplo a série do salário mínimo, disponibilizada pelo IPEADATA. Já o índice de preços adequado pode vir de diversas fontes, os mais conhecidos no Brasil são o Índice Nacional de Preços ao Consumidor Amplo (IPCA), o Índice Nacional de Preços ao Consumidor (INPC) e o Índice Geral de Preços - Mercado (IGP-M), este divulgado pela FGV e aqueles pelo IBGE. O que esses índices fazem é medir o preço de uma cesta de produtos em um dado período de tempo, geralmente um mês cheio, em relação a um outro período de tempo base.

Com esses dois dados, basta aplicar a fórmula de deflacionamento a seguir:

Onde:

é o valor real, ou deflacionado, no período i na data-base j

 

é o índice de preços fixado na data-base j

 

é o índice de preços no período i

 

é o valor ou preço nominal no período i

 

Com esta fórmula é possível obter o valor deflacionado a partir da multiplicação do valor nominal em um dado período pela razão entre o índice de preços na data-base de referência em relação ao índice no período de análise/interesse. Agora vamos exemplificar com dados para facilitar o entendimento.

Como exemplo, usaremos os dados do salário mínimo do Brasil a partir de 2000 e o INPC para deflacionar a série. Podemos obter esses dados no R com o código a seguir:

# Instalar/carregar pacotes
if(!require("pacman")) install.packages("pacman")
pacman::p_load(
"deflateBR",
"dplyr",
"lubridate",
"httr",
"sidrar",
"purrr",
"ggplot2",
"deflateBR",
"tidyr",
"magrittr"
)

## Coletar dados
# Salário mínimo nominal (código IPEADATA = MTE12_SALMIN12) usando web-scrapping
dados_nominal <- httr::GET(
"http://ipeadata.gov.br/api/odata4/ValoresSerie(SERCODIGO='MTE12_SALMIN12')"
)

# Dados do INPC usando API do Sidra/IBGE
dados_indice <- sidrar::get_sidra(api = "/t/1736/n1/all/v/2289/p/all/d/v2289%2013")

## Tratar dados e filtrar desde o ano 2000
# Salário mínimo nominal
nominal <- httr::content(dados_nominal)[[2]] %>% 
dplyr::bind_rows() %>% 
dplyr::select("date" = `VALDATA`, "nominal" = `VALVALOR`) %>% 
dplyr::mutate(date = lubridate::as_date(date)) %>% 
dplyr::filter(date >= as.Date("2000-01-01"))

# INPC
indice <- dados_indice %>% 
dplyr::select(
"date" = `Mês (Código)`,
"indice" = `Valor`
) %>%
dplyr::mutate(date = lubridate::ym(date))

## Juntar dados
salario_minimo <- dplyr::left_join(nominal, indice, by = "date") %>% 
tidyr::drop_na()

Os dados obtidos podem ser visualizados na tabela abaixo:

Agora vamos supor que queremos saber o salário mínimo real de novembro de 2020 na data-base de abril de 2021. Primeiro calculamos o chamado fator de deflacionamento, que é a fração entre parênteses na fórmula acima, fixando a data-base em abril/2021. O resultado e o cálculo podem ser vistos a seguir:

# Calcular fator de deflacionamento
salario_minimo %<>% 
dplyr::mutate(
fator = (indice2022/indice)
)

Em seguida, para transformar o valor nominal (R$ 1.045,00) em valor real, basta multiplicá-lo por 1,0384, isto é, R$ 1.045,00 de novembro de 2020 equivale a R$ 1.085,12 em abril de 2021.

Agora que sabemos o procedimento passo a passo do cálculo de deflacionamento, vamos aplicar a fórmula na série do salário mínimo e plotar um gráfico comparativo.

# Calcular salário mínimo real
salario_minimo %<>% 
dplyr::mutate(
real = (indice2022/indice) * nominal
)

# Visualização de dados
ggplot2::ggplot(salario_minimo, ggplot2::aes(x = date))+
ggplot2::geom_line(
ggplot2::aes(y = nominal, colour = "Salário Mínimo - Nominal"), size = 1.5
) +
ggplot2::geom_line(
ggplot2::aes(y = real, colour = "Salário Mínimo - Real"), size = 1.5
) +
ggplot2::scale_colour_manual(NULL, values = c("#282f6b", "#b22200")) + 
ggplot2::scale_y_continuous(n.breaks = 8) +
ggplot2::labs(
x = NULL,
y = "R$",
title = "Salário Mínimo no Brasil",
subtitle = "Valores em Reais deflacionados pelo INPC a preços de abril/2021.",
caption = "Fonte: analisemacro.com.br com dados de IBGE e IPEA."
) +
ggplot2::theme(
legend.position = "bottom",
plot.title = ggplot2::element_text(face = "bold"),
plot.subtitle = ggplot2::element_text(face = "italic"),
legend.text = ggplot2::element_text(face = "bold")
)

 

Perceba que, apesar de ser simples e fácil, é um pouco trabalhoso obter os dados do índice, tratar, fazer o cálculo, etc., para enfim obter nossa série deflacionada, mesmo que em nosso exemplo tenhamos "quebrado" o procedimento em etapas adicionais para fins de didática. Felizmente, existe um pacote no R chamado deflateBR que facilita essas tarefas em uma única função, criado pelo Fernando Meireles.

Com a função deflate, tudo que precisamos é apontar a série que queremos deflacionar, o vetor de datas correspondentes, uma data-base e um índice de preços que pode ser: IPCA, IGP-M, IGP-DI, IPC ou INPC. Vamos ao exemplo anterior usando essa função. criaremos uma outra coluna em nosso objeto nomeando-a "deflacionado" para diferenciar dos valores anteriores já calculados:

# Deflacionar usando o pacote deflateBR
salario_minimo %<>% 
dplyr::mutate(
deflacionado = deflateBR::deflate(
nominal_values = nominal,
nominal_dates = date %m+% months(1), # evitar que a função pegue valor com 1 lag
real_date = format(tail(date, 1), "%m/%Y"), 
index = "inpc"
)
)

# Verificar se valores são iguais
all.equal(salario_minimo$real, salario_minimo$deflacionado)

# [1] TRUE

Note que o cálculo foi exatamente o mesmo, mas bastou que indicássemos para a função o que e por qual índice necessitamos deflacionar, muito mais simples e prático.

Por fim, vamos confrontar nossos cálculos com os cálculos do IPEA, haja visto que o mesmo disponibiliza em sua plataforma a série do salário mínimo real. Assim certificamos de que fizemos tudo corretamente:

# Salário mínimo real IPEA (código IPEADATA = GAC12_SALMINRE12) usando web-scrapping
dados_real <- httr::GET(
"http://ipeadata.gov.br/api/odata4/ValoresSerie(SERCODIGO='GAC12_SALMINRE12')"
)

# Salário mínimo real IPEA
real <- httr::content(dados_real)[[2]] %>% 
dplyr::bind_rows() %>% 
dplyr::select("date" = `VALDATA`, "ipea" = `VALVALOR`) %>% 
dplyr::mutate(date = lubridate::as_date(date)) %>% 
dplyr::filter(date >= as.Date("2000-01-01"))

# Juntar dados e arredondar casas decimais
salario_minimo <- left_join(salario_minimo, real, by = "date") %>% 
dplyr::mutate(dplyr::across(real:ipea, ~round(.x, 2)))

# Verificar se valores são iguais
all.equal(salario_minimo$real, salario_minimo$ipea)

# [1] TRUE

Assim, demonstramos duas formas de deflacionar valores usando o R, ambas equivalentes entre si.

 

Coleta e tratamento de dados das Contas Nacionais Trimestrais com o R

By | Dados Macroeconômicos

No nosso Curso de Teoria Macroeconômica com Laboratórios de R, incentivamos nossos alunos a aplicarem os conhecimentos de R aprendidos em laboratórios aplicados. Para ilustrar o que vemos no Curso, vou mostrar o laboratório 5, onde é solicitado aos alunos a coleta e tratamento dos dados de poupança e da Formação Bruta de Capital com o R.

O código abaixo pega os dados diretamente do SIDRA/IBGE:


## Importação dos dados da poupança e da fbc
library(sidrar)
data = get_sidra(api='/t/2072/n1/all/v/933,940,941/p/all')

Na sequência, nós fazemos a organização dos dados.


library(tidyverse)
library(lubridate)
library(zoo)

dados <- data %>% select(`Trimestre (Código)`, Variável, Valor) %>%
pivot_wider(names_from=Variável, values_from=Valor) %>%
mutate(date=as.yearqtr(parse_date_time(`Trimestre (Código)`, '%y%q'))) %>%
select(-`Trimestre (Código)`)

Com os dados organizados, nós podemos anualizá-los com o código abaixo.


anuais <- dados %>%
mutate(`Produto Interno Bruto` = rollsum(`Produto Interno Bruto`, k=4, align='right', fill=NA),
`(=) Poupança bruta` = rollsum(`(=) Poupança bruta`, k=4, align='right', fill=NA),
`(-) Formação bruta de capital` = rollsum(`(-) Formação bruta de capital`, k=4, align='right', fill=NA))

Por fim, nós normalizamos nossos dados pelo PIB de forma poder compará-los.


pct <- anuais %>%
mutate(FBC=`(-) Formação bruta de capital`/`Produto Interno Bruto`*100,
Poupança=`(=) Poupança bruta`/`Produto Interno Bruto`*100,
.keep='unused')

O gráfico abaixo ilustra as séries obtidas.

________________

(*) Isso e muito mais você irá aprender no nosso Curso de Teoria Macroeconômica com Laboratórios de R.

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

Assinar Gratuitamente