Explicando a inflação de alimentos

No mês de dezembro, iremos lançar uma nova versão do Clube do Código. O projeto de compartilhamento de códigos da Análise Macro vai avançar para uma versão 2.0, que incluirá a existência de uma comunidade no Telegram/Whatsapp, de modo a reunir os membros do Novo Clube, compartilhando com eles todos os códigos dos nossos posts feitos aqui no Blog, exercícios de análise de dados de maior fôlego, bem como tirar dúvidas sobre todos os nossos projetos e Cursos Aplicados de R.

Para ilustrar o que vamos compartilhar lá nesse novo ambiente, vou publicar aqui nos próximos dias alguns dos nossos exercícios completos de análise de dados. Esses exercícios fazem parte do repositório atual do Clube, que irá migrar para o novo projeto. Além de todos os exercícios existentes, vamos adicionar novos exercícios e códigos toda semana, mantendo os membros atualizados sobre o que há de mais avançado em análise de dados, econometria, machine learning, forecasting e R.

Para começar, nesse Comentário de Conjuntura vou replicar um modelo descritivo para a inflação de alimentos. A inflação de alimentos tem sido uma grande incógnita nos últimos anos, influenciando de forma decisiva o erro de previsão da inflação cheia. Isso nos motivou a replicar um modelo do Banco Central do Brasil, exposto em boxe do Relatório de Inflação de junho de 2016, intitulado Evolução recente da inflação de alimentos. O modelo proposto pelo BCB consiste na seguinte equação

(1)   \begin{align*}\pi_t^{AD} = \sum_{i=0}^1 \phi_i \; \Delta \epsilon_{t-i} + \sum_{i=0}^1 \beta_i \;\Delta IC_{t-i}^{agro}+ \delta \; oni_{t-1} + \gamma \; h_t + \sum_{i=1}^4 \alpha_i \; T_i + \varepsilon_t  \end{align*}

onde \pi_t^{AD} é inflação de alimentação no domicílio, \Delta\epsilon_{t} é a variação da taxa de câmbio nominal, \Delta IC_{t-i}^{agro} é a variação do segmento de commodities agropecuárias do Índice de Commodities - Brasil (medido em dólares), oni_{t-1} é a primeira defasagem da dummy se o mundo está ou não sob efeito do El Niño, h_t é o hiato do produto e T_i são dummies sazonais.

Para estimar 1, nosso maior desafio será de coleta e tratamento das variáveis envolvidas. Isso é feito na sequência.

# Coleta e tratamento de dados

Para replicar o modelo proposto em 1, vamos precisar de cinco séries, a saber: a inflação de alimentação no domicílio, o Oceanic Niño Index (ONI), o Produto Interno Bruto, a taxa de câmbio nominal e o Índice de Commodities no seu corte agropecuário. Uma vez obtidas essas séries, elas precisarão ser trimestralizadas e tratadas, de modo a obter as variáveis que serão utilizadas para estimar 1. De modo a replicar os resultados do BCB, vamos obter as séries a partir do primeiro trimestre de 2000.

Antes, porém, o script começa carregando alguns pacotes.


library(BETS)
library(ggplot2)
library(forecast)
library(sidrar)
library(gridExtra)
library(rsoi)
library(xts)
library(mFilter)
library(dynlm)
library(stargazer)

Com efeito, o código abaixo coleta, trata e organiza as séries em uma matriz.


