Raio-X da inflação no Brasil usando o R: as classificações do IPCA.

A análise da inflação envolve no Brasil uma curiosa disputa entre os economistas. Disputa essa, diga-se, completamente adormecida em países com uma taxa de inflação comportada ao longo do tempo. Nesse confronto, às vezes violento, entre profissionais com matizes teóricas distintas, há narrativas diversas sobre os motivos pelos quais a inflação é alta no país. Dentre tantos enredos, um que chamou atenção desse escriba no último ano foi o comportamento dos preços de algumas classificações do IPCA, o índice usual para medir inflação por terras tupiniquins. É um pouco disso que tratarei aqui, no terceiro post de uma série que busca ao mesmo tempo:  (i) mostrar, de forma bem introdutória, como lidar com dados macroeconômicos na prática, usando o software R; (ii) entender o comportamento da taxa de variação dos preços no país, bem como gerar alguns modelos de previsão para a inflação, dados seus determinantes. Os dois outros posts trataram, respectivamente, dos diversos índices de preços que temos e dos grupos do IPCA. Ao fim desse post espera-se que o leitor tenha melhor compreendido como o IPCA se divide por bens e serviços, comercialização com o resto do mundo e liberdade para ir e vir.

Em busca da causa de uma inflação galopante...

No primeiro post dessa série verificamos o comportamento da variação mensal e acumulada em 12 meses de 16 índices de preços ao longo dos últimos anos. Observamos que parece existir um descolamento entre os índices de preços no atacado e índices ao consumidor. Enquanto os índices no atacado mostram uma inflação comportada, abaixo, inclusive, da meta, os índices ao consumidor mostram uma inflação em aceleração. Em particular, nos últimos meses, observa-se um "salto" nos índices ao consumidor.

No segundo post da série, abrimos o IPCA, o principal índice ao consumidor do país, e analisamos os seus 9 grupos. Entendemos que o "salto" está concentrado no grupo habitação, morada do subitem energia elétrica. A despeito disso, observamos que a inflação elevada está alastrada pela maioria dos grupos do IPCA. Desse modo, não foi possível dizer que a inflação alta é apenas um sintoma do aumento de energia elétrica. É preciso ir adiante.

Com esse objetivo, trabalharemos aqui com as séries do Banco Central, que dividem o IPCA em preços monitorados e livres e estes em bens (não duráveis, semi duráveis e duráveis) e serviços, comercializáveis e não comercializáveis. O leitor pode encontrar as variações mensais dessas séries no Sistema de Séries Temporais do BCB, na parte de Atividade Econômica. Feito o download das séries, a importação para o R e carregado o pacote BMR, podemos ver os gráficos das séries com a função gtsplot, como já visto no post anterior.

Variação Mensal das Classificações do IPCA
Variação Mensal das Classificações do IPCA (%)

Um problema imediato surge ao trabalhar com essas séries do BCB. O mesmo só divulgou quais bens e serviços entram em cada classificação em um box do relatório de inflação de dezembro de 2011, para o período posterior a janeiro de 2012. Isso foi feito em virtude da adequação das séries à Pesquisa de Orçamento Familiar (POF) 2008-2009, adotada pelo IBGE na construção do índice desde então. Abaixo o leitor pode consultar como os diferentes bens e serviços são classificados atualmente de acordo com o Banco Central.

Como o BCB classifica bens e serviços do IPCA.
Como o BCB classifica bens e serviços do IPCA.

Infelizmente, entretanto, essa classificação não é retroativa. Isto é, se quisermos ir além de janeiro de 2012, as classificações se modificam, de acordo com a POF em vigor. Para o período que estamos trabalhando aqui, agosto de 1999 a abril de 2015, há basicamente três POFs: o intervalo entre agosto de 1999 e junho de 2006 é coberto pela POF 1995-1996, de julho de 2006 a dezembro de 2011 pela POF 2002-2003 e o período atual, a partir de janeiro de 2012, pela POF 2008-09. Dada essa dificuldade, como podemos ter uma noção sobre os pesos de cada uma dessas classificações no índice cheio?

Estimando os pesos das classificações do IPCA...

