Tag

copom Archives - Análise Macro

Topic Modeling: sobre o que o COPOM está discutindo? Uma aplicação do modelo LDA

By | Data Science

O que informações textuais podem revelar sobre a situação da economia? Como transformar palavras em estatísticas e obter insights? Há algo informativo nas entrelinhas das atas do COPOM? Como usar Machine Learning para interpretar os comunicados da autoridade monetária? Neste exercício, damos continuidade aos posts sobre Natural Language Processing (NLP) demonstrando a aplicação da técnica de topic modeling com as atas do COPOM.

O que é topic modeling?

No contexto de text mining, nossos dados geralmente são coleções de documentos textuais, como postagens em blogs ou artigos de notícias, que gostaríamos de dividir em grupos para que possamos entendê-los separadamente. A modelagem de tópicos (topic modeling) é um método de Machine Learning para classificação não supervisionada de tais documentos, semelhante ao agrupamento em dados numéricos, que encontra grupos de observações mesmo quando não temos certeza do que estamos procurando. Em outras palavras, é um método para classificar/mapear textos em um número k de tópicos.

O modelo LDA

O modelo Latent Dirichlet Allocation (LDA) é um método probabilístico particularmente popular para estimar um modelo de tópico. Sem mergulhar na matemática por trás do modelo, podemos entendê-lo como sendo guiado por dois princípios:

  • Cada documento textual é uma mistura de tópicos: imagine que cada documento pode conter palavras de vários tópicos em proporções particulares. Por exemplo, em um modelo de dois tópicos, poderíamos dizer “Documento 1 é 90% tópico A e 10% tópico B, enquanto o Documento 2 é 30% tópico A e 70% tópico B”.
  • Cada tópico é uma mistura de palavras: por exemplo, poderíamos imaginar um modelo de dois tópicos para as notícias vinculadas na mídia brasileira, com um tópico para “política” e outro para “entretenimento”. As palavras mais comuns no tópico de política podem ser “presidente”, “congresso” e “governo”, enquanto que o tópico de entretenimento pode ser composto por palavras como “filmes”, “televisão” e “ator”. É importante ressaltar que as palavras podem ser compartilhadas entre os tópicos, ou seja, uma palavra como “dinheiro” pode aparecer em ambos os tópicos.

O modelo LDA estima as probabilidades de ambos ao mesmo tempo: encontrar a mistura de palavras que está associada a cada tópico, assim como também determinar a mistura de tópicos que descreve cada documento. Em nossa análise, um documento corresponde a cada texto que será extraído de cada ata do COPOM.

Existem várias implementações desse algoritmo, aqui exploraremos a abordagem que usa iterações de amostragem de Gibbs. Em resumo, construiremos esta análise:

Pacotes

Para reproduzir o exercício a seguir você precisará dos seguintes pacotes de R:


# Carregar pacotes/dependências
library(jsonlite) # CRAN v1.7.3
library(purrr) # CRAN v0.3.4
library(dplyr) # CRAN v1.0.8
library(pdftools) # CRAN v3.1.1
library(magrittr) # CRAN v2.0.2
library(stringr) # CRAN v1.4.0
library(tidyr) # CRAN v1.2.0
library(lubridate) # CRAN v1.8.0
library(forcats) # CRAN v0.5.1
library(ggplot2) # CRAN v3.3.5
library(ggtext) # CRAN v0.1.1
library(tsibble) # CRAN v1.1.1
library(scales) # CRAN v1.1.1
library(tm) # CRAN v0.7-8
library(tidytext) # CRAN v0.3.2
library(topicmodels) # CRAN v0.2-12

Os dados

Como insumo para o modelo, precisamos dos textos das atas do COPOM, disponibilizados em arquivos PDFs no site do BCB. Conforme procedimentos já detalhados em um post anterior (clique aqui), o código abaixo importa os textos brutos e os salva em um objeto tabular:


# URL para página com JSON dos links das atas do COPOM
url_atas <- paste0(
"https://www.bcb.gov.br/api/servico/sitebcb/copomminutes/",
"ultimas?quantidade=2000&filtro="
)
# Web scraping para importar texto dos PDFs das atas
raw_copom <- jsonlite::fromJSON(url_atas) %>%
purrr::pluck("conteudo") %>%
dplyr::as_tibble() %>%
dplyr::select(
"date" = "DataReferencia",
"meeting" = "Titulo",
"url" = "Url",
) %>%
dplyr::mutate(url = paste0("https://www.bcb.gov.br", url)) %>%
dplyr::mutate(text = purrr::map(URLencode(url), pdftools::pdf_text))

