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
Instructions de l’exercice
- Importez la classe
ArmaProcessdu modulearima_process. - Tracez les processus MA(1) simulés
- Laissez
ma1repré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
ar1etma1, créez une instance de la classeArmaProcess(ar,ma)appeléeMA_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.
- Laissez
- 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()