CommencezCommencez gratuitement

Prévisions avec un modèle AR

En plus d'estimer les paramètres d'un modèle, comme vous l'avez fait au dernier exercice, vous pouvez aussi effectuer des prévisions, à la fois à l'intérieur de l'échantillon et hors échantillon avec statsmodels. La prévision in-sample consiste à prédire le prochain point de données en utilisant les données disponibles jusqu'à ce point. La prévision out-of-sample projette un certain nombre de points de données dans le futur. Vous pouvez tracer les données prévues à l'aide de la fonction plot_predict(). Vous indiquez le point de départ et le point de fin pour la prévision, qui peut aller au-delà de la fin de l'ensemble de données.

Pour les données simulées dans le DataFrame simulated_data_1, avec \(\small \phi=0.9\), vous allez tracer des prévisions hors échantillon et les intervalles de confiance autour de ces prévisions.

Cette activité fait partie du cours

Analyse des séries chronologiques en Python

Voir le cours

Instructions de l’exercice

  • Importez la classe ARIMA et la fonction plot_predict.
  • Créez une instance de la classe ARIMA appelée mod en utilisant les données simulées du DataFrame simulated_data_1 et l'ordre (p,d,q) du modèle (dans ce cas, pour un AR(1)), order=(1,0,0).
  • Ajustez le modèle mod avec la méthode .fit() et enregistrez le résultat dans un objet de résultats appelé res.
  • Tracez les données in-sample à partir du point de données 950.
  • Tracez les prévisions out-of-sample et les intervalles de confiance à l'aide de la fonction plot_predict(), en commençant là où les données se terminent, au 1000e point, et en arrêtant la prévision au point 1010.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast the first AR(1) model
mod = ARIMA(___, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()
Modifier et exécuter le code