CommencerCommencer gratuitement

Prévisions avec un modèle AR

En plus d’estimer les paramètres d’un modèle comme vous l’avez fait dans l’exercice précédent, vous pouvez aussi réaliser des prévisions, à la fois intra-échantillon et hors échantillon avec statsmodels. La prévision intra-échantillon estime le point suivant en utilisant les données disponibles jusqu’à ce point, et la prévision hors échantillon anticipe un nombre quelconque de points futurs. Vous pouvez tracer les valeurs prévues avec la fonction plot_predict(). Vous fournissez le point de départ et le point de fin des prévisions, qui peut se situer après la fin de l’ensemble de données (en nombre de points).

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 des intervalles de confiance autour de ces prévisions.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • 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 (ici, 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 res
  • Tracez les données intra-échantillon en commençant au point 950
  • Tracez des prévisions hors échantillon et leurs intervalles de confiance avec la fonction plot_predict(), en démarrant là où les données se terminent au 1000e point, et en finissant la prévision au point 1010

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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