Kurs
Wenn du unseren Kurs Introduction to Time Series Analysis in R belegen möchtest, findest du hier den Link.
Autokorrelationen berechnen
Autokorrelationen bzw. verzögerte Korrelationen helfen einzuschätzen, ob eine Zeitreihe von ihrer Vergangenheit abhängt. Für eine Zeitreihe x der Länge n betrachten wir die n-1 Wertepaarungen im Abstand einer Zeiteinheit. Das erste 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, der hier von 2 bis n läuft. Die Lag-1-Autokorrelation von x lässt sich als Stichprobenkorrelation dieser (x[t], x[t-1])-Paare schätzen.
Allgemein können wir diese Wertepaarungen manuell erzeugen. Erstelle zwei Vektoren, x_t0 und x_t1, jeweils der Länge n-1, sodass die Zeilen den (x[t], x[t-1])-Paaren entsprechen. Wende dann die Funktion cor() an, um die Lag-1-Autokorrelation zu schätzen.
Zum Glück gibt es mit dem Befehl acf() eine Abkürzung. Mit acf(..., lag.max = 1, plot = FALSE) für eine Serie x wird die Lag-1-Autokorrelation automatisch berechnet.
Beachte abschließend, dass sich beide Schätzer geringfügig unterscheiden, weil bei der Berechnung der Stichprobenkovarianz unterschiedliche Skalierungen verwendet werden: 1/(n-1) gegenüber 1/n. Obwohl Letzteres einen verzerrten Schätzer liefert, wird es in der Zeitreihenanalyse bevorzugt; die resultierenden Autokorrelationsschätzer unterscheiden sich lediglich um den Faktor (n-1)/n.
In dieser Übung trainierst du sowohl die manuelle als auch die automatische Berechnung einer Lag-1-Autokorrelation. Die Zeitreihe x und ihre Länge n (150) sind bereits geladen. Die Serie siehst du im rechten Plot.
Anweisungen
- Erstelle zwei Vektoren,
x_t0undx_t1, jeweils der Längen-1, sodass die Zeilen den(x[t], x[t-1])-Paaren entsprechen. - Bestätige mit dem vorgegebenen Code, dass
x_t0undx_t1tatsächlich(x[t], x[t-1])-Paare sind. - Verwende
plot(), um das Streudiagramm vonx_t0undx_t1anzuzeigen. - Verwende
cor(), um die Korrelation zwischenx_t0undx_t1auszugeben. - Verwende
acf()mitx, um die Lag-1-Autokorrelation automatisch zu berechnen. Setze das Argumentlag.maxauf1undplotaufFALSE. - Bestätige mit dem vorgegebenen Code, dass der Unterschiedsfaktor
(n-1)/nist.
Wenn das klar ist, mach mit der nächsten Übung weiter! Falls nicht, hier ist ein Übersichtsvideo.
Übersichtsvideo zur Autokorrelation
Die Autokorrelationsfunktion
Autokorrelationen lassen sich für viele Lags schätzen, um besser zu beurteilen, wie eine Zeitreihe mit ihrer Vergangenheit zusammenhängt. Besonders interessiert uns meist der Zusammenhang mit der jüngsten Vergangenheit.
Die Funktion acf(..., lag.max = ..., plot = FALSE) schätzt alle Autokorrelationen von 0, 1, 2, ... bis zum Wert des Arguments lag.max. In der vorherigen Übung hast du dich auf die Lag-1-Autokorrelation konzentriert, indem du lag.max auf 1 gesetzt hast.
In dieser Übung erkundest du weitere Anwendungen des Befehls acf(). Auch hier ist die Zeitreihe x bereits geladen und rechts im Plot dargestellt.
Anweisungen
- Verwende
acf(), um die Autokorrelationen der Seriexvon 0 bis 10 anzuzeigen. Setzelag.maxauf10und belasseplotbeiFALSE. - Kopiere den Autokorrelationsschätzer (ACF) bei Lag 10.
- Kopiere den Autokorrelationsschätzer (ACF) bei Lag 5.
Die Autokorrelationsfunktion visualisieren
Wenn wir die Autokorrelationsfunktion (ACF) für viele Lags schätzen, können wir beurteilen, wie eine Zeitreihe x mit ihrer Vergangenheit zusammenhängt. Die numerischen Schätzwerte sind wichtig für Detailrechnungen, aber auch die Visualisierung der ACF als Funktion des Lags ist hilfreich.
Tatsächlich erstellt der Befehl acf() standardmäßig eine Abbildung. Er trifft außerdem eine Standardwahl für lag.max, also die maximale Anzahl der angezeigten Lags.
Drei Zeitreihen x, y und z wurden in deine R-Umgebung geladen und rechts geplottet. Die Zeitreihe x zeigt starke Persistenz, das heißt, der aktuelle Wert liegt nah an den unmittelbar vorausgehenden. Die Zeitreihe y zeigt ein periodisches Muster mit einer Zykluslänge von etwa vier Beobachtungen, der aktuelle Wert ähnelt also dem von vor vier Zeitpunkten. Die Zeitreihe z zeigt kein klares Muster.
In dieser Übung plottest du die geschätzte Autokorrelationsfunktion für jede Zeitreihe. In den von acf() erzeugten Plots ist der Lag auf der horizontalen Achse markiert, und die Höhe der vertikalen Balken zeigt den jeweiligen Autokorrelationsschätzer an. Denk daran: Die ACF bei Lag 0 ist immer 1.
Außerdem enthalten alle ACF-Abbildungen zwei blaue, horizontale, gestrichelte Linien, die lagweise 95%-Konfidenzintervalle um null darstellen. Damit lässt sich prüfen, ob ein einzelner Autokorrelationsschätzer bei einem bestimmten Lag gegenüber dem Nullwert null statistisch signifikant ist, also ob dort keine Autokorrelation vorliegt.
Anweisungen
Verwende drei Aufrufe der Funktion acf(), um die geschätzten ACFs deiner drei Zeitreihen (x, y und z) anzuzeigen. Zusätzliche Argumente sind nicht nötig.
Wenn du mehr aus diesem Kurs mitnehmen möchtest, hier ist der Link.
Schau dir auch unser Time Series Analysis using R: Tutorial an.