Prévisions simples à partir d'un modèle AR estimé
Maintenant que vous avez modélisé vos données avec la commande arima(), vous êtes prêt à produire des prévisions simples à partir de votre modèle. La fonction predict() permet d'obtenir des prévisions à partir d'un modèle AR estimé. Dans l'objet généré par votre commande predict(), la valeur $pred correspond à la prévision et la valeur $se à l'erreur-type de la prévision.
Pour faire des prévisions sur plusieurs périodes au-delà des dernières observations, vous pouvez utiliser l'argument n.ahead dans votre commande predict(). Cet argument fixe l'horizon de prévision (h), soit le nombre de périodes à prévoir. Les prévisions sont générées de façon récursive de 1 jusqu'à h pas en avant à partir de la fin de la série chronologique observée.
Dans cet exercice, vous effectuerez des prévisions simples à l'aide d'un modèle AR appliqué aux données Nile, qui consignent des observations annuelles du débit du Nil de 1871 à 1970.
Cette activité fait partie du cours
Analyse des séries chronologiques en R
Instructions de l’exercice
- Utilisez
arima()pour ajuster un modèle AR à la série chronologiqueNile. Enregistrez-le sous le nomAR_fit. - Utilisez
predict()pour produire une prévision du débit du Nil en 1971. - Utilisez
predict_ARavec$pred[1]pour obtenir la prévision à 1 pas. - Faites un autre appel à
predict()pour produire des prévisions de 1 à 10 pas en avant (de 1971 à 1980). Pour ce faire, fixez l'argumentn.aheadà10. - Exécutez le code déjà écrit pour tracer vos données
Nileainsi que les prévisions et un intervalle de prédiction à 95 %.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)