Os preços dos bens e serviços estão em constante alteração e Inflação e Deflação são os possíveis resultados. Inflação significa um aumento do preço médio de bens e serviços em termos de dinheiro. Deflação significa o oposto.
Há distintas razões e explicações para a inflação de acordo com Amado and Mollo (2003). Para a teoria monetarista, inflação decorre do aumento da oferta de moeda, cujo controle é responsabilidade da autoridade monetária, isto é, do Banco Central. O aumento na quantidade de moeda gera pressões de demanda, porque há uma renda monetária maior para os gastos. Atualmente, o Banco Central disponibiliza a quantidade de moeda suficiente para que a taxa de juros básica da economia se mantenha no patamar por ele mesmo determinado. Nesse caso, a autoridade monetária cometeria erros inflacionários ao deixar a taxa de juros abaixo do nível natural, gerando pressões inflacionárias por toda economia.
Há entretanto, outras visões e causas sobre a inflação, conforme Amado and Mollo (2003): conflito distributivo, inércia inflacionária e pontos de estrangulamento.
A inflação por conflito distributivo deve-se, sob um ponto de vista keynesiano, à relação inversa entre inflação e desemprego. Quanto menor o desemprego, maior o poder de barganha dos trabalhadores e, portanto, maiores tendem a ser seus salários nominais. Tais aumentos geram pressões nos custos de produção e, consequentemente, aumento de preços. Sob o ponto de vista marxista, a relação maior se dá pelo conflito entre trabalhadores e capitalistas em que cada um dos grupos tenta aumentar sua participação relativa na renda. Nesse caso, o aumento dos preços parte dos capitalistas e os trabalhadores fazem pressão como reação à perda do poder de compra.
A inflação por inércia decorre da inflação por conflito distributivo. Como os preços não são ajustados igualmente e no mesmo período, os diversos grupos criam mecanismos de manutenção de sua participação na renda por meio de aumentos períodicos e razoavelmente definido de preços, correspondentes à indexação. Se esse movimento se generaliza, a inflação tende a ser persistente.
A despeito desse resumo, há outras visões e consequências a respeito dos fenômenos inflacionários. De toda forma, ao analisarmos dados de séries temporais econômicas, precisamos nos atentar à existência de tais fenômenos e fazer os devidos ajustes contábeis para evitar erros explicativos decorrentes de variação de preços e não necessariamente de fenômenos econômicos “reais.”
Esta nota objetiva explicar o processo de deflacionamento de preços por meio do software estatístico R. Trata-se de um programa de livre distribuição. Como vantagens para fazer no R, podemos notar a reprodutibilidade dos passos aqui adotados por outras pessoas em outras máquinas. Garantir que outros pesquisadores e outras pesquisadoras possam realizar os mesmos passos contribui para o desenvolvimento científico. Ademais, como os passos acessam os dados diretamente via conexão de internet, não são necessários recursos adicionais como baixar tabelas manualmente, que podem gerar erros dificilmente rastreáveis.
Por fim, a presente nota necessita de conhecimentos básicos do R e dos pacotes adicionais utilizados.
A inflação significa um aumento dos preços de um período de tempo \(t\) em relação ao período anterior \(t-1\). Esse período pode ser calculado em semanas, meses ou anos, por exemplo. Como a inflação se trata de um fenômeno generalizado, os distintos índices de preços avaliam a variação de preços em termos do custo total de uma cesta de bens e serviços \(C\). Assim, podemos calcular a variação de preços \(\pi_t\) no período de tempo \(t\) por:
\[\begin{equation} \pi_t = \dfrac{C_{t} - C_{t-1}}{C_{t-1}} = \dfrac{C_{t}}{C_{t-1}} - 1 \tag{1.1} \end{equation}\]
Se \(\pi_t > 0\), tivemos inflação no período. Se \(\pi_t < 0\), deflação. \(\pi_t = 0\) indica que os preços não se alteraram em média.
A primeira constatação é de que cestas de consumo diferentes tendem a apresentar variações de inflação distintas. Nesta nota, usaremos o Índice de Preços ao Consumidor Amplo - IPCA, medida pelo IBGE.
Diante disso, deflacionamento de preços significa retirar o efeito inflacionário da variação de preços em um determinado período. Para isso, precisamos definir um período-base de referência para os demais. Há, portanto, quatro fases para realizar o deflacionamento:
Passemos, portanto, aos passos acima, acompanhado dos devidos códigos para uso do R.
Para a presente nota, usaremos o IPCA. As rotinas são semelhantes para outros índices de inflação. Note também que utilizaremos o padrão usado pelas calculadoras do IBGE e do Banco Central do Brasil, de que os valores a serem deflacionados têm como período inicial o primeiro dia do mês inicial e como período final o último dia do mês final.
O IBGE oferece um pacote específico para acesso a sua base de dados por meio do Sistema IBGE de Recuperação Automática - SIDRA, integrado com o R. Para isso, é necessário instalar e carregar o pacote sidrar. Também carregaremos outros pacotes necessários para as manipulações seguintes:
# install.packages("sidrar") # Instala o pacote. Necessário apenas uma vez
# install.packages("tidyverse")
# install.packages("ggthemes")
# install.packages("writexl")
# install.packages("rbcb")
library(sidrar) # Carrega o pacote sidra
library(tidyverse) # Manipula tabelas e elabora gráficos
library(ggthemes) # Layout gráfico semelhante ao usado no Stata
library(writexl) # Salva as tabelas elaboradas em formato .xls
library(rbcb) # Base de dados do Banco Central do Brasil (BCB)
O pacote sidrar tem algumas funcionalidades interessantes, como localizar uma série a partir de palavras chave, pegar informações da série e, efetivamente, fazer o download. Para maiores informações, vale a consulta:
??sidrar # Acessa informações gerais sobre o pacote
?search_sidra # Encontra as séries com determinada palavra chave
?info_sidra # Oferece informações sobre uma série específica
?get_sidra # Baixa a(s) série(s) de interesse
Nessa linha, podemos encontrar a série para o IPCA:
series_ipca <- search_sidra("IPCA")
tail(series_ipca) # mostra as últimas seis linhas
## [1] "Tabela 1737 - IPCA - Série histórica com número-índice, variação mensal e variações acumuladas em 3 meses, em 6 meses, no ano e em 12 meses (a partir de dezembro/1979)"
## [2] "Tabela 2938 - IPCA - Variação mensal, acumulada no ano e peso mensal, para o índice geral, grupos, subgrupos, itens e subitens de produtos e serviços (de julho/2006 até dezembro/2011)"
## [3] "Tabela 2942 - IPCA dessazonalizado - Variação mensal, acumulada no ano e peso mensal, para o índice geral, grupos, subgrupos, itens e subitens de produtos e serviços (de julho/2006 até dezembro/2011)"
## [4] "Tabela 6691 - IPCA - Série histórica com número-índice, variação mensal e variações acumuladas a partir de 12 meses (a partir de novembro/2014)"
## [5] "Tabela 7060 - IPCA - 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 (a partir de janeiro/2020)"
## [6] "Tabela 7061 - IPCA dessazonalizado - Variação mensal, acumulada no ano e peso mensal, para o índice geral, grupos, subgrupos, itens e subitens de produtos e serviços (a partir de janeiro/2020)"
Para o presente caso, usaremos as estatísticas mensais do IPCA. Essa pesquisa nos permite descobrir que se trata da tabela 1737 do IBGE. Podemos acessar suas informações a seguir:
# A execução do código solicitará permissão para acessar as informações diretamente no site do IBGE.
# Basta digitar "y" (yes) no console.
info_sidra(1737, wb = T)
A consulta ao site nos permite notar que a variável que nos interessa é a \(63\). A título de exemplo, pegaremos os dados de Janeiro de 2019 a Dezembro de 2020. Note que precisamos baixar os dados também de Dezembro de 2018, uma vez que a metodologia da calculadora do IBGE exige que se divida os valores iniciais pelo índice de preços do mês anterior. Com isso, temos a data inicial de acordo com o primeiro dia do mês. Assim, podemos baixar com o código abaixo. Recomendamos ler a ajuda do pacote para compreender o uso dos parâmetros:
ipca19_20 <- get_sidra(1737,
variable = 63,
period = "201812-202012",
format = 2)
head(ipca19_20[,-1],n = 3) # Lê as 3 primeiras linhas, mas não a 1a coluna.
Notem também que os números das linhas estão começando no índice 2. Podemos ajustar renomeando as linhas a seguir:
length(ipca19_20$Valor) # Comprimento de uma coluna
## [1] 25
rownames(ipca19_20) <- 1:length(ipca19_20$Valor)
head(ipca19_20[,-1],n = 2)
tail(ipca19_20[,-1],n = 2)
Passemos ao cálculo dos índices.
O passo seguinte é estabelecer uma estrutura de índices para os preços. Por simplicidade, estabeleceremos o primeiro período (Dezembro de 2018) como período-base, igualando a \(100\)3. Também estamos considerando a inflação como medida no último dia do mês.
De acordo com a equação (1.1), podemos estabelecer o preço de uma cesta-base do período \(t\) com base em \(t-1\): \[\begin{equation} C_{t} = C_{t-1}(1+\pi_t) \tag{1.2} \end{equation}\]
em que estabelecemos \(C_0 = 100\) o valor da cesta de bens em nosso período-base. Para um período \(t \geq 1\), temos que a inflação acumulada a partir do período inicial é: \[\begin{equation} C_{t} = \prod_{i=1}^{t}C_{i-1}(1+\pi_i) \end{equation}\]
Essas contas podem ser feitas com o R. Para isso, podemos criar uma coluna com os índices e, por meio de um laço de repetição for, estabelecer todos os índices:
# Seleção das informações relevantes
ipca19_20_mensal <- ipca19_20[,c("Mês","Valor")] # Seleciona colunas de interesse
ipca19_20_mensal$indice <- 100 # Cria coluna de índices
head(ipca19_20_mensal, n = 2)
# Números índice
for (i in 1:24) {
ipca19_20_mensal[i+1,"indice"] <- (ipca19_20_mensal[i+1,"Valor"]/100+1)*
ipca19_20_mensal[i,"indice"]
}
head(ipca19_20_mensal,n = 3)
tail(ipca19_20_mensal,n = 3) # Dezembro de 2018 = 100
A partir dos índices, podemos encontrar os termos de deflacionamento.
Após os números índice, podemos escolher qualquer período para ser a referência para os valores de deflacionamento. Estabelecendo \(D_{b,t}\) o termo de deblacionamento do período \(t\) na base \(b\) e \(i_t\) o índice no período \(t\), temos que: \[\begin{equation} D_{b,t} = \dfrac{i_{b}}{i_{t-1}} \label{deflator} \end{equation}\]
Isso nos permitirá estabelecer os valores de qualquer série em termos dos preços no período \(b\). Para fins de exemplo, podemos estabelecer o último período como base. Note que não teremos o deflator para o primeiro período da série no caso do cálculo seguindo o formato adotado pela calculadora do IBGE.
# Cria a coluna do deflator
ipca19_20_mensal$precos_dez_2020 <- c(NA,rep(1,24))
# Preço em termos de Dezembro de 2020
for (i in 0:23) {
ipca19_20_mensal[25-i,"precos_dez_2020"] <- ipca19_20_mensal[25,"indice"]/
ipca19_20_mensal[25-i-1,"indice"]
}
head(ipca19_20_mensal,n = 3)
tail(ipca19_20_mensal,n = 3) # Para Novembro/2020 como base
Para outros períodos, o exercício é análogo. Podemos notar, por exemplo, que \(R\$ 100.00\) em Janeiro de 2019 valeriam hoje R\(\$\) 109.02. A partir disso, podemos deflacionar qualquer série pelo IPCA mensal.
Por fim, para deflacionar uma série com o que obtemos acima, basta que façamos: \[\begin{equation} P_{t,b} = P_{t}\cdot D_{b,t} \end{equation}\]
Em que \(P_{t}\) é o valor nominal de uma determinada série no período \(t\) e \(P_{t,b}\) é o valor da série no mesmo período \(t\), mas em termos do período \(b\). \(D_{b,t}\) é o deflator que encontramos no passo anterior.
Como exemplo, vamos avaliar o saldo de crédito de pessoas físicas4 entre janeiro de 2019 e dezembro de 2020, em termos dos preços em 31 de dezembro de 2020. A série será baixada diretamente do Sistema Gerenciador de Séries Temporais do Banco Central do Brasil (BCB) por meio do pacote rcbc e está em milhões de reais.
# Download da série
saldo <- get_series(code = c(credito_pf = 20541),
start_date = "2019-01-01",
end_date = "2020-12-31")
head(saldo,n = 2)
tail(saldo,n = 2)
Com os dados, podemos aproveitar a tabela de deflação e selecionar o período de interesse e aplicá-la aos dados coletados do BCB. Para esse caso, as informações serão tratadas com o pacote dplyr, disponível no pacote mais amplo tidyverse.
# Retira os dados de janeiro de 2019 a dezembro de 2020
deflatores <- ipca19_20_mensal$precos_dez_2020[2:25]
# Deflaciona os preços e organiza para plotagem
saldo_pf<- saldo %>%
mutate(credito_def = credito_pf*deflatores) %>%
pivot_longer(cols = credito_pf:credito_def,
names_to = "Tipo",
values_to = "Saldo")
# Exibe o saldo do Setor Industrial nos dois primeiros meses de 2019
head(saldo_pf,n = 4)
E podemos ver a evolução do Saldo para os três setores na Figura 1.1, elaborado com o pacote ggplot2.
ggplot(data = saldo_pf,aes(x = date,y = Saldo/1000, color =Tipo))+
geom_line(size = 1.25)+
labs(x=NULL,
y = NULL,
color = NULL,
title = "Saldo de Crédito das Pessoas Físicas (bilhões R$)",
caption = "Fonte: séries n. 20541 do BCB. Reais de 31/12/2020.")+
scale_color_manual(values = c("#D55E00","#009E73"),
labels = c("Real","Nominal"))+
scale_x_date(date_labels = "%m/%Y",
date_breaks = "4 months")+
theme_stata()+
theme(axis.text.y = element_text(angle = 0))
Figure 1.1: Elaboração própria.
Estas foram breves considerações sobre a atualização de valores por meio do R e esperamos que auxilie pesquisadores e pesquisadoras a se familizarizarem com a ferramenta e com esse procedimento de rotina para cientistas sociais em geral.
Copyleft – Reprodução permitida desde que citada a fonte.
Doutorando em Economia pela Universidade de Brasília. Erros ou dúvidas podem ser enviadas para rafaeldeacyprestemr@gmail.com.↩︎
A inflação ou deflação seguem a mesma forma de cálculo e serão tratadas indistintamente daqui em diante. A diferença se dará apenas com respeito ao sinal do resultado final, em que inflação apresentará um resultado positivo.↩︎
Poderíamos estabelecer apenas período-base = \(1\), mas é menos comum. Voltaremos aos valores com base 1 nos próximos passos.↩︎
Pela definição do próprio BCB, os dados para pessoas físicas se referem ao ``[s]aldo em final de período das operações de crédito contratadas no Sistema Financeiro Nacional. Inclui operações contratadas no segmento de crédito livre e no segmento de crédito direcionado’’.↩︎