Estimer l'ordre du modèle : PACF
Un outil utile pour déterminer l'ordre d'un modèle AR consiste à examiner la fonction d'autocorrélation partielle (PACF). Dans cet exercice, vous allez simuler deux séries temporelles, une AR(1) et une AR(2), puis calculer la PACF empirique pour chacune. Vous remarquerez que, pour une AR(1), la PACF devrait avoir une valeur significative au retard 1, puis essentiellement des zéros par la suite. Et pour une AR(2), la PACF empirique devrait avoir des valeurs significatives aux retards 1 et 2, puis des zéros après.
Comme vous avez utilisé la fonction plot_acf dans les exercices précédents, vous utiliserez ici une fonction appelée plot_pacf du module statsmodels.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Importez les modules pour simuler des données et pour tracer la PACF
- Simulez une AR(1) avec \(\small \phi=0.6\) (rappelez-vous que le signe du paramètre AR est inversé)
- Tracez la PACF pour
simulated_data_1à l'aide de la fonctionplot_pacf - Simulez une AR(2) avec \(\small \phi_1=0.6, \phi_2=0.3\) (encore une fois, inversez les signes)
- Tracez la PACF pour
simulated_data_2à l'aide de la fonctionplot_pacf
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Import the modules for simulating data and for plotting the PACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_pacf
# Simulate AR(1) with phi=+0.6
ma = np.array([1])
ar = np.array([1, -0.6])
AR_object = ArmaProcess(ar, ma)
simulated_data_1 = ___.generate_sample(nsample=5000)
# Plot PACF for AR(1)
plot_pacf(___, lags=20)
plt.show()
# Simulate AR(2) with phi1=+0.6, phi2=+0.3
ma = np.array([1])
ar = np.array([1, ___, ___])
AR_object = ArmaProcess(ar, ma)
simulated_data_2 = ___.generate_sample(nsample=5000)
# Plot PACF for AR(2)
plot_pacf(___, lags=20)
plt.show()