Núcleos de Inflação seguem bem comportados

Ontem, comentei aqui nesse espaço sobre o cenário benigno para a inflação e como isso estava garantindo uma taxa básica de juros abaixo de 5% no final do ano. Hoje, vou detalhar um pouco melhor esse ponto a partir dos núcleos de inflação. A ideia de um núcleo é capturar a tendência da inflação ao longo do tempo, retirando assim variações idiossincráticas. Em outros palavras, busca capturar a persistência do aumento de preços ao longo do tempo. De modo a ilustrar, considere, por exemplo, que o preço de um bem/serviço {i} varie de acordo com a equação \pi_{i,t} = \pi_t + \mu_{i,t}, onde \pi_t representa uma tendência e \mu_{i,t} uma idiossincracia. Desse modo, para {n} bens/serviços, o núcleo será dado por:

(1)   \begin{align*} \pi_t^{nucleo} = \sum_{i=1}^{n} \omega_{i}\pi_{i,t} - \sum_{i=1}^{n} \omega_{i}\mu_{i,t} \end{align*}

Em outras palavras, o objetivo do núcleo é reconhecer e retirar a parte idissiocrática, \sum_{i=1}^{n} \omega_{i}\mu_{i,t}, concentrando-se na verdadeira tendência da variação dos preços ao longo do tempo. Não à toa, Bancos Centrais de todo o mundo procuram construir e acompanhar medidas de núcleo de inflação. No Brasil, em particular, temos atualmente sete medidas de núcleo. Para uma explicação completa sobre os núcleos de inflação construídos pelo BCB, ver o Estudo Especial 17/2018 Novas Medidas de Núcleos de Inflação.

De modo a ilustrar o comportamento da média desses núcleos ao longo do tempo, bem como comparar com a inflação cheia, vamos criar um gráfico com o comportamento de ambas as séries. Para isso, precisaremos primeiro carregar alguns pacotes, como abaixo.


## Carregar pacotes
library(tidyverse)
library(readxl)
library(sidrar)
library(ggplot2)
library(forecast)
library(tstools)
library(scales)
library(png)
library(grid)

Vamos baixar o número-índice do IPCA a partir do pacote sidrar e posteriormente podemos criar a inflação mensal e a acumulada em 12 meses. O código abaixo implementa.


## Criar Inflação mensal e acumulada em 12 meses
ipca_indice = get_sidra(api='/t/1737/n1/all/v/2266/p/all/d/v2266%2013')
ipca_indice = ts(ipca_indice$Valor, start=c(1979,12), freq=12)
ipca_mensal = round((ipca_indice/stats::lag(ipca_indice,-1)-1)*100,2)
ipca_anual = round((ipca_indice/stats::lag(ipca_indice,-12)-1)*100,2)

O número-índice do IPCA tem início em dezembro de 1979, pegando assim toda a hiperinflação da década de 80. Não queremos isso, então pegamos apenas uma amostra dos dados, começando em junho de 2007, quando os choques provenientes da eleição do ex-presidente Lula já haviam se dissipado.


## Criar amostras
ipca_indice_subamostra = window(ipca_indice, start=c(2007,06))
ipca_mensal_subamostra = window(ipca_mensal, start=c(2007,06))
ipca_anual_subamostra = window(ipca_anual, start=c(2007,06))

Uma vez que tenhamos a inflação acumulada em 12 meses, vamos agora pegar os núcleos de inflação. Você pode baixar os dados no Sistema de Séries Temporais do Banco Central e depois importar para o R como abaixo. Observe que o código utiliza pipes, de modo já a acumular os dados em 12 meses e se concentrar na amostra que queremos.


## Núcleos
nucleos_12m = read_excel('nucleos.xlsx')[,-1] %>%
ts(start=c(1999,06), freq=12) %>%
acum_p(12) %>%
ts(start=c(1999,06), freq=12) %>%
window(start=c(2007,06))

De posse de todos os dados, podemos agora construir o nosso gráfico com o pacote ggplot2, como no código a seguir.


## Gráfico
media.nucleos = rowMeans(nucleos_12m)
meta = c(rep(4.5, length(media.nucleos)-8), rep(4.25, 8))
time = seq(as.Date('2007-06-01'), as.Date('2019-08-01'), by='1 month')
df = data.frame(time=time, meta=meta, nucleos=round(media.nucleos,2),
inflacao=ipca_anual_subamostra)