Pré-processamento

Os dados importados vêm recheados de possíveis problemas se fossem diretamente utilizados no modelo LDA. Desta forma, é necessário realizar alguns tratamentos, que se resumem a:

  • Determinar amostra de atas do COPOM de interesse (50ª ata/agosto de 2000 em diante);
  • Remover caracteres e códigos indesejados no meio das palavras;
  • Remover pontuações e números;
  • Remover as stops words (palavras sem valor semântico como "que", "de", "e", etc.);
  • Aplicar o processo de stemming: transformar várias palavras que significam a mesma coisa em apenas uma palavra. Por exemplo, palavras como “economia”, “economista” e “economizar” se tornam “economi”.

# Limpeza e pré-processamento dos textos das atas
copom_clean <- raw_copom %>%
dplyr::filter(
# Remover o que não é reunião do Copom e reuniões nº 42 a 49
!meeting == "Changes in Copom meetings",
!stringr::str_detect(string = meeting, pattern = "^4[2-9]")
) %>%
# Transforma cada elemento (página) do vetor textual das atas
# um linha no data.frame
tidyr::unnest(text) %>%
dplyr::group_by(meeting) %>%
dplyr::mutate(
# Trata end-of-line/carriage return dos textos
text = stringr::str_split(string = text, pattern = "\r") %>%
# Remove códigos ASCII/caracteres indesejados
stringr::str_replace_all(
pattern = "\n|\003|\017|\023|\024|\025|\026|\027|\028|\029|\030|\031|\032|\033|\034|\035",
replacement = ""
) %>%
# Remove pontuações e números
tm::removePunctuation() %>%
tm::removeNumbers() %>%
stringr::str_to_lower() %>%
# Remove "stop words"
tm::removeWords(words = tm::stopwords(kind = "english")) %>%
# Normalização de palavras: stemming
tm::stemDocument(),
# Transforma informação do nº XX da ata para padrão "Ata XX"
meeting = stringr::str_sub(string = meeting, start = 1, end = 3) %>%
stringr::str_remove(pattern = "[:alpha:]") %>%
stringr::str_c("Ata ", .),
# Transforma data para YYYY-MM-DD
date = lubridate::as_date(.data$date)
) %>%
dplyr::ungroup() %>%
dplyr::arrange(date)

Tokenização

Em seguida, precisamos obter a frequência de cada palavra em cada documento/ata, de modo a obter um objeto tabular onde cada linha contém um palavra por documento, conforme abaixo:


# Tokenização
copom_token <- copom_clean %>%
# Contabiliza frequência das palavras
tidytext::unnest_tokens(output = term, input = text, token = "words") %>%
dplyr::count(meeting, term, sort = TRUE, name = "count") %>%
dplyr::ungroup()

Representação matricial

Agora transformamos o objeto anterior para a representação matricial M por N que representará a frequência das palavras nas atas, onde as linhas  M representam as atas e as colunas N são as palavras, e os valores são as frequências das palavras. Além disso, aplicamos outro tratamento para remover palavras que aparecem com pouca frequência nas atas, processo similar a uma remoção de "outliers":


# Transformar em objeto DocumentTermMatrix
copom_dtm <- copom_token %>%
tidytext::cast_dtm(
document = meeting,
term = term,
value = count,
weighting = tm::weightTf
) %>%
# Remoção de "outliers": manter apenas termos que aparecem
# em 80% dos documentos (atas)
tm::removeSparseTerms(sparse = 0.2)

Estimar modelo LDA

Para estimar o modelo LDA usamos o pacote topicmodels, com os valores padrão dos argumentos fornecidos pela função LDA(), exceto para alguns controles do amostrador de Gibbs e para o argumento k, que indica o número de tópicos a serem usados para classificar as atas do COPOM.

A especificação do parâmetro k é relativamente arbitrária, e apesar de existirem abordagens analíticas para decidir o valor de k, a maior parte da literatura o define de forma ad hoc. Ao escolher k temos dois objetivos que estão em conflito direto entre si. Queremos "prever" corretamente o texto e ser o mais específico possível para determinar o número de tópicos. No entanto, ao mesmo tempo, queremos ser capazes de interpretar nossos resultados e, quando nos tornamos muito específicos, o significado geral de cada tópico se perde.