## Obter a série do Oceanic Niño Index (ONI)
oni = download_oni()
oni = xts(oni$ONI, order.by = oni$Date)
oni = window(oni[-1,], start='2000-01-01')
oni = ts(apply.quarterly(oni, FUN=mean),
start=c(2000,01), freq=4)
oni = ifelse(oni>0.5,1,0)
## Obter o Índice de Commodities Agro
icagro = BETSget(20050, from='1999-10-01', data.frame = TRUE)
icagro = xts(icagro$value, order.by = icagro$date)
icagro = ts(apply.quarterly(icagro, FUN=mean), start=c(1999,04),
freq=4)
dicagro = diff(icagro)
## Obter o PIB e o hiato
pib = BETSget(22109, from='2000-01-01', data.frame = TRUE)
hiato = ts(hpfilter(pib$value, freq=1600, type='lambda')$cycle,
start=c(2000,01), freq=4)
## Obter a taxa de câmbio
cambio = BETSget(3697, from='1999-10-01', data.frame = TRUE)
cambio = xts(cambio$value, order.by=cambio$date)
cambio = ts(apply.quarterly(cambio, FUN=mean), start=c(1999,4),
freq=4)
dcambio = diff(cambio)
## Obter a inflação de alimentação no domicílio
alim01 = get_sidra(api='/t/655/n1/all/v/all/p/all/c315/7171/d/v63%202')
alim02 = get_sidra(api='/t/2938/n1/all/v/63/p/all/c315/7171/d/v63%202')
alim03 = get_sidra(api='/t/1419/n1/all/v/63/p/all/c315/7171/d/v63%202')
alimentos = ts(c(alim01$Valor, alim02$Valor, alim03$Valor),
start=c(1999,08), freq=12)
fator = 1+alimentos/100
acumulado = (fator*lag(fator,-1)*lag(fator,-2)-1)*100
alimdom = acumulado
alimentos = xts(alimdom, order.by = as.Date(time(alimdom)))
alimentos = window(alimentos, start='2000-01-01')
alimentos = ts(apply.quarterly(alimentos, FUN=mean),
start=c(2000,01), freq=4)
## Obter as dummies sazonais
dummies = ts(seasonaldummy(alimentos), start=c(2000,01), freq=4)
## Juntar todos os dados em uma matriz
data = ts.intersect(alimentos, dcambio, dicagro,
oni, hiato, dummies)

Abaixo, um gráfico das séries já devidamente tratadas.

# Modelo

Com os dados devidamente tratados, podemos estimar o modelo proposto pelo BCB em 1 para o período replicado no boxe - i.e., até o quarto trimestre de 2016. O código abaixo implementa.


modelo = dynlm(alimentos~dcambio+lag(dcambio,-1)+dicagro+
lag(dicagro,-1)+lag(oni,-1)+hiato+
dummies.Q1+dummies.Q2+dummies.Q3,
data=data, end=c(2016,01))

A tabela 1 traz os resultados do modelo. A variável defasada da variação do câmbio, as variações do índice de commodities, a variável dummy associada ao ONI e o hiato do produto se mostram estatisticamente significativas para explicar a inflação de alimentação no domicílio. Em particular, o coeficiente da variável dummy é de 1.2, o que implica dizer que o fim do El Niño em um determinado trimestre reduz a inflação de alimentos em 1.2 pontos percentuais no trimestre seguinte.

Explicando a inflação de alimentos
Dependent variable:
alimentos
dcambio -2.342
(1.736)
lag(dcambio, -1) 3.940**
(1.787)
dicagro 0.061*
(0.035)
lag(dicagro, -1) 0.090**
(0.036)
lag(oni, -1) 1.173*
(0.591)
hiato 0.193**
(0.094)
dummies.Q1 0.083
(0.666)
dummies.Q2 -0.305
(0.697)
dummies.Q3 -0.537
(0.674)
Constant 1.395***
(0.503)
Observations 64
R2 0.537
Adjusted R2 0.460
Residual Std. Error 1.831 (df = 54)
F Statistic 6.972*** (df = 9; 54)
Note: *p<0.1; **p<0.05; ***p<0.01

______________________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como se comportou a Taxa de Participação no Brasil nos últimos anos? Uma Análise com a Linguagem R

O objetivo deste estudo é analisar a evolução da Taxa de Participação no Brasil, contrastando-a com a Taxa de Desocupação e decompondo suas variações para entender os vetores (populacionais e de força de trabalho) que influenciam o comportamento atual do mercado de trabalho. Para isso, utilizamos a linguagem R em todo o processo, desde a coleta e o tratamento das informações até a visualização dos resultados, empregando os principais pacotes disponíveis no ecossistema da linguagem.

Como se comportou a inflação de serviços no Brasil nos últimos anos?

Uma análise econométrica da inflação de serviços no Brasil comparando os cenários de 2014 e 2025. Utilizando uma Curva de Phillips própria e estimativas da NAIRU via filtro HP, investigamos se o atual desemprego nas mínimas históricas repete os riscos do passado. Entenda como as expectativas de inflação e o hiato do desemprego explicam o comportamento mais benigno dos preços atuais em relação à década anterior.

Como se comportou o endividamento e a inadimplência nos últimos anos? Uma análise utilizando a linguagem R

Neste exercício realizamos uma análise sobre a inadimplência dos brasileiros no período recente, utilizando a linguagem R para examinar dados públicos do Banco Central e do IBGE. Investigamos a evolução do endividamento, da inadimplência e das concessões de crédito, contextualizando-os com as dinâmicas da política monetária (Taxa Selic) e do mercado de trabalho (renda e desemprego).

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.