Como fazer previsões para a inflação desagregada medida pelo IPCA?

Neste artigo investigamos se a previsão desagregada da inflação é capaz de gerar previsões mais acuradas do que a previsão agregada. Utilizamos o Índice Nacional de Preços ao Consumidor Amplo (IPCA) como medida de interesse, aplicando um modelo simples e um modelo de passeio aleatório para comparação. Todo o processo pode ser feito de maneira automatizada utilizando a linguagem de programação R.

Pacotes

Os pacotes utilizados no exercío são carregados conforme o código abaixo:


# Carregar pacotes
library(sidrar)
library(dplyr)
library(tsibble)
library(tidyr)
library(purrr)
library(fabletools)
library(fable)
library(ggplot2)

Dados

Os dados utilizados no exercício são provenientes do IBGE, através da API SIDRA. Utilizamos uma amostra de 2012 até os dados mais atuais, da última divulgação. O código abaixo coleta os dados e realiza os processamentos necessários:

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

# A tibble: 1,278 × 4
       data grupo                   variacao  peso
      <mth> <chr>                      <dbl> <dbl>
 1 2012 Jan 1.Alimentação e bebidas   0.0086 0.231
 2 2012 Feb 1.Alimentação e bebidas   0.0019 0.232
 3 2012 Mar 1.Alimentação e bebidas   0.0025 0.231
 4 2012 Apr 1.Alimentação e bebidas   0.0051 0.231
 5 2012 May 1.Alimentação e bebidas   0.0073 0.231
 6 2012 Jun 1.Alimentação e bebidas   0.0068 0.232
 7 2012 Jul 1.Alimentação e bebidas   0.0091 0.233
 8 2012 Aug 1.Alimentação e bebidas   0.0088 0.234
 9 2012 Sep 1.Alimentação e bebidas   0.0126 0.236
10 2012 Oct 1.Alimentação e bebidas   0.0136 0.237
# ℹ 1,268 more rows

Modelos

O objetivo deste exercício é produzir e comparar as previsões de um modelo simples para a inflação, medida pelo IPCA em variação percentual mensal, através dos dados desagregados (grupos) e agregados (índice cheio). As previsões desagregadas são reagregadas utilizando o peso do grupo em questão para formar a variação percentual mensal do índice cheio, tal como em Carlo & Marçal (2016). O modelo escolhido para teste foi um SARIMA automatizado, além de um passeio aleatório para comparação.

O código abaixo estima os modelos para os grupos do IPCA, restringindo os últimos dois anos da amostra para finalidade de teste e cálculo de erro.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

$`1.Alimentação e bebidas`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                              sarima
  <chr>                                             <model>
1 1.Alimentação e bebidas <ARIMA(1,0,0)(1,0,0)[12] w/ mean>

$`2.Habitação`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                       sarima
  <chr>                      <model>
1 2.Habitação <ARIMA(0,0,2) w/ mean>

$`3.Artigos de residência`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                              sarima
  <chr>                                             <model>
1 3.Artigos de residência <ARIMA(1,0,1)(1,0,0)[12] w/ mean>

$`4.Vestuário`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                          sarima
  <chr>                         <model>
1 4.Vestuário <ARIMA(1,0,3)(0,1,1)[12]>

$`5.Transportes`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                         sarima
  <chr>                        <model>
1 5.Transportes <ARIMA(1,0,0) w/ mean>

$`6.Saúde e cuidados pessoais`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                          sarima
  <chr>                                         <model>
1 6.Saúde e cuidados pessoais <ARIMA(0,1,2)(1,0,2)[12]>

$`7.Despesas pessoais`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                  sarima
  <chr>                                 <model>
1 7.Despesas pessoais <ARIMA(1,1,2)(0,0,1)[12]>

$`8.Educação`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                  sarima
  <chr>                                 <model>
1 8.Educação <ARIMA(0,0,0)(1,1,0)[12] w/ drift>

$`9.Comunicação`
# A mable: 1 x 2
# Key:     grupo [1]
  grupo                                    sarima
  <chr>                                   <model>
1 9.Comunicação <ARIMA(0,0,0)(1,0,0)[12] w/ mean>

Previsão

Para produzir as previsões desagregadas (grupos) utilizamos cada um dos nove modelos correspondentes de cada grupo do IPCA, gerando 24 pontos de previsão a frente. Com estas previsões em mãos, produzimos a previsão agregada do IPCA ao somar os produtos entre a previsão do grupo i no período t e último peso deste mesmo grupo conhecido até o momento da previsão.

O código abaixo produz as previsões agregadas e desagregadas do IPCA:

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

