Previsões simples a partir de um modelo AR estimado
Agora que você modelou seus dados usando o comando arima(), está pronto para fazer previsões simples com base no seu modelo. A função predict() pode ser usada para gerar previsões a partir de um modelo AR estimado. No objeto gerado pelo seu comando predict(), o valor $pred é a previsão e o valor $se é o erro-padrão da previsão.
Para fazer previsões para vários períodos além das últimas observações, você pode usar o argumento n.ahead no seu comando predict(). Esse argumento define o horizonte de previsão (h), ou o número de períodos a serem previstos. As previsões são feitas de forma recursiva de 1 até h passos à frente a partir do final da série temporal observada.
Neste exercício, você fará previsões simples usando um modelo AR aplicado aos dados Nile, que registram observações anuais da vazão do Rio Nilo de 1871 a 1970.
Este exercício faz parte do curso
Análise de Séries Temporais em R
Instruções do exercício
- Use
arima()para ajustar um modelo AR à série temporalNile. Salve comoAR_fit. - Use
predict()para fazer uma previsão da vazão do Nilo em 1971. - Use
predict_ARjunto com$pred[1]para obter a previsão de 1 passo à frente. - Faça outra chamada a
predict()para gerar previsões de 1 até 10 passos à frente (1971 a 1980). Para isso, defina o argumenton.aheadigual a10. - Execute o código pré-escrito para plotar seus dados
Nilemais as previsões e um intervalo de previsão de 95%.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Fit an AR model to Nile
AR_fit <- arima(___, order = ___)
print(AR_fit)
# Use predict() to make a 1-step forecast
predict_AR <- predict(___)
# Obtain the 1-step forecast using $pred[1]
# Use predict to make 1-step through 10-step forecasts
predict(___, n.ahead = ___)
# Run to plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
AR_forecast <- predict(AR_fit, n.ahead = 10)$pred
AR_forecast_se <- predict(AR_fit, n.ahead = 10)$se
points(AR_forecast, type = "l", col = 2)
points(AR_forecast - 2*AR_forecast_se, type = "l", col = 2, lty = 2)
points(AR_forecast + 2*AR_forecast_se, type = "l", col = 2, lty = 2)