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.
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.
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.
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.
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.