CommencerCommencer gratuitement

Équivalence entre AR(1) et MA(infini)

Pour mieux comprendre le lien entre les modèles MA et AR, vous allez montrer qu’un modèle AR(1) est équivalent à un modèle MA(\(\small \infty\)) avec des paramètres appropriés.

Vous allez simuler 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 montrer qu’il possède la même fonction d’autocorrélation qu’un modèle AR(1) avec \(\small \phi=0{,}8\).

Remarque : pour élever un nombre x à la puissance n, utilisez la syntaxe x**n.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • 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écroissants de façon exponentielle : \(\small 1, 0{,}8, 0{,}8^2, 0{,}8^3, \ldots\)
  • Simulez 5000 observations du modèle MA(30)
  • Tracez l’ACF de la série simulée

Exercice interactif pratique

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

# 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()
Modifier et exécuter le code