CommencerCommencer gratuitement

Simuler des séries temporelles AR(1)

Vous allez simuler et tracer plusieurs séries temporelles AR(1), chacune avec un paramètre \(\small \phi\) différent, à l’aide du module arima_process de statsmodels. Dans cet exercice, vous examinerez un modèle AR(1) avec un \(\small \phi\) fortement positif et un autre fortement négatif, mais n’hésitez pas à tester vos propres paramètres.

Il existe quelques conventions à connaître avec le module arima_process. Premièrement, ces fonctions sont conçues de manière générale pour gérer à la fois les modèles AR et MA. Nous verrons les modèles MA ensuite ; pour l’instant, ignorez simplement la partie MA. Deuxièmement, lors de la saisie des coefficients, vous devez inclure le coefficient de retard zéro égal à 1, et le signe des autres coefficients est l’opposé de celui que nous avons utilisé jusqu’ici (afin de rester cohérent avec la littérature des séries temporelles en traitement du signal). Par exemple, pour un processus AR(1) avec \(\small \phi=0.9\), le tableau représentant les paramètres AR serait ar = 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 AR simulés :
    • Laissez ar1 représenter un tableau des paramètres AR [1, \(\small -\phi\)] comme expliqué ci-dessus. Pour l’instant, le tableau des paramètres MA, ma1, contiendra uniquement le coefficient de retard zéro égal à 1.
    • Avec les paramètres ar1 et ma1, créez une instance de la classe ArmaProcess(ar,ma) appelée AR_object1.
    • Simulez 1000 points de données à partir de l’objet que vous venez de créer, AR_object1, en utilisant la méthode .generate_sample(). Représentez les données simulées dans un sous-graphe.
  • Répétez pour l’autre paramètre AR.

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: AR parameter = +0.9
plt.subplot(2,1,1)
ar1 = np.array([1, ____])
ma1 = np.array([1])
AR_object1 = ArmaProcess(____, ____)
simulated_data_1 = AR_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: AR parameter = -0.9
plt.subplot(2,1,2)
ar2 = np.array([1, ____])
ma2 = np.array([1])
AR_object2 = ArmaProcess(____, ____)
simulated_data_2 = AR_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()
Modifier et exécuter le code