A forma precisa é bater na porta no Banco Central, pedir as tabelas anteriores a janeiro de 2012 e ir no IPCA desagregado verificar subitem por subitem a qual classificação ele pertence. Feito isto, agrega-se os subitens e obtêm-se os pesos de cada classificação. Complicado, não é mesmo? Bastante. Uma outra forma, bem mais simples, é regredir a variação mensal do IPCA contra as variações mensais dessas classificações, de forma a obter os coeficientes. Estes, por sua vez, podem ser interpretados como os pesos aproximados de cada classificação dentro do IPCA. Isso é feito com o código abaixo.

################## ESTIMAR PESOS ##############################

end=c(2015,4)
start=end-c(0,11)

reg.1 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,3], start=start, end=end)

reg.2 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,4]+ipca[,5]+ipca[,6]+ipca[,7],
 start=start, end=end)

reg.3 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,8]+ipca[,9], start=start,
 end=end)

Pesos <- c(1, coef(reg.1), coef(reg.2)[-1], coef(reg.3)[-1])*100

table.regressao <- stargazer(reg.1, reg.2, reg.3,
 title='Pesos Estimados',
 dep.var.labels='',
 covariate.labels=c('Monitorados','Livres',
 'Não Duráveis',
 'Semi-Duráveis',
 'Duráveis',
 'Serviços',
 'Tradeables',
 'Nontradeables'),
 align=TRUE, type='html',
 out='regressoes.html')

O objeto reg.1 é a regressão do ipca mensal contra a variação dos preços monitorados e livres, o objeto reg.2 é contra a variação mensal dos monitorados, bens [não duráveis, semi-duráveis e duráveis] e serviços e o objeto reg.3 é contra os monitorados, tradeables e nontradeables, respectivamente. Observe o leitor que as regressões são feitas sem intercepto e de forma que a composição das variáveis explicativas seja igual à variável dependente, que é a variação mensal do IPCA. O código termina com a geração de uma tabela-resumo das regressões. Ela é posta abaixo.

Pesos Estimados
Dependent variable:
(1) (2) (3)
Monitorados 0.230*** 0.232*** 0.232***
(0.001) (0.001) (0.001)
Livres 0.771***
(0.003)
Não Duráveis 0.236***
(0.002)
Semi-Duráveis 0.086***
(0.002)
Duráveis 0.093***
(0.003)
Serviços 0.353***
(0.002)
Tradeables 0.355***
(0.003)
Nontradeables 0.412***
(0.002)
Observations 12 12 12
R2 1.000 1.000 1.000
Adjusted R2 1.000 1.000 1.000
Residual Std. Error 0.004 (df = 10) 0.003 (df = 7) 0.003 (df = 9)
F Statistic 255,254.000*** (df = 2; 10) 177,343.100*** (df = 5; 7) 238,580.100*** (df = 3; 9)
Note: *p<0.1; **p<0.05; ***p<0.01

Os coeficientes das regressões podem ser interpretados, nesse contexto, como os pesos das diferentes classificações do IPCA. Os preços monitorados [ou administrados] têm peso de 23% no índice cheio, enquanto os livres de 77%. Nestes, os serviços responderam por cerca de 35 pontos percentuais e os bens [não duráveis, semi- duráveis e duráveis] pelo restante. A abertura dos preços livres por comercialização com o resto do mundo mostra que cerca de 41 p.p. são nontradeables, que não sofrem assim concorrência externa. Esse procedimento simples nos dá uma noção bastante próxima dos reais pesos das classificações, na média dos últimos 12 meses. Abaixo coloco uma tabela com todos os subitens dos preços considerados monitorados [ou administrados] nos meses desse ano, para que o leitor veja o quão próximos nossa estimação está da realidade.

Preços Administrados

A evolução dos pesos das classificações do IPCA ao longo do tempo

Como dito anteriormente, durante o período da amostra houve duas mudanças na estrutura de ponderação do IPCA, para adequá-lo à revisões da Pesquisa de Orçamento Familiar. Além disso, como explicado no post anterior, o peso de cada subitem varia de um mês para o outro, o que implica que os pesos das classificações também se modificam ao longo do tempo. Desse modo, para verificar essa evolução dos pesos ao longo do tempo, proponho abaixo uma estimação recursiva daquelas três equações acima. Em outros termos, estimam-se as equações ao longo da amostra, adicionando uma nova observação de cada vez. O código no é posto abaixo.

######################################################################
############## OLS RECURSIVO PARA PESOS ESTIMADOS ##################
######################################################################

coefs <- matrix(NA, ncol = 2, nrow = nrow(ipca))
coefs2 <- matrix(NA, ncol = 5, nrow = nrow(ipca))
coefs3 <- matrix(NA, ncol = 3, nrow = nrow(ipca))

