A série escolhida para ajustar um dos modelos de suavização exponencial foi a série de Produção de Bens Intermediários. A série contém observações de janeiro de 2002 a março de 2018. Serão reservados os dois últimos anos para previsão.
library(BETS)
data <- BETSget(21864)
#save(data, file = "SERIE_PBI.RData")
#load("SERIE_PBI.RData")
#gráfico da série
plot(data, ylab = "PBI (Número índice)", main = "")
abline(v = seq(2002,2018,1), col = "gray60", lty = 3)
Como a série apresenta tendência e sazonalidade o modelo escolhido foi a suavização exponencial de Holt-Winters.
library(forecast)
#deixando 2 anos para previsão
data_sub <- window(data, start = c(2002, 1), end = c(2016,3))
#Ajuste
modelo <- HoltWinters(data_sub)
plot(modelo, main = "Ajuste do modelo")
modelo
## Holt-Winters exponential smoothing with trend and additive seasonal component.
##
## Call:
## HoltWinters(x = data_sub)
##
## Smoothing parameters:
## alpha: 0.8983122
## beta : 0
## gamma: 1
##
## Coefficients:
## [,1]
## a 82.60147493
## b 0.09896562
## s1 -0.67357736
## s2 4.63435029
## s3 1.32594712
## s4 4.76121456
## s5 5.73767268
## s6 0.72365882
## s7 4.72249884
## s8 -1.13248597
## s9 -8.05648151
## s10 -6.41096490
## s11 -8.85490426
## s12 1.19852507
#previsão
prev <- forecast(modelo)
plot(prev, main = "Previsão")
Vemos que a previsão tem período parecido com o da série, mas as previsões pontuais variam menos do que as observações até o ponto em que se inicia a previsão.
No gráfico abaixo comparamos os valores reais (em preto) e os preditos (em vermelho).
prev <- as.data.frame(prev)
preditos <- ts(prev$`Point Forecast`, start = c(2016,4), end = c(2018,3), frequency = 12)
reais <- window(data, start = c(2016, 4), end = c(2018, 3))
plot(reais, ylab = NULL, main = "Comparação da previsão com valores reais")
lines(preditos, col = 2)
legend("topleft", legend=c("Preditos", "Reais"),
col=c("red", "black"), lty=1, cex=0.8)
Vemos que na maioria dos pontos, a previsão pontual foi inferior ao valor real no momento, isto é, a previsão pontual do modelo subestima a Produção de Bens intermediários. No entanto, segue razoalvente bem o comportamento da série.
lower <- prev$`Lo 80`
upper <- prev$`Hi 80`
cat("Quantidade de valores reais que estavam contidos no intervalo de 80%:",sum(lower <= reais & reais <= upper))
## Quantidade de valores reais que estavam contidos no intervalo de 80%: 21
cat("Quantidade de valores reais que estavam contidos no intervalo de 95%:",sum(prev$`Lo 95` <= reais & reais <= prev$`Hi 95`))
## Quantidade de valores reais que estavam contidos no intervalo de 95%: 24
Como, na maioria dos casos, apenas as estimativas pontuais não são suficientes para tirar conclusões sobre um modelo, verificamos também se o valor real está contido dentro dos intervalos de confiança de 80% e 95%.
Vimos acima que 21 dos 24 valores reais estavam realmente contidos no intervalo de confiança de 80%. Mais ainda, todos os 24 valores reais estavam contidos no intervalo de 95% de confiança.