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
Anleitung zur Übung
- Erstelle zwei Vektoren,
x_t0undx_t1, jeweils mit der Längen-1, sodass die Zeilen den(x[t], x[t-1])-Paaren entsprechen. - Bestätige mithilfe des vorgegebenen Codes, dass
x_t0undx_t1(x[t], x[t-1])-Paare sind. - Verwende
plot(), um das Streudiagramm vonx_t0undx_t1anzuzeigen. - Verwende
cor(), um die Korrelation zwischenx_t0undx_t1anzuzeigen. - Verwende
acf()mitx, um die Autokorrelation mit Lag 1 automatisch zu berechnen. Setze das Argumentlag.maxauf1, um eine einzige Verzögerungsstufe zu erhalten, und setze das ArgumentplotaufFALSE. - Bestätige mithilfe des vorgegebenen Codes, dass der Differenzfaktor
(n-1)/nist.
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