colnames(coefs) <- c('Monitorados','Livres')
colnames(coefs2) <- c('Monitorados', 'Não-Duráveis',
 'Semi-Duráveis', 'Duráveis', 'Serviços')
colnames(coefs3) <- c('Monitorados', 'Tradeables', 'Nontradeables')

for (i in 1:nrow(ipca)){

 reg.1 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,3],
 end=start(ipca)+c(0,10+i))

 reg.2 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,4]+ipca[,5]+ipca[,6]+ipca[,7],
 end=start(ipca)+c(0,10+i))

 reg.3 <- dynlm(ipca[,1]~0+ipca[,2]+ipca[,8]+ipca[,9],
 end=start(ipca)+c(0,10+i))

 coefs[i,] <- coef(reg.1)
 coefs2[i,] <- coef(reg.2)
 coefs3[i,] <- coef(reg.3)
}

############### COEFICIENTES COMO SÉRIES DE TEMPO ###################

coefs <- ts(coefs, start=start(ipca), freq=12)
coefs2 <- ts(coefs2, start=start(ipca), freq=12)
coefs3 <- ts(coefs3, start=start(ipca), freq=12)

#################### GRÁFICOS dos COEFICIENTES ######################

coeficientes <- cbind(coefs, coefs2[,-1], coefs3[,-1])*100

colnames(coeficientes) <- c('Monitorados','Livres',
 'Não Duráveis',
 'Semi-Duráveis',
 'Duráveis',
 'Serviços',
 'Tradeables',
 'Nontradeables')

dates <- seq(as.Date('1999-08-01'), as.Date('2015-04-01'), by='1 month')

gtsplot(coeficientes, dates=dates)

E os gráficos...

Estimação Recursiva dos Pesos das Classificações do IPCA
Estimação Recursiva dos Pesos das Classificações do IPCA (%)

Os gráficos mostram a evolução dos pesos estimados das classificações do IPCA a cada nova observação adicionada. Os monitorados e livres mostram trajetórias simétricas, assim como os tradeables e os nontradeables. Os bens não duráveis perderam participação no índice cheio, enquanto os serviços têm avançado nos últimos anos. Em outras palavras, leitor, pode-se observar como as diferentes classificações contribuem ao longo do tempo para a variação do índice cheio.

As coisas começam a fazer sentido...

Estimados os pesos das classificações do IPCA e visto a evolução dos mesmos ao longo do tempo, o próximo passo para tornar o nosso entendimento sobre o processo inflacionário mais claro é acumular as variações mensais em 12 meses. O gráfico abaixo mostra essas séries dentro da nossa amostra.

Variação Anual das Classificações do IPCA
Variação Anual das Classificações do IPCA (%)

E agora uma tabela com as últimas observações de cada uma dessas classificações acompanhadas dos respectivos pesos estimados.

Classificações do IPCA (% a.a.)
Nov/14 Dez/14 Jan/15 Fev/15 Mar/15 Abr/15 Pesos
Índice Cheio 6,56 6,41 7,14 7,70 8,13 8,17 100
Monitorados 5,83 5,32 7,55 9,66 13,37 13,38 23,02
Livres 6,76 6,72 7,01 7,12 6,59 6,64 77,05
Não-Duráveis 6,97 6,88 7,34 7,85 6,89 6,37 23,64
Semi-Duráveis 3,67 3,82 3,43 3,30 3,45 3,96 8,64
Duráveis 3,45 3,01 2,89 3,21 3,19 3,32 9,28
Serviços 8,29 8,33 8,76 8,58 8,03 8,34 35,35
Tradeables 6,02 5,95 5,57 5,92 5,68 5,64 35,51
Nontradeables 7,45 7,43 8,29 8,17 7,40 7,53 41,20

Com o gráfico e a tabela das variações mensais acumuladas em 12 meses podemos começar a fazer alguma análise dos dados. Observe que, confirmando a estória contada pelos posts anteriores dessa série, o grupo de preços monitorados [ou administrados] tem sido uma fonte de pressão para o índice cheio. Ele dá um "salto" no período recente, basicamente por causa do subitem energia elétrica, como já dito aqui. Ao olhar os dados para um período maior do que os últimos meses, através do gráfico, ficamos sabendo que a inflação dos últimos anos tem sido marcante entre os preços livres, não comercializáveis, principalmente serviços. Ademais, mostra tendência de alta, também, a inflação de bens não duráveis, onde estão os alimentos, atingidos por problemas climáticos. Outros enredos podem ser verificados nas demais classificações, mas, em um primeiro olhar, a tendência dos serviços e alimentos parece chamar mais atenção.