img <- readPNG('logo.png')
g <- rasterGrob(img, interpolate=TRUE)

ggplot(df, aes(x=time))+
annotate("rect", fill = "gray", alpha = 0.6,
xmin = as.Date('2016-01-01'),
xmax = as.Date('2019-08-01'),
ymin = -Inf, ymax = Inf)+
geom_line(aes(y=inflacao, colour='Inflação 12 meses'), size=.8)+
geom_line(aes(y=meta, colour='Meta de Inflação'), size=.8)+
geom_line(aes(y=nucleos, colour='Média dos 7 Núcleos'), size=.8)+
scale_colour_manual('',
values=c('Inflação 12 meses'='darkblue',
'Meta de Inflação'='red',
'Média dos 7 Núcleos'='#56B4E9'))+
theme(legend.position = 'top')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
xlab('')+ylab('% a.a.')+
labs(title='Inflação vs. Núcleos de Inflação',
caption='Fonte: analisemacro.com.br com dados do BCB.')+
theme(panel.background = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.background = element_rect(fill='#8abbd0'),
axis.line = element_line(colour='black',
linetype = 'dashed'),
axis.line.x.bottom = element_line(colour='black'),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = c(.2,.8),
legend.background = element_rect((fill='#acc8d4')),
legend.key = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.margin=margin(5,5,15,5))+
annotation_custom(g,
xmin=as.Date('2016-06-01'),
xmax=as.Date('2019-06-01'),
ymin=8.5, ymax=11)

E assim temos um gráfico com o comportamento da inflação cheia e a média dos 7 núcleos construídos e divulgados pelo Banco Central.

Como é possível observar no gráfico acima, a média dos 7 núcleos segue bem comportada na margem - 3,17% no acumulado até agosto -, bem abaixo da meta de inflação para esse ano, que é de 4,25%. Mesmo a inflação cheia também está abaixo da meta e a expectativa, como notei ontem, é que feche próximo a 3,42% no final de 2019. Se os núcleos de inflação forem bons preditores para a inflação no curto prazo - ver, por exemplo, Forecasting inflation in Latin America with core measures, publicado no International Journal of Forecasting - podemos considerar que na ausência de choques relevantes - principalmente, em relação ao câmbio - a inflação tanto esse quanto no próximo ano dá sinais de ficar mesmo abaixo da meta, abrindo caminho para mais cortes na taxa básica de juros nas próximas reuniões do COPOM.

___________________

(*) O script completo do exercício estará disponível logo mais no Clube do Código.

(**) No nosso Curso de Análise de Conjuntura usando o R, nós destrinchamos o IPCA na parte de inflação.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Analisando o sentimento da política monetária com IA usando Python

Análise de sentimentos é uma técnica de Processamento de Linguagem Natural (PLN) que serve para revelar o sentimento contido em um texto. Neste exercício, aplicamos esta técnica para analisar as atas das reuniões do COPOM, revelando o que os diretores de política monetária discutem nas entrelinhas. Utilizando um modelo de Inteligência Artificial através do Python, produzimos ao final um índice de 0 a 100 para sintetizar a análise histórica.

Como a IA pode auxiliar na otimização de Portfólio de Investimentos?

A construção de portfólio ótimo refere-se ao processo de alocar eficientemente capital entre um conjunto predefinido de ativos ou títulos. O campo da construção de portfólio tem sido extensivamente estudado por acadêmicos e profissionais desde a década de 1950, quando Markowitz introduziu sua inovadora abordagem de média-variância para a construção de portfólio. Diante disso, podemos melhorar o processo de alocação de peso de um investimento em um portfólio através do Aprendizado não supervisionado com a aplicação do Hierarchical Risk Parity (HRP). Neste exercício, realizamos uma introdução ao método e mostramos os resultados de um exemplo criado através do Python.

Prevendo múltiplas séries usando IA no Python

Como podemos realizar previsões para várias séries temporais simultaneamente? Para abordar essa questão, empregamos a biblioteca MLForecastdo Python. Esta biblioteca disponibiliza uma variedade de modelos e funcionalidades para realizar previsões em séries temporais utilizando técnicas de aprendizado de máquina. Demonstramos sua aplicação ao prever as curvas de energia horária em quatro regiões distintas do Brasil.

Esse exercício é uma continuação do exercício “Usando IA para prever o consumo de energia no Brasil com Python”.

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.