A seguir definimos k = 5, assumindo que os diretores do BCB discutem apenas 5 tópicos que culminam nas atas do COPOM (você pode testar outros valores de k e ajustar o valor conforme necessidade).


# Estimar modelo Latent Dirichlet Allocation (LDA) usando Gibbs Sampling
copom_lda <- topicmodels::LDA(
x = copom_dtm,
k = 5,
method = "Gibbs",
control = list(
# nº de simulações repetidas com inicialização aleatória
nstart = 5,
# semente para reprodução (tamanho tem que ser igual a nstart)
seed = as.list(1984:1988),
# nº iterações descartadas
burnin = 3000,
# nº de iterações
iter = 2000,
# nº de iterações retornadas
thin = 500
)
)

Resultados do modelo

Agora focamos na interpretação dos resultados do modelo estimado. Primeiro, podemos averiguar quais palavras foram associadas a cada tópico:


# Obter palavras associadas a cada tópico latente
topicmodels::terms(copom_lda, k = 10)

# Topic 1 Topic 2 Topic 3 Topic 4 Topic 5
# [1,] "price" "inflat" "increas" "price" "inflat"
# [2,] "rate" "increas" "month" "inflat" "copom"
# [3,] "increas" "price" "reach" "chang" "monetari"
# [4,] "exchang" "month" "accord" "consid" "polici"
# [5,] "result" "may" "data" "copom" "econom"
# [6,] "indic" "year" "product" "regard" "risk"
# [7,] "due" "rate" "respect" "economi" "scenario"
# [8,] "declin" "period" "good" "monetari" "economi"
# [9,] "month" "industri" "quarter" "growth" "committe"
# [10,] "polici" "market" "last" "project" "rate"

Além dos palavras, também podemos obter suas probabilidades - chamada de  ("beta") - associadas a cada tópico estimadas pelo modelo:


tidytext::tidy(copom_lda, matrix = "beta")

# # A tibble: 985 x 3
# topic term beta
# <int> <chr> <dbl>
# 1 1 increas 0.0368
# 2 2 increas 0.0485
# 3 3 increas 0.0818
# 4 4 increas 0.00000203
# 5 5 increas 0.0000876
# 6 1 month 0.0195
# 7 2 month 0.0387
# 8 3 month 0.0581
# 9 4 month 0.00000203
# 10 5 month 0.0000235
# # ... with 975 more rows

Note que, por exemplo, o termo "increas" tem probabilidade de 0,0368 de ter sido gerado do tópico 1, mas 0.0818 de probabilidade de ter sido gerado do tópico 3.

Podemos gerar uma visualização para verificar quais são os 10 termos mais "comuns" de cada tópico, conforme abaixo:


tidytext::tidy(copom_lda, matrix = "beta") %>%
dplyr::group_by(topic) %>%
dplyr::slice_max(beta, n = 10) %>%
dplyr::ungroup() %>%
dplyr::arrange(topic, -beta) %>%
dplyr::mutate(term = tidytext::reorder_within(term, beta, topic)) %>%
ggplot2::ggplot() +
ggplot2::aes(x = beta, y = term, fill = factor(topic)) +
ggplot2::geom_col(show.legend = FALSE) +
ggplot2::facet_wrap(~topic, scales = "free") +
tidytext::scale_y_reordered() +
ggplot2::labs(title = "Probabilidades por tópico por palavras")

A visualização nos permite entender mais facilmente sobre os 5 tópicos que foram classificados através das atas do COPOM. As palavras mais comuns no tópico 1 incluem "rate", "price" e "increas", o que sugere que podem representar a discussão da decisão da política monetária quanto a taxa de juros. No tópico 2 são associados termos referentes a dinâmica corrente da inflação, como "inflat", "price" e "increas". Já o tópico 3 cobre discussões sobre os dados quanto ao atual nível da atividade econômica do país, incluindo termos como "data", "product" e "reach". Por sua vez, no tópico 4 aparecem termos relacionados às expectativas de inflação com os termos "project", "inflat" e "price". Por fim, no tópico 5 predominam termos associados a própria ação da autoridade monetária, incluindo termos como "copom", "monetari", "polici" e "committe".

Uma observação importante sobre as palavras em cada tópico é que algumas palavras, como “price” e “inflat”, aparecem em mais de um tópico. Esta é uma vantagem da modelagem de tópicos em oposição aos métodos de “agrupamento rígido”: tópicos usados em linguagem natural podem ter alguma sobreposição em termos de palavras. Em contrapartida, como desvantagem, podem haver tópicos demasiadamente redundantes.