Conseguimos, nesse contexto, explicar aquele descolamento visto no primeiro post dessa série entre preços no atacado e no varejo [ao consumidor]. A evolução dos serviços parece explicar porque os preços ao consumidor têm apresentando uma tendência de alta, enquanto os preços no atacado estão comportados. Isto porque, há muito mais serviço nas cadeias finais de produção do que nas iniciais, logo é natural que isso apareça nos índices de preços.

Para tornar ainda mais interessante a análise desses dados, podemos pedir as estatísticas descritivas no pós-crise de 2008 dessas classificações com a função stargazer do pacote de mesmo nome. Com isso podemos ter uma ideia de como, em média, se comportaram os diferentes bens e serviços nesses últimos anos.

Estatísticas pós-2008 (% a.a.)
Statistic N Mean St. Dev. Min Max
Índice Cheio 80 5,88 0,89 4,17 8,17
Monitorados 80 4,23 2,13 0,95 13,38
Livres 80 6,48 1,07 4,12 8,28
Não-Duráveis 80 7,54 2,24 3,81 13,22
Semi-Duráveis 80 5,48 1,08 3,30 7,86
Duráveis 80 0,13 2,78 -5,12 4,61
Serviços 80 7,89 0,89 6,24 9,20
Tradeables 80 5,28 1,45 2,58 7,86
Nontradeables 80 7,56 1,05 5,12 9,71

Pois é, leitor, na média entre setembro de 2008 e abril de 2015, o IPCA cheio ficou em 5,88% a.a. Ao abrir o índice cheio por preços livres e monitorados, podemos ver que nesse período a pressão veio justamente daqueles, enquanto estes se mantiveram em 4,23% a.a. Como estamos vendo um aumento bastante pronunciado ao longo dos últimos meses, o leitor atento pode desconfiar que os preços administrados se mantiveram artificialmente controlados no período. A abertura dos preços livres mostra que, de fato, há uma pressão maior vinda dos preços não duráveis [alimentos] e serviços, ainda que os semi-duráveis tenham apresentado inflação média superior à meta.

Em assim sendo, leitor, conseguimos encaminhar a resposta sobre a causa da inflação nesses três primeiros posts da série. De fato, os serviços e os alimentos [não duráveis] têm mostrado tendência crescente nos últimos anos, enquanto o "salto" dos últimos meses foi causado pelo choque elétrico ou, de forma mais geral, pelo descongelamento nos preços administrados. A inflação mais alta dos alimentos é explicada por problemas climáticos, mas e os serviços? Ademais, podemos falar que a inflação alta dos últimos anos se resume a alimentos e serviços? Ou é um processo mais amplo?

No próximo e penúltimo post dessa série mostraremos a difusão e os núcleos, de forma a verificar se a inflação alta se limita a serviços e alimentos, como propõem alguns economistas ou se há uma causa maior por trás desse processo. Espero que o leitor tenha gostado do post e que tenha começado a entender a evolução da inflação ao longo dos últimos anos.

_______________________________________

Gostou do post? Quer aprender a fazer o mesmo? Dê uma olhada no nosso curso de Introdução ao R com aplicações em Análise de Conjuntura. Faça no Rio de Janeiro ou leve para sua empresa ou universidade!

Curso04

________________________________________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como treinar e selecionar os melhores modelos de previsão no Python?

Em previsão, há uma infinidade de modelos que podem ser usados. O processo de escolha do(s) modelo(s) deve ser empírico-científico, usando métodos que visem avaliar a generalização dos algoritmos para dados novos. Neste artigo, mostramos como implementar a metodologia de validação cruzada com algoritmos de machine learning no Python, exemplificando para a previsão do IPCA.

Como selecionar variáveis para modelos de previsão no Python?

Em oposição à crença popular, grande parte dos modelos de machine learning não produzem previsões magicamente. É papel do cientista de dados executar uma boa engenharia de variáveis para não cair no clássico problema de “garbage in, garbage out” (GIGO) em aprendizado de máquina. Neste sentido, aprender a fazer uma boa seleção de variáveis é fundamental e neste artigo exploramos algumas possibilidades práticas usando o Python.

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

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.