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")