Análise da inflação pelo IPCA

Marcus Sarmento

02/08/2022

Introdução

Analisaremos a inflação brasileira com o Índice Nacional de Preços ao Consumidor Amplicado (IPCA). Ele é o termômetro das variações de preços dos bens consumidor pelos brasileiros.

Em momentos atuais, onde o poder de compra está cada vez menor, entender onde se concentra essas maiores variações pode ajudar a conter o gasto desnecessário, se for o caso.

Para a análise, usaremos o pacote “sidrar” que busca os dados na fonte, ou seja, nas bases do Instituto Brasileiro de Geografia e Estatística (IBGE). A tabela usada é a que contém a série histórica do número índice, variação mensal e variações acumuladas tabela (1737).

Abaixo é mostrado o código que se usa para extrair as informações:

ipca = get_sidra(api = '/t/1737/n1/all/v/2266/p/all/d/v2266%2013') %>%
  mutate(date = parse_date(`Mês (Código)`, format = "%Y%m")) %>%
  mutate(inflacao_mensal = (Valor/lag(Valor,1)-1)*100,
         inflacao_anual = (Valor/lag(Valor,12)-1)*100) %>%
  dplyr::rename(indice = Valor) %>%
  select(date, indice, inflacao_mensal, inflacao_anual) %>%
  as_tibble()

Tabela

Aqui fazemos uma organização em formato tabela com o intuito de mostrar apenas os seis primeiros meses. Com o pacote “knitr”, podemos construir a tabela abaixo:

ipca %>%
  tail() %>%
  kable(digits = 2)
date indice inflacao_mensal inflacao_anual
2022-01-01 6153.09 0.54 10.38
2022-02-01 6215.24 1.01 10.54
2022-03-01 6315.93 1.62 11.30
2022-04-01 6382.88 1.06 12.13
2022-05-01 6412.88 0.47 11.73
2022-06-01 6455.85 0.67 11.89

Gráfico

A composição visual de gráfico nos permite vislumbrar uma análise mais de tendência. Analisamos aqui o período de um ano, ou seja, de junho de 2021 até junho de 2022, último dado sobre o IPCA

ipca %>% 
  gather(variavel, valor, -date) %>%
  filter(date > '2021-06-01') %>%
  ggplot(aes(x=date, y=valor, colour = variavel))+
  geom_line(size=.8)+
  geom_point()+
  facet_wrap(~variavel, scales='free')+
  theme(legend.position = 'none')

Grupos da inflação

Nessa análise, será feita a patir da série histórica dos nove grandes grupos, do peso que cada grupo tem na inflação e criaremos um índice de variação para cada período analisado. Começamos pela análise individual de cada grupo que compõe a inflação.

Novamente, aqui pegamos os dados da tabela 7060 que se refere a Variação mensal, acumulada no ano, acumulada em 12 meses e peso mensal, para o índice geral, grupos, subgrupos, itens e subitens de produtos e serviços. Em cima disso, criarmos a contribuição que cada componente exerce, separadamente, na inflação.

variacao =
'/t/7060/n1/all/v/63/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v63%202' %>%
get_sidra(api=.) %>%
mutate(date = parse_date(`Mês (Código)`, format='%Y%m')) %>%
select(date, "Geral, grupo, subgrupo, item e subitem", Valor) %>%
pivot_wider(names_from = "Geral, grupo, subgrupo, item e subitem",
values_from = Valor)

peso =
'/t/7060/n1/all/v/66/p/all/c315/7170,7445,7486,7558,7625,7660,7712,7766,7786/d/v66%204' %>%
get_sidra(api=.) %>%
mutate(date = parse_date(`Mês (Código)`, format='%Y%m')) %>%
select(date, "Geral, grupo, subgrupo, item e subitem", Valor) %>%
pivot_wider(names_from = "Geral, grupo, subgrupo, item e subitem",
values_from = Valor)

contribuicao = (variacao[,-1]*peso[,-1]/100) %>%
mutate(date = variacao$date) %>%
select(date, everything())

Variação

Percebemos que Vestuário, Saúde e cuidados pessoais e Despesas pessoais estão onerando o poder de compra dos cidadãos.

Peso

Entretanto, apesar dda variação ser importante, o que nos interessa é a magnitude que o impacto gera no orçamento. Para isso, temos aqui a análise de tendência do peso. O peso é importante pois, mesmo que sua variação tenha sido ínfima, seu impacto pode ainda estar alto. É o caso do grupo Alimentação e bebidas, Transportes, Habitação (que está em queda, mas ainda é alto seu peso na inflação) e Saúde e cuidados pessoais, que volta sua tendência de crescimento.

Contribuição agregada

Por último, faremos uma agregação de todos os grupos e uma linha de tendência com a agregação desses pesos de forma que, será de fácil identificação saber qual grupo está diretamente ligado ao crescimento da inflação, naquele período. Vejamos:

contribuicao_long = contribuicao %>%
  gather(variavel, valor, -date)


inflacao = round(rowSums(contribuicao[,-1]),2)
inflacao = xts(inflacao, order.by = contribuicao$date)
inflacao = data.frame(time = index(contribuicao_long$date),
                      melt(as.data.frame(inflacao)))

contribuicao_long %>%
  ggplot(aes(x=date))+
  geom_col(aes(y=valor, fill=variavel, colour=variavel))+
  geom_line(data=inflacao,
            aes(x=contribuicao_long$date, y=value),
            size=.9, colour='black')+
  geom_hline(yintercept = 0, colour='black', linetype='dashed')+
  scale_colour_manual(values = colours)+
  scale_fill_manual(values = colours)+
  theme(legend.title = element_blank(),
        legend.position = 'right',
        legend.key.size = unit(0.1, "cm"))+
  labs(x='', y='', title= "Contribuição dos Grupos do IPCA para a Inflação Mensal")