# A tibble: 216 × 5 grupo .model data variacao .mean <chr> <chr> <mth> <dist> <dbl> 1 1.Alimentação e bebidas sarima 2021 Nov N(0.011, 3.9e-05) 0.0111 2 1.Alimentação e bebidas sarima 2021 Dec N(0.009, 4.9e-05) 0.00900 3 1.Alimentação e bebidas sarima 2022 Jan N(0.0074, 5.2e-05) 0.00744 4 1.Alimentação e bebidas sarima 2022 Feb N(0.006, 5.3e-05) 0.00603 5 1.Alimentação e bebidas sarima 2022 Mar N(0.0057, 5.3e-05) 0.00570 6 1.Alimentação e bebidas sarima 2022 Apr N(0.0061, 5.3e-05) 0.00606 7 1.Alimentação e bebidas sarima 2022 May N(0.0061, 5.3e-05) 0.00609 8 1.Alimentação e bebidas sarima 2022 Jun N(0.0061, 5.3e-05) 0.00606 9 1.Alimentação e bebidas sarima 2022 Jul N(0.0063, 5.3e-05) 0.00632 10 1.Alimentação e bebidas sarima 2022 Aug N(0.0076, 5.3e-05) 0.00756 # ℹ 206 more rows

# A tibble: 24 × 2 data previsao <mth> <dbl> 1 2021 Nov 0.00766 2 2021 Dec 0.00658 3 2022 Jan 0.00462 4 2022 Feb 0.00625 5 2022 Mar 0.00434 6 2022 Apr 0.00445 7 2022 May 0.00430 8 2022 Jun 0.00434 9 2022 Jul 0.00392 10 2022 Aug 0.00338 # ℹ 14 more rows

Acurácia

Visando comparar a qualidade da previsão entre as duas metodologias, calculamos a Raiz do Erro Quadrático Médio (RMSE) da previsão reagregada do IPCA a partir dos grupos, de um modelo de previsão agregado (índice cheio) do IPCA e de um modelo passeio aleatório. O código abaixo realiza estes procedimentos:

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Acurácia do modelo reagregado: 
# A tibble: 1 × 1
     RMSE
    <dbl>
1 0.00448
Acurácia do modelo agregado e passeio aleatório: 
# A tibble: 2 × 3
  .model .type    RMSE
  <chr>  <chr>   <dbl>
1 rw     Test  0.00929
2 sarima Test  0.00472

Podemos observar que o modelo de previsão reagregado do IPCA apresenta, na amostra utilizada, um erro marginalmente menor em relação aos demais, o que corrobora com os resultados encontrados em Carlo & Marçal (2016).

Os resultados deste exercício podem ser diferentes para amostras de dados diferentes. Recomendamos testes mais intensivos com o uso de validação cruzada para uma visão mais geral sobre a perfomance das metodologias.

Visualização de dados

Finalizamos exibindo no gráfico abaixo as previsões geradas para os nove grupos do IPCA comparadas com os dados obervados no período:

Note que o modelo apresenta resultados melhores para determinados grupos devido a dinâmica da série temporal propícia para a estrutura do modelo. Para os demais grupos outros modelos poderiam ser aplicados para melhorar os resultados.

Conclusão

Neste artigo investigamos se a previsão desagregada da inflação é capaz de gerar previsões mais acuradas do que a previsão agregada. Utilizamos o Índice Nacional de Preços ao Consumidor Amplo (IPCA) como medida de interesse, aplicando um modelo simples e um modelo de passeio aleatório para comparação. Todo o processo pode ser feito de maneira automatizada utilizando a linguagem de programação R.

Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!

Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.

Referências

Thiago Carlomagno Carlo & Emerson Fernandes Marçal (2016): Forecasting Brazilian inflation by its aggregate and disaggregated data: a test of predictive power by forecast horizon, Applied Economics, DOI: 10.1080/00036846.2016.1167824

 

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Ancoragem de Expectativas da Inflação no Brasil: uma avaliação utilizando a linguagem de programação R

Expectativas ancoradas significam que a inflação permanece próxima da meta mesmo após choques relevantes, tornando menos custosa a atuação do Banco Central no combate a pressões inflacionárias. Neste exercício, analisamos diferentes medidas para avaliar a ancoragem das expectativas no Brasil, utilizando a linguagem de programação R como ferramenta para a construção desse exercício, realizando a coleta, tratamento, cálculos e visualização dos resultados.

Como fazer previsões para a inflação desagregada medida pelo IPCA?

Neste artigo investigamos se a previsão desagregada da inflação é capaz de gerar previsões mais acuradas do que a previsão agregada. Utilizamos o Índice Nacional de Preços ao Consumidor Amplo (IPCA) como medida de interesse, aplicando um modelo simples e um modelo de passeio aleatório para comparação. Todo o processo pode ser feito de maneira automatizada utilizando a linguagem de programação R.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.