LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Klasse ArmaProcess aus dem Modul arima_process.
  • Plotte die simulierten AR-Prozesse:
    • Lass ar1 ein Array der AR-Parameter [1, \(\small -\phi\)] sein, wie oben erklärt. Das MA-Parameter-Array ma1 enthält vorerst nur den Lag-0-Koeffizienten Eins.
    • Erzeuge mit den Parametern ar1 und ma1 eine Instanz der Klasse ArmaProcess(ar,ma) namens AR_object1.
    • Simuliere 1000 Datenpunkte aus dem soeben erzeugten Objekt AR_object1 mit der Methode .generate_sample(). Plotte die simulierten Daten in einem Subplot.
  • 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()
Code bearbeiten und ausführen