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
Anleitung zur Übung
- Importiere die Klasse
ArmaProcessaus dem Modularima_process. - Plotte die simulierten MA(1)-Prozesse
ma1soll 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
ar1undma1eine Instanz der KlasseArmaProcess(ar,ma)namensMA_object1. - Simuliere 1000 Datenpunkte aus dem soeben erstellten Objekt
MA_object1mit 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()