Por fim, vamos analisar as probabilidades por documento (ata) por tópico, de modo a verificar os tópicos "mais discutidos" em cada reunião do COPOM. Essas probabilidades são chamadas de  ("gamma") e podem ser obtidas conforme abaixo:


# Probabilidades de cada tópico por documento
copom_topics <- tidytext::tidy(copom_lda, matrix = "gamma") %>%
dplyr::left_join(
dplyr::distinct(copom_clean, meeting, date),
by = c("document" = "meeting")
) %>%
dplyr::arrange(date) %>%
dplyr::mutate(
date = as.character(date),
topic = dplyr::recode(
topic,
"1" = "Taxa de Juros",
"2" = "Inflação",
"3" = "Atividade Econômica",
"4" = "Expectativas de Inflação",
"5" = "Intervenção Monetária"
) %>%
forcats::as_factor()
)

copom_topics

# # A tibble: 975 x 4
# document topic gamma date
# <chr> <fct> <dbl> <chr>
# 1 Ata 50 Taxa de Juros 0.311 2000-09-12
# 2 Ata 50 Inflação 0.324 2000-09-12
# 3 Ata 50 Atividade Econômica 0.135 2000-09-12
# 4 Ata 50 Expectativas de Inflação 0.174 2000-09-12
# 5 Ata 50 Intervenção Monetária 0.0554 2000-09-12
# 6 Ata 51 Taxa de Juros 0.342 2000-10-04
# 7 Ata 51 Inflação 0.261 2000-10-04
# 8 Ata 51 Atividade Econômica 0.115 2000-10-04
# 9 Ata 51 Expectativas de Inflação 0.221 2000-10-04
# 10 Ata 51 Intervenção Monetária 0.0604 2000-10-04
# # ... with 965 more rows

Cada um desses valores é uma proporção estimada de palavras do documento que são geradas a partir do tópico. Por exemplo, o modelo estima que apenas cerca de 31% das palavras Ata nº 50 foram geradas a partir do tópico 1 (Taxa de Juros).

Com estes valores podem facilmente construir uma visualização para perceber a distribuição ao longo do tempo, conforme abaixo:


# Cores para gráfico
colors <- c(
blue = "#282f6b",
red = "#b22200",
yellow = "#eace3f",
green = "#224f20",
purple = "#5f487c",
black = "black"
)
# Função para formatar textos do eixo x (datas)
ym_label <- function(x) {
x <- lubridate::as_date(x)
dplyr::if_else(
is.na(dplyr::lag(x)) | tsibble::yearmonth(dplyr::lag(x)) != tsibble::yearmonth(x),
paste(lubridate::month(x, label = TRUE), "\n", lubridate::year(x)),
paste(lubridate::month(x, label = TRUE))
)
}
# Gráfico de colunas das probabilidades de cada tópico por documento
copom_topics %>%
ggplot2::ggplot() +
ggplot2::aes(x = date, y = gamma, fill = topic) +
ggplot2::geom_col() +
ggplot2::scale_x_discrete(
breaks = copom_topics %>%
dplyr::distinct(date) %>%
dplyr::filter(dplyr::row_number() %% 9 == 1) %>%
dplyr::pull(date),
labels = ym_label
) +
ggplot2::scale_y_continuous(
breaks = scales::extended_breaks(n = 6),
labels = scales::label_number(big.mark = ".", decimal.mark = ","),
expand = c(0, 0)
) +
ggplot2::scale_fill_manual(values = unname(colors)) +
ggplot2::labs(
title = "**Um conto de 4 crises**: o debate interno no COPOM",
subtitle = "Tópicos extraídos via modelo LDA usando textos das atas das reuniões",
y = "Probabilidade do Tópico",
x = "Data da Reunião",
fill = NULL,
caption = "**Dados**: BCB | **Elaboração**: analisemacro.com.br"
) +
ggplot2::theme_light() +
ggplot2::theme(
plot.title = ggtext::element_markdown(size = 28, colour = colors["blue"]),
plot.subtitle = ggtext::element_markdown(size = 14, face = "bold"),
plot.caption = ggtext::element_textbox_simple(size = 11),
legend.position = "top",
legend.text = ggplot2::element_text(size = 12, face = "bold"),
axis.text = ggplot2::element_text(size = 11, face = "bold"),
axis.title = ggtext::element_markdown(size = 12, face = "bold"),
axis.ticks = ggplot2::element_line(size = 0.7, color = "grey30"),
axis.ticks.length = ggplot2::unit(x = 1, units = "mm")
)

