Estimer l’ordre du modèle : PACF
Un outil pratique pour déterminer l’ordre d’un modèle AR est d’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 constaterez que pour une AR(1), la PACF présente une valeur significative au retard 1, puis est approximativement nulle ensuite. Pour une AR(2), la PACF empirique présente des valeurs significatives aux retards 1 et 2, puis des valeurs nulles au‑delà.
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.
Cet exercice fait partie du cours
Analyse des séries temporelles en Python
Instructions
- Importez les modules pour simuler des données et 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 de
simulated_data_1avec la fonctionplot_pacf - Simulez une AR(2) avec \(\small \phi_1=0{,}6, \phi_2=0{,}3\) (là aussi, inversez les signes)
- Tracez la PACF de
simulated_data_2avec la fonctionplot_pacf
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()