Índices de Inflação no Brasil

Introdução

O intuito desse post é bastante simples. Queremos coletar dados de inflação mensal através do pacote BETS e observar padrões para alguns índices no Brasil. Inicialmente, começamos carregando o pacote BETS. Na sequência, usamos a função BETSget() para fazer o download das séries desejadas. No caso, queremos o IPCA, IGP-M, IPA e IPC. O próximo passo é juntar todas as séries em uma múltipla série temporal, através do comando cbind(). Depois olhamos as últimas dez observações dos dados obtidos e transformamos o resultado em valores decimais (ao invés de %). Por fim, pedimos o plot da série.

library(BETS)

IPCA_M   <- BETSget(code = "10764")
IGPM_M   <- BETSget(code = "189")
IPA_M    <- BETSget(code = "225")
IPC_M    <- BETSget(code = "191")

Inflacao <- cbind(IPCA_M,IGPM_M,IPA_M,IPC_M)

# Últimas Observações da Série
tail(Inflacao, 10)
##          IPCA_M IGPM_M IPA_M IPC_M
## Aug 2019   0.08  -0.67 -0.90  0.17
## Sep 2019   0.09  -0.01  0.68  0.00
## Oct 2019   0.09   0.68  0.84 -0.09
## Nov 2019   0.14   0.30  1.11  0.49
## Dec 2019   1.05   2.09  2.34  0.77
## Jan 2020   0.71   0.48 -0.13  0.59
## Feb 2020   0.22  -0.04 -0.03 -0.01
## Mar 2020   0.02   1.24  2.33  0.34
## Apr 2020     NA   0.80  0.11 -0.18
## May 2020     NA   0.28    NA    NA
# Transformação em Decimal
Inflacao <- Inflacao*0.01 

plot(Inflacao, main = "Índices de Inflação Mensal",
     col = "red", xlab = "Tempo (Meses)",
     ylab = "Inflação Mensal")

Como podemos observar, através da figura anterior, todos os índices sofrem quebra estrutural no período de implementação do plano real. Portanto, faremos agora um novo plot com recorte para dados que comecem no ano de 1995.

plot(window(Inflacao, start = c(1995,1)), 
     main = "Índices de Inflação Mensal - Pós 95",
     xlab = "Tempo (Meses)",
     ylab = "Inflação Mensal",
     col = "red")

Observando a figura anterior, podemos identificar que embora não haja mais a quebra estrutural que divide o período de hiperinflação com o período atual, não podemos falar muito sobre o comportamento recente desses índices.

Dessa forma, para entender melhor, iremos agora acumulá-los para Inflação de 12 meses. Para isso, temos a seguinte equação:

\[\pi_{12 m}=\Pi_{t=1}^{t-11}(1+\pi_t)-1\] onde \(\pi_{12m}\) é a inflação de 12 meses, \(\pi_{t}\) é a inflação mensal, \(\Pi_{t=1}^{t-11}\) é o produtório do período corrente até a décima primeira defasagem.

Inflacao_12m <- ((1+Inflacao)*(1+stats::lag(Inflacao,-1))
                 *(1+stats::lag(Inflacao,-2))
                 *(1+stats::lag(Inflacao,-3))
                 *(1+stats::lag(Inflacao,-4))
                 *(1+stats::lag(Inflacao,-5))
                 *(1+stats::lag(Inflacao,-6))
                 *(1+stats::lag(Inflacao,-7))
                 *(1+stats::lag(Inflacao,-8))
                 *(1+stats::lag(Inflacao,-9))
                 *(1+stats::lag(Inflacao,-10))
                 *(1+stats::lag(Inflacao,-11)))-1

Inflacao_12m_1995 <- window(Inflacao_12m, start = c(1996,1))
colnames(Inflacao_12m_1995) <- c("IPCA", "IGP-M", "IPA", "IPC")

### Plot da Figura com Dados da Infla??o Acumulada em 12 Meses

plot(Inflacao_12m_1995, plot.type = "single", 
     col = c("red","blue","magenta","brown"),
     lwd = 2,
     main = "Inflação Acumulada em 12 Meses",
     xlab = "Tempo", 
     ylab = "Inflação Acumulada em 12 Meses",
     panel.first = grid(),
     ylim = c(-.10,0.45))
abline(h=0.00,  lty = 2, lwd = 2)
abline(h=0.045, lty = 3, lwd = 2)
legend("topleft",
       c("IPCA","IGP-M","IPA","IPC"),
       col=c("red","blue","magenta","brown"), 
       lwd = 2, cex=0.8, inset = 0.05)

Agora se torna claro os períodos de aumento e queda da inflação pelos distintos índices. Também fica evidente que IPA e IGP-M são muito mais voláteis do que o IPCA e o IPCA. Há uma razão para isso e investigaremos em outro post. Por enquanto, segue mais algumas características descritivas das séries

summary(Inflacao_12m_1995)
##       IPCA             IGP-M               IPA                IPC         
##  Min.   :0.01656   Min.   :-0.01724   Min.   :-0.04777   Min.   :0.01049  
##  1st Qu.:0.04403   1st Qu.: 0.04396   1st Qu.: 0.03907   1st Qu.:0.04519  
##  Median :0.06063   Median : 0.07659   Median : 0.07768   Median :0.06016  
##  Mean   :0.06601   Mean   : 0.08079   Mean   : 0.08754   Mean   :0.06631  
##  3rd Qu.:0.07475   3rd Qu.: 0.10678   3rd Qu.: 0.12423   3rd Qu.:0.07372  
##  Max.   :0.22290   Max.   : 0.32951   Max.   : 0.43634   Max.   :0.27237  
##  NA's   :2                            NA's   :1          NA's   :1
### Bloxplot com os Resultados
boxplot(Inflacao_12m_1995,
        main = "Boxplot com Inflação Acumulada 12 Meses - Índices",
        col = c("red","blue","magenta","brown"),
        xlab = "Índice", ylab = "Valor da Inflação Acumulada")

Tanto a figura da inflação acumulada em 12 meses, quando a estatística descritiva e os boxplots deixam claro que apesar de todas as séries apresentarem médias próximas, a dispersão dos dados é completamente distinta.

round(tail(Inflacao_12m_1995*100,15),2)
##          IPCA IGP-M   IPA  IPC
## Mar 2019 4.18  8.28 10.30 4.90
## Apr 2019 4.71  8.66 10.11 5.20
## May 2019 4.93  7.66  8.14 5.00
## Jun 2019 3.84  6.53  7.25 3.75
## Jul 2019 3.27  6.41  6.46 3.89
## Aug 2019 3.22  4.96  4.47 4.00
## Sep 2019 3.22  3.38  2.57 3.53
## Oct 2019 2.72  3.17  3.26 2.94
## Nov 2019 2.67  3.99  6.21 3.63
## Dec 2019 3.91  7.32  9.59 4.12
## Jan 2020 4.34  7.82  9.66 4.14
## Feb 2020 4.21  6.84  7.70 3.77
## Mar 2020 3.67  6.82  8.74 3.45
## Apr 2020   NA  6.69  7.69 2.62
## May 2020   NA  6.51    NA   NA
Júlio Fernando Costa Santos
Júlio Fernando Costa Santos
Professor of Economics

My research interests include Finance, Macroeconomics and Econometric techniques.

Related