Podemos perceber que o modelo capta corretamente a "história" da política monetária brasileira ao longo destas duas últimas decadas. Em resumo, o choque de expectativas da eleição de 2002 (Lula) fez com que o BCB intervisse com juros, movimento visível no gráfico. Durante a crise financeira global de 2008, as discussões sobre o crescimento econômico cresceram significativamente. Já na crise da nova matriz econômica, durante os governos de Dilma Russef, as expectativas de inflação foram abruptamente se deteriorando e, com a mudança da diretoria do BCB em 2016, o aperto monetário tomou a cena. Por fim, e mais recentemente, preocupações com a escalada inflacionária e com as expectativas de inflação tiveram um aumento significativo da probabilidade de terem sido mais discutidas durante a pandemia da Covid-19.

Pessoalmente, estou satisfeito com os resultados encontrados. O modelo LDA parece ter se ajustado conforme o verdadeiro "tom" da política monetária no período. Porém, obviamente, como todo modelo há sempre espaços para aperfeiçoamentos e revisões, fique a vontade para usar o código disponível para tal.

Espero que o exercício tenha sido útil para você. Em última instância, a técnica aqui apresentada ao menos nos economiza o considerável tempo que seria necessário lendo todas as atas do COPOM para, só então, identificar tópicos discutidos.

Saiba mais

Posts sobre o assunto:

Referências:

  • Silge, J., & Robinson, D. (2017). Text Mining with R: A Tidy Approach (1st ed.). O’Reilly Media.
  • Benchimol, J., Kazinnik, S., & Saadon, Y. (2021). Federal Reserve communication and the COVID-19 pandemic. Covid Economics, 218.
  • Benchimol, J., Kazinnik, S., & Saadon, Y. (2020). Text mining methodologies with R: An application to central bank texts. Bank of Israel, Research Department.
  • Blei D. M., Ng A. Y., Jordan M. I. (2003). Latent Dirichlet Allocation. Journal of Machine Learning Research, 3, 993–1022.

Relatório #30 - Relatório de inflação

By | Indicadores

O Relatório de Inflação é um publicação trimestral do Comitê de Política Monetária (Copom), no qual apresenta suas diretrizes das políticas adotadas, bem como uma análise do cenário econômico recente, e principalmente projeções para a inflação. O principal objetivo do Copom com o relatório é dar maior transparência sobre suas decisões no que tange a política monetária, e portanto, contribuir com a eficácia no controle da inflação. No post de hoje estaremos interessados em conhecer a visão do Banco Central em relação a inflação, realizando um resumo sobre o Relatório de Inflação.

Conjuntura Econômica

Para analisar a trajetória da inflação é substancialmente necessário entender o cenário econômico tanto internacional, quanto doméstico. A análise da conjuntura econômica abrange os principais indicadores da atividade econômica, passando pelas contas nacionais e analisando as pesquisa de indicadores setoriais. Perpassa também os aspectos centrais e recentes do mercado de trabalho, mercado de crédito, desempenhos das contas públicas e das contas externas.

Para o cenário internacional, analisa-se as principais economias avançadas e emergentes, bem como os importantes blocos econômicos, que exercem influencia na economia brasileira.

Cenário Externo

O cenário da economia global segue em otimismo, com recuperação e taxas de crescimento. Apesar disso, o cenário de incertezas ainda continua, com indefinições sobre o prazo de vida de medidas de aumento no gasto público para o suporte contra COVID-19, muito devido às variantes descobertas recentemente, principalmente a Ômicron.

No EUA, a economia vem se recuperando, com forte crescimento do mercado de trabalho. O mesmo ocorre na área do Euro. Por outro lado, a China vê seu crescimento desacelerando desde o 3 trimestre.

Nas cadeias globais de fornecimento, há ainda setores que possuem dificuldades em responder na produção em relação ao aumento da demanda no período de pandemia. Com grandes dificuldades logísticas, escassez de mão de obra e produtos, alguns setores possuem dificuldades de se recuperar, como o do automobilismo.

Os preços de importantes insumos também seguem pressionados, como a escassez de gás natural na Europa e o desbalanceamento entre oferta e demanda do Petróleo.  Enquanto houver o período de pandemia, em que há ainda enorme incertezas, os preços de commodities poderão ainda seguir forte correção e volatilidade.

