CommencezCommencez gratuitement

Simuler des séries temporelles MA(1)

Vous allez simuler et tracer quelques séries temporelles MA(1), chacune avec une valeur différente du paramètre \(\small \theta\), en utilisant le module arima_process de statsmodels, comme vous l'avez fait au chapitre précédent pour les modèles AR(1). Vous examinerez un modèle MA(1) avec un \(\small \theta\) fortement positif et un autre avec un \(\small \theta\) fortement négatif.

Comme au chapitre précédent, lors de la saisie des coefficients, vous devez inclure le coefficient de décalage zéro égal à 1. Mais contrairement au chapitre sur les modèles AR, le signe des coefficients MA est celui auquel on s'attend. Par exemple, pour un processus MA(1) avec \(\small \theta=-0.9\), le tableau représentant les paramètres MA serait ma = np.array([1, -0.9])

Cette activité fait partie du cours

Analyse des séries chronologiques en Python

Voir le cours

Instructions de l’exercice

  • Importez la classe ArmaProcess du module arima_process.
  • Tracez les processus MA(1) simulés
    • Laissez ma1 représenter un tableau des paramètres MA [1, \(\small \theta\)], comme expliqué plus haut. Le tableau des paramètres AR contiendra uniquement le coefficient de décalage zéro égal à un.
    • Avec les paramètres ar1 et ma1, créez une instance de la classe ArmaProcess(ar,ma) appelée MA_object1.
    • Simulez 1000 points de données à partir de l'objet que vous venez de créer, MA_object1, à l'aide de la méthode .generate_sample(). Tracez les données simulées dans un sous-graphe.
  • Répétez pour l'autre valeur du paramètre MA.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# import the module for simulating data
from statsmodels.tsa.arima_process import ArmaProcess

# Plot 1: MA parameter = -0.9
plt.subplot(2,1,1)
ar1 = np.array([1])
ma1 = np.array([1, ____])
MA_object1 = ArmaProcess(____, ____)
simulated_data_1 = MA_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: MA parameter = +0.9
plt.subplot(2,1,2)
ar2 = np.array([1])
ma2 = np.array([1, ____])
MA_object2 = ArmaProcess(____, ____)
simulated_data_2 = MA_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)

plt.show()
Modifier et exécuter le code