Previsão da Inflação com um modelo SARIMAX

[et_pb_section admin_label="section"][et_pb_row admin_label="row"][et_pb_column type="1_2"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="left" use_border_color="off" border_color="#ffffff" border_style="solid"]

Na edição 13 do Clube do Código, apresentamos um modelo SARIMA para a inflação medida pelo IPCA. Hoje, vamos extender esse modelo com a inclusão de algumas variáveis, o que dá origem a um modelo SARIMAX. Os dados estão no arquivo data.csv e são importados para o R abaixo.

data = ts(read.csv2('data.csv', header=T, dec=',', sep=';')[,-1], start=c(2001,11), freq=12)

 

Antes de visualizar os dados, precisamos criar o hiato do produto. Isso é feito abaixo, com a função hpfilter do pacote mFilter.

 

[/et_pb_text][/et_pb_column][et_pb_column type="1_2"][et_pb_image admin_label="Imagem" src="https://analisemacro.com.br/wp-content/uploads/2016/11/macroeconometria.png" show_in_lightbox="off" url="https://analisemacro.com.br/cursos-de-r/macroeconometria/" url_new_window="off" use_overlay="off" animation="left" sticky="off" align="left" force_fullwidth="off" always_center_on_mobile="on" use_border_color="off" border_color="#ffffff" border_style="solid"] [/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row admin_label="Linha"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="left" use_border_color="off" border_color="#ffffff" border_style="solid"]

pib.hp = hpfilter(na.omit(data[,3]), type='lambda', freq=14400)
data = cbind(data[,c(1,2)], pib.hp$cycle, diff(data[,4]))
colnames(data) = c('ipca', 'expectativa', 'hiato', 'dcambio')

Agora, assim, podemos ver os gráficos.

grafico01

Para criar o modelo SARIMAX, vamos utilizar a base do modelo SARIMA que estimamos naquela edição. Com essa base, nós podemos adicionar nossos regressores adicionais. Ademais, para fins de comparação, vamos estimar o mesmo SARIMA. Uma vez feito isso, colocamos os modelos abaixo.

grafico02

Agora, antes de gerarmos previsões, precisamos completar os missing values no hiato do produto. Isso é feito abaixo.

hiato.forecast = forecast(auto.arima(data[,3], max.p=4, max.q=4, seasonal = F), h=17, level=40)
data[c(nrow(data),nrow(data)-1),3] = hiato.forecast$mean[1:2]

Agora, podemos organizar os cenários.

### Cenário Base
cen.base = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,2:3], start=c(2016,10), freq=12)
cen.base = cbind(cen.base[,1], hiato.forecast$mean[3:17], cen.base[,2])
colnames(cen.base) = c('expectativa', 'hiato', 'dcambio')

### Cenário Pessimista
cen.pessim = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,4:5], start=c(2016,10), freq=12)
cen.pessim = cbind(cen.pessim[,1], hiato.forecast$upper[3:17], cen.pessim[,2])
colnames(cen.pessim) = c('expectativa', 'hiato', 'dcambio')

### Cenário Otimista
cen.otim = ts(read.csv2('cenarios.csv', header=T, sep=';', dec=',')[,6:7], start=c(2016,10), freq=12)
cen.otim = cbind(cen.otim[,1], hiato.forecast$lower[3:17], cen.otim[,2])
colnames(cen.otim) = c('expectativa', 'hiato', 'dcambio')

 

Uma vez feito isso, podemos utilizar o pacote forecast para gerar as previsões. As previsões utilizadas com o cenário base são postas abaixo.

grafico03

Com os resultados, construímos também um cenário alternativo para a inflação acumulada em 12 meses. A trajetória de desinflação esperada é posta abaixo.

grafico04

[/et_pb_text][et_pb_button admin_label="Botão" button_url="https://analisemacro.com.br/cursos-de-r/macroeconometria/" url_new_window="off" button_text="Curso de Macroeconometria usando o R" button_alignment="center" background_layout="light" custom_button="off" button_letter_spacing="0" button_use_icon="default" button_icon_placement="right" button_on_hover="on" button_letter_spacing_hover="0"] [/et_pb_button][/et_pb_column][/et_pb_row][/et_pb_section]

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

Como usar modelos do Sklearn para previsão? Uma introdução ao Skforecast

Prever séries temporais é uma tarefa frequente em diversas áreas, porém exige conhecimento e ferramentas específicas. Os modelos de machine learning do Sklearn são populadores, porém são difíceis de aplicar em estruturas temporais de dados. Neste sentido, introduzimos a biblioteca Skforecast, que integra os modelos do Sklearn e a previsão de séries temporais de forma simples.

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.