CommencerCommencer gratuitement

Simuler des séries temporelles MA(1)

Vous allez simuler et tracer plusieurs séries temporelles MA(1), chacune avec un paramètre \(\small \theta\) différent, 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\) largement positif et un autre avec un \(\small \theta\) largement 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])

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • 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é ci-dessus. Le tableau des paramètres AR ne contiendra que le coefficient d’ordre 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, en utilisant la méthode .generate_sample(). Tracez les données simulées dans un sous-graphe.
  • Répétez pour l’autre paramètre MA.

Exercice interactif pratique

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

# 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