LoslegenKostenlos loslegen

MA(1)-Zeitreihen simulieren

Du simulierst und visualisierst einige MA(1)-Zeitreihen, jeweils mit einem anderen Parameter, \(\small \theta\), mit dem Modul arima_process aus statsmodels – so wie im letzten Kapitel für AR(1)-Modelle. Du betrachtest ein MA(1)-Modell mit einem großen positiven \(\small \theta\) und einem großen negativen \(\small \theta\).

Wie im letzten Kapitel musst du bei der Eingabe der Koeffizienten den Verzögerungskoeffizienten null mit Wert 1 einschließen. Anders als beim Kapitel zu AR-Modellen entspricht das Vorzeichen der MA-Koeffizienten jedoch der üblichen Konvention. Für einen MA(1)-Prozess mit \(\small \theta=-0.9\) wäre das Array der MA-Parameter zum Beispiel ma = np.array([1, -0.9]).

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Klasse ArmaProcess aus dem Modul arima_process.
  • Plotte die simulierten MA(1)-Prozesse
    • ma1 soll ein Array der MA-Parameter [1, \(\small \theta\)] wie oben beschrieben sein. Das AR-Parameter-Array enthält nur den Lag-0-Koeffizienten eins.
    • Erzeuge mit den Parametern ar1 und ma1 eine Instanz der Klasse ArmaProcess(ar,ma) namens MA_object1.
    • Simuliere 1000 Datenpunkte aus dem soeben erstellten Objekt MA_object1 mit der Methode .generate_sample(). Plotte die simulierten Daten in einem Subplot.
  • Wiederhole dies für den anderen MA-Parameter.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen