AR(1)-Zeitreihen simulieren
Du simulierst und visualisierst mehrere AR(1)-Zeitreihen, jeweils mit einem anderen Parameter, \(\small \phi\), mit dem Modul arima_process in statsmodels. In dieser Übung betrachtest du ein AR(1)-Modell mit einem großen positiven \(\small \phi\) und einem großen negativen \(\small \phi\). Du kannst aber gern auch eigene Parameter ausprobieren.
Beim Verwenden des Moduls arima_process gibt es ein paar Konventionen, die man erklären sollte. Erstens wurden diese Routinen sehr allgemein gehalten, um sowohl AR- als auch MA-Modelle zu unterstützen. MA-Modelle behandeln wir als Nächstes, daher kannst du den MA-Teil vorerst ignorieren. Zweitens musst du beim Eingeben der Koeffizienten den Lag-0-Koeffizienten 1 einschließen, und das Vorzeichen der anderen Koeffizienten ist umgekehrt zu dem, was wir bisher verwendet haben (das ist in der Zeitreihenliteratur der Signalverarbeitung üblich). Zum Beispiel wäre für einen AR(1)-Prozess mit \(\small \phi=0.9\) das Array für die AR-Parameter ar = 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 AR-Prozesse:
- Lass
ar1ein Array der AR-Parameter [1, \(\small -\phi\)] sein, wie oben erklärt. Das MA-Parameter-Arrayma1enthält vorerst nur den Lag-0-Koeffizienten Eins. - Erzeuge mit den Parametern
ar1undma1eine Instanz der KlasseArmaProcess(ar,ma)namensAR_object1. - Simuliere 1000 Datenpunkte aus dem soeben erzeugten Objekt
AR_object1mit der Methode.generate_sample(). Plotte die simulierten Daten in einem Subplot.
- Lass
- Wiederhole das für den anderen AR-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: 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()