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
Instructions de l’exercice
- Importez la classe
ARIMAet la fonctionplot_predict. - Créez une instance de la classe
ARIMAappeléemoden utilisant les données simulées du DataFramesimulated_data_1et l'ordre (p,d,q) du modèle (dans ce cas, pour un AR(1)),order=(1,0,0). - Ajustez le modèle
modavec 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()