LoslegenKostenlos loslegen

Autokorrelationen berechnen

Autokorrelationen bzw. verzögerte Korrelationen werden verwendet, um zu prüfen, ob eine Zeitreihe von ihrer Vergangenheit abhängt. Für eine Zeitreihe x der Länge n betrachten wir die n-1 Paare von Beobachtungen, die eine Zeiteinheit auseinanderliegen. Das erste solche Paar ist (x[2],x[1]), das nächste (x[3],x[2]). Jedes dieser Paare hat die Form (x[t],x[t-1]), wobei t der Beobachtungsindex ist, den wir hier von 2 bis n variieren. Die Autokorrelation von x mit Lag 1 lässt sich als Stichprobenkorrelation dieser (x[t], x[t-1])-Paare schätzen.

Allgemein können wir diese Beobachtungspaare manuell erstellen. Erstelle zunächst zwei Vektoren, x_t0 und x_t1, jeweils mit der Länge n-1, sodass die Zeilen den (x[t], x[t-1])-Paaren entsprechen. Wende dann die Funktion cor() an, um die Autokorrelation mit Lag 1 zu schätzen.

Zum Glück bietet der Befehl acf() eine Abkürzung. Durch Anwenden von acf(..., lag.max = 1, plot = FALSE) auf eine Reihe x wird die Autokorrelation mit Lag 1 automatisch berechnet.

Beachte schließlich, dass sich die beiden Schätzer geringfügig unterscheiden, da sie bei der Berechnung der Stichprobenkovarianz leicht unterschiedliche Skalierungen verwenden, 1/(n-1) gegenüber 1/n. Obwohl letzteres einen verzerrten Schätzer liefert, wird es in der Zeitreihenanalyse bevorzugt, und die resultierenden Autokorrelationsschätzungen unterscheiden sich nur um den Faktor (n-1)/n.

In dieser Übung übst du sowohl die manuelle als auch die automatische Berechnung einer Autokorrelation mit Lag 1. Die Zeitreihe x und ihre Länge n (150) wurden bereits geladen. Die Reihe ist im Diagramm rechts dargestellt.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in R

Kurs anzeigen

Anleitung zur Übung

  • Erstelle zwei Vektoren, x_t0 und x_t1, jeweils mit der Länge n-1, sodass die Zeilen den (x[t], x[t-1])-Paaren entsprechen.
  • Bestätige mithilfe des vorgegebenen Codes, dass x_t0 und x_t1 (x[t], x[t-1])-Paare sind.
  • Verwende plot(), um das Streudiagramm von x_t0 und x_t1 anzuzeigen.
  • Verwende cor(), um die Korrelation zwischen x_t0 und x_t1 anzuzeigen.
  • Verwende acf() mit x, um die Autokorrelation mit Lag 1 automatisch zu berechnen. Setze das Argument lag.max auf 1, um eine einzige Verzögerungsstufe zu erhalten, und setze das Argument plot auf FALSE.
  • Bestätige mithilfe des vorgegebenen Codes, dass der Differenzfaktor (n-1)/n ist.

Interaktive Übung

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

# Define x_t0 as x[-1]
x_t0 <- 

# Define x_t1 as x[-n]
x_t1 <- 

# Confirm that x_t0 and x_t1 are (x[t], x[t-1]) pairs  
head(cbind(x_t0, x_t1))
  
# Plot x_t0 and x_t1
plot(___, ___)

# View the correlation between x_t0 and x_t1
cor(___, ___)

# Use acf with x
acf(___, lag.max = ___, plot = ___)

# Confirm that difference factor is (n-1)/n
cor(x_t1, x_t0) * (n-1)/n
Code bearbeiten und ausführen