Com isso, vê-se o cenário de inflação se elevando em países avançados, algo que não era visto há um bom tempo, além também do aumento em países emergentes.  Essa situação poderá persistir durante 2020, apesar do processo de normalização monetária de alguns países, os gargalos nas cadeias produtivas e as incertezas em relação a reabertura total da economia devem contribuir para a persistência da inflação.

 

Cenário doméstico

Em relação ao Brasil, a atividade econômica segue abaixo da expectativas, com o PIB em 2021 caindo dois trimestre seguidos (2 e 3). No último trimestre, pelo lado da oferta, o país viu forte recuo na agropecuária (-8%), estabilização na indústria (0,0%) e crescimento nos serviços (1,1%).

Pelo ótica da demanda, o consumo das famílias no último trimestres cresceu 1,1%, em consonância com o aquecimento do mercado de trabalho. O consumo do governo configurou um variação de 0,8%, apesar de ainda estar abaixo dos níveis de 2019. A Formação Bruta de Capital Físico segue em queda, com variação negativa de 0,1%. As exportações e importações seguem o mesmo caminho da FBCF, porém, de forma mais intensa com quedas de 9,8% e 8,3%.

No mercado de trabalho, o país segue em recuperação, tanto se for medido pelo Novo Caged, que segue acumulando saldos positivos de empregos formais no ano, quanto pela PNADc, que segue recuando na taxa de desocupação.

Apesar do crescimento do número de trabalhadores, o rendimento médio medido pela PNADc está em ritmo lento de recuperação, muito pela alta da inflação, bem como a recuperação incompleta do mercado de trabalho, que segue dificultando o aumento do poder de compra dos salários. Outros indicadores, como a massa de rendimento medida também pela PNADc também se encontram em nível bastante deprimido.

Em relação ao mercado de crédito, a concessão de crédito tanto direcionado, quanto livre, desaceleraram nos últimos meses, apesar de um crescimento elevado no acumulado do ano. A preocupação ocorre devido a expansão das concessões em modalidades mais caras de créditos, tais como cheque especial e cartão de crédito rotativo.

Para as taxas de juros e spread, tanto livres e direcionados quanto para pessoas físicas e jurídicas, vê-se um crescimento na margem, ocasionado pelo ajuste intenso na politica monetária.

O efeito do ajuste monetário também tem afetado o cenário fiscal, ocasionando no aumento do custo da dívida, que também tem aumentado por conta da elevação dos prêmios de risco. Para 2022, ainda há incerteza do impacto da PEC dos precatórios em conjunto com o Auxilio Brasil. Para tanto, o risco de desancoragem das expectativas de inflação prevalecem, dado as incertezas do regime fiscal e o qual seu processo de recuperação.

Nas contas externas, o Brasil, no último trimestre, viu sua balança comercial diminuir, com queda nas exportações e aumento das importação. Na conta financeira, há desaceleração do fluxo de entrada de investimento direto e carteira.

Preços

A inflação segue persistente no pais, e há a preocupação da elevação das expectativas para além do ano de 2022. Um dos principais fatores do aumento da inflação no país ocorre por conta da alta dos preços das commodities no mercado internacional, evidenciado pelo forte crescimento do Índice de Commodities - Brasil (IC-Br) desde de 2020, e a respectiva contribuição para a elevação do IPCA.

A elevação da inflação também ocorre devido ao aumento de preços de bens indústrias, que ainda sofrem de gargalos de oferta e com o aumento do preço do etanol. Ao aumento do preço dos alimentos, que sofreram com a danificação de lavouras por geadas e também pelo efeito das commodities agrícolas. Além também do aumento dos preços administrados, em que a correção foi influenciado pelo aumento de itens energéticos, como gasolina, energia elétrica e gás natural, bem como do aumento dos preços do serviços.

Portanto, pode-se entender a escalada da inflação não somente para o ano de 2021, quanto também para os anos posteriores. Uma boa forma de visualizar é através da mediana das expectativas anuais Focus para o IPCA, indicador chave para o acompanhamento da inflação no Brasil.

Apesar dos sucessivos aumentos da mediana das expectativas anuais do Focus para o IPCA, a pressão inflacionária se mostrou acima do esperado no mês de setembro, outubro e novembro, das expectativas, evidenciando a evidencia inflacionária no trimestre.

Diante de diversas incertezas externas, por conta da recuperação econômica da economia global, a possibilidade de um nova onda de COVID-19, das condições financeiras de países emergentes, além também do cenário fiscal brasileiro em conjunto com a desancoragem das expectativas de inflação, evidencia pelas expectativas de mercado, o Copom decidiu continuar o aperto monetário, elevando a taxa básica de juros, além de sinalizar que não irá ceder até que o processo de desinflação se consolide.

A batalha contra a inflação continuará, e será importante o acompanhamento da conjuntura econômica brasileira e internacional. Para tanto, aprenda sobre no nosso Curso de Análise de Conjuntura usando o R - Versão 5.0.

________________________

Referência

BANCO CENTRAL DO BRASIL - BCB. Relatório de Inflação. N4. Vol. 23. Disponível em https://www.bcb.gov.br/publicacoes/ri.

Relatório #28 - Produção de veículos, PMC, IPCA e Copom

By | Indicadores

No Relatório AM da semana, iremos realizar uma breve analise de quatro eventos econômicos da semana: os resultados da produção de veículos, PMC e IPCA. Iremos também analisar os caminhos da decisão do COPOM na semana.

Produção de Veículos
A Produção de veículos é divulgada pela Associação Nacional dos Fabricantes de Veículos Automotores (ANFAVEA) e possui uma grande importância informacional: nos ajuda a saber o caminho do crescimento do produto interno no país.

No Mês de novembro vemos que houve uma variação marginal de 15,13%. Em comparação com o ano passado, temos um resultado negativo de 13,5% e na anual um valor de 13,75%.

Ao visualizarmos a série temporal do indicador, vemos que em junho de 2020 teve uma variação positiva grande o suficiente para que a escala do gráfico torne a visualização complicada. Para isso, podemos remover esse outlier, apenas para que possamos analisar a série nos últimos meses.

PMC

Nos últimos meses, as vendas no varejo na margem não tem apresentado resultados satisfatórios. Vemos nos últimos dois meses a queda na variação marginal, bem como a queda no mês de setembro na variação interanual. A ver o que pode acontecer com o resultado de outubro.

Podemos ver o comportamento da pesquisa mensal de comércio. Apesar da recuperação em relação a pandemia no início do ano, vemos nos últimos meses sinais de piora do indicador.

IPCA

Também ocorrerá a divulgação do IPCA na semana. Vemos nos últimos meses a escalada do indicador no ano e o aumento na margem.

Em relação a expectativa do mercado para o indicador, vemos através do boletim Focus, como tem sido no ano o aumento do IPCA em 2021 e 2022.

Copom

Na semana também ocorrerá a decisão do Copom pela mudança da taxa SELIC. Com o aumento das expectativas do IPCA nos últimos meses, temos a possibilidade do aumento da taxa SELIC. Podemos ver a escalada da expectativa do mercado medido pelo Focus no ano de 2021 e 2022 para a taxa de juros. Atualmente a taxa se encontra em 7,75%, com a possibilidade de terminar o ano em 9,25%.

________________________

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

________________________

Relatório AM #17 - Semana de Copom

By | Indicadores

A semana é marcada no Brasil pela decisão do Comitê de Política Monetária (COPOM) a cerca da taxa básica de juros, a Selic. Há uma expectativa de aumento de 100 pontos-base na taxa, com alguns analistas cogitando a hipótese de 125 pontos-base. No nosso Monitor de Política Monetária, produto desenvolvido dentro do Curso de Análise de Conjuntura usando o R, nós destrinchamos os rumos da política monetária através de expectativas do mercado para variáveis-chaves como inflação, PIB, Câmbio e Juros. Além disso, também mostramos como está a operação da política monetária através da comparação do juro real com o juro de equilíbrio da economia e atualizamos a Curva de Juros fornecida pela Anbima.

A tabela acima, coletada de forma automática a partir do Banco Central, traz um resumo do boletim Focus, que reúne mais de uma centena de instituições que fazem projeção de variáveis macroeconômicas toda semana. Como se vê, os agentes do mercado têm aumentado as expectativas para a inflação tanto em 2021 quanto em 2022, influenciados sobremaneira pelos resultados negativos do IPCA nos últimos meses.

Por outro lado, também há uma revisão importante no crescimento econômico de ambos os anos. Espera-se agora que o crescimento seja menor, por conta do ambiente fiscal e político mais crítico do que o antecipado no início do ano. Um câmbio mais depreciado completa o cenário.

O resultado desse cenário mais pessimista é a expectativa de um ciclo mais longo de contração monetária. O Banco Central vai ter de levar o juro básico da economia para a zona acima do juro neutro. As expectativas mais atualizadas do mercado indicam juro de 8,5% no final de 2021 e 8,2% no final de 2022. Ou seja, a expectativa é que o juro aumente e não ceda por um bom tempo.

Para a reunião dessa semana, há quem espere um aumento de 125 pontos-base, dada a deterioração do cenário inflacionário, ainda que esse não seja o consenso. A média do mercado aguarda por mais 100 pontos-base de aumento no juro básico.

A verdade é que o Banco Central tem sido surpreendido, de forma sistemática, com o cenário mais adverso para a inflação. Não apenas a autoridade monetária, diga-se, mas todo o mercado. As expectativas coletadas pelo Focus já contaminam não apenas 2021, mas também 2022.

Como referência, é bom lembrar que a meta de inflação para esse ano é de 3,75% e para o ano que vem é de 3,5%.

Definitivamente, a inflação pegou no breu, como explicado nos nossos últimos Comentários de Conjuntura.

Em meio a esse cenário mais adverso na inflação, a atividade também tem surpreendido, só que para baixo. Os agentes do mercado têm corrigido de forma sistemática o crescimento tanto para esse quanto para o próximo ano. O gráfico acima ilustra que agora espera-se crescimento de 5% para 2021 e 1,6% para 2022. Lembrando que 5% está muito próximo do carry-over deixado pelo ano passado.

O câmbio, outra variável importante para a decisão do COPOM, segue pressionada. Na margem, os agentes corrigiram um pouco o câmbio esperado para o final do ano. Espera-se agora um câmbio um pouco mais desvalorizado, por conta principalmente do aumento do prêmio de risco em meio à deterioração do ambiente fiscal.

A tendência, diga-se, é que esse ponto se aprofunde ao longo dos próximos meses.

Por fim, a empinada nos juros segue na Estrutura a Termo, como mostra a Curva de Juros da Anbima.

_______________________

(*) Consulte o Monitor de Política Monetária aqui.

(**) Conheça nosso Curso de Análise de Conjuntura usando o R.

Juro real vs. juro neutro: qual o efeito da política monetária no Brasil?

By | Comentário de Conjuntura

Essa semana, o Banco Central decide o patamar da taxa básica de juros no país. O consenso de mercado indica mais uma alta de 75 pontos-base, o que levaria a Selic para a casa dos 3,5% ao ano. Com efeito, haverá uma pressão adicional na taxa de juros real da economia. A pergunta que fica é se a política monetária ainda continuará no terreno expansionista ou se mudará o sentido para contracionista. Nesse Comentário de Conjuntura, mostramos como avaliar esse ponto na prática com o R.

Membros do Clube AM, por suposto, têm acesso a todos os códigos desse exercício. Esse tipo de tema é ensinado nos nossos Cursos de Análise de Conjuntura usando o R e de Política Monetária

Afim de obter o sentido da política monetária, devemos basicamente comparar o juro real com o juro de equilíbrio da economia brasileira. A diferença entre os dois vai nos dizer se a política monetária está em sentido expansionista (juro real menor que o juro neutro) ou contracionista (juro real maior que o juro neutro).

O juro real que considerei aqui é o juro real ex-ante, obtido a partir do juro do swap DI 360 deflacionado pela expectativa de inflação para os próximos 12 meses. Já o juro de equilíbrio segue uma proxy definida no Relatório de Inflação de dezembro de 2019, dada pela Selic esperada para t+3 deflacionada pela inflação espera para t+3.

Uma vez definidas as variáveis e como obter o sentido da política monetária, chegamos ao gráfico abaixo.

A área azul representa uma política monetária expansionista enquanto a área vermelha representa uma política monetária contracionista. Como se pode ver, a política monetária vem sendo expansionista desde 2017. Além disso, dado que o juro real está próximo da nulidade e o juro neutro encontra-se, por essa proxy, próximo de 3% a.a., ainda há bastante espaço até que haja uma mudança de sentido na política monetária.

Será que o Banco Central está disposto a promover essa mudança em meio a uma crise sanitária sem precedentes? A conferir...

_________________________

Membros do Clube AM, por suposto, têm acesso a todos os códigos desse exercício. Esse tipo de tema é ensinado nos nossos Cursos de Análise de Conjuntura usando o R e de Política Monetária

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

Assinar Gratuitamente