Équivalence entre AR(1) et MA(infini)
Pour mieux comprendre le lien entre les modèles MA et AR, vous montrerez qu'un modèle AR(1) est équivalent à un modèle MA(\(\small \infty\)) avec les bons paramètres.
Vous simulerez un modèle MA avec les paramètres \(\small 0.8, 0.8^2, 0.8^3, \ldots \) pour un grand nombre (30) de retards et montrerez qu'il a la même fonction d'autocorrélation (ACF) qu'un modèle AR(1) avec \(\small \phi=0.8\).
Notez que pour élever un nombre x à la puissance d'un exposant n, utilisez la forme x**n.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Importez les modules de statsmodels pour simuler des données et tracer l'ACF
- Utilisez une compréhension de liste pour construire une liste de paramètres MA à décroissance exponentielle : \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
- Simulez 5 000 observations du modèle MA(30)
- Tracez l'ACF de la série simulée
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf
# Build a list MA parameters
ma = [___ for i in range(30)]
# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)
# Plot the ACF
plot_acf(___, lags=30)
plt.show()