Ich möchte einen Code zum Plotten von ACF und PACF aus Zeitreihendaten erstellen. Genau wie dieses erzeugte Diagramm aus Minitab (unten).
Ich habe versucht, die Formel zu durchsuchen, aber ich verstehe sie immer noch nicht gut. Würde es Ihnen etwas ausmachen, mir die Formel und deren Verwendung zu sagen? Was ist die horizontale rote Linie in den obigen ACF- und PACF-Diagrammen? Wie lautet die Formel?
Danke,
correlation
data-visualization
autocorrelation
partial-correlation
Surya Dewangga
quelle
quelle
Antworten:
Autokorrelationen
Die Korrelation zwischen zwei Variablen ist definiert als:y1, y2
wobei E der Erwartungsoperator ist, sind und die für und und sind ihre Standardabweichungen.μ1 μ2 y1 y2 σ1, σ2
Im Kontext einer einzelnen Variablen, dh Autokorrelation , ist die ursprüngliche Reihe und ist eine verzögerte Version davon. Nach der obigen Definition können Beispielautokorrelationen der Ordnung erhalten werden, indem der folgende Ausdruck mit der beobachteten Reihe , wird :y1 y2 k = 0 , 1 , 2 , . . . yt t = 1 , 2 , . . . , n
Dabei ist der Stichprobenmittelwert der Daten.y¯
Teilweise Autokorrelationen
Partielle Autokorrelationen messen die lineare Abhängigkeit einer Variablen, nachdem die Auswirkungen anderer Variablen, die sich auf beide Variablen auswirken, beseitigt wurden. Beispielsweise misst die partielle Autokorrelation der Ordnung die Auswirkung (lineare Abhängigkeit) von auf nachdem die Auswirkung von sowohl auf als auch auf .yt - 2 yt yt - 1 yt yt - 2
Jede partielle Autokorrelation könnte als eine Reihe von Regressionen der Form erhalten werden:
Dabei ist die ursprüngliche Reihe abzüglich des Stichprobenmittelwerts, . Die Schätzung von ergibt den Wert der partiellen Autokorrelation der Ordnung 2. Wenn die Regression um zusätzliche Verzögerungen erweitert wird, ergibt die Schätzung des letzten Terms die partielle Autokorrelation der Ordnung .y~t yt- y¯ ϕ22 k k
Eine alternative Methode zur Berechnung der partiellen Autokorrelationen der Stichprobe besteht darin, das folgende System für jede Ordnung lösen :k
Dabei sind die Beispielautokorrelationen. Diese Zuordnung zwischen den Probenautokorrelationen und den Teilautokorrelationen ist als Durbin-Levinson-Rekursion bekannt . Dieser Ansatz ist zur Veranschaulichung relativ einfach zu implementieren. Zum Beispiel können wir in der R-Software die partielle Autokorrelation der Ordnung 5 wie folgt erhalten:ρ ( ⋅ )
Vertrauensbereiche
Konfidenzbänder können als Wert der Stichproben-Autokorrelationen berechnet werden , wobei das Quantil in der Gaußschen Verteilung, zB 1,96 für 95% -Konfidenzbänder.± z1 - α / 2n√ z1 - α / 2 1 - α / 2
Manchmal werden Konfidenzbänder verwendet, die mit zunehmender Reihenfolge zunehmen. In diesem Fall können die Bänder definiert werden als .± z1 - α / 21n( 1 + 2 ∑ki = 1ρ ( i )2)----------------√
quelle
Obwohl das OP ein bisschen vage ist, ist es möglicherweise eher auf eine Rezeptcodierungsformulierung als auf eine lineare Algebramodellformulierung ausgerichtet.
Das ACF ist ziemlich einfach: Wir haben eine Zeitreihe und erstellen im Grunde genommen mehrere "Kopien" (wie in "Kopieren und Einfügen"), wobei wir verstehen, dass jede Kopie um einen Eintrag aus der vorherigen Kopie versetzt wird, weil das Anfangsdaten enthalten Datenpunkte, während die vorherige Zeitreihenlänge (die den letzten Datenpunkt ausschließt) nur beträgt . Wir können praktisch so viele Kopien erstellen, wie Zeilen vorhanden sind. Jede Kopie ist mit dem Original korreliert, wobei zu berücksichtigen ist, dass wir identische Längen benötigen. Zu diesem Zweck müssen wir das hintere Ende der ursprünglichen Datenreihe weiter beschneiden, um sie vergleichbar zu machen. Um zum Beispiel die Anfangsdaten mit zu korrelieren, wir die letztent t - 1 t st - 3 3 Datenpunkte der ursprünglichen Zeitreihe (die ersten chronologisch).3
Beispiel:
Wir erstellen eine Zeitserie mit einem zyklischen Sinusmuster, das einer Trendlinie und Rauschen überlagert ist, und zeichnen den R-generierten ACF auf. Ich habe dieses Beispiel aus einem Online-Beitrag von Christoph Scherber erhalten und nur das Rauschen hinzugefügt:
Normalerweise müssten wir die Daten auf Stationarität testen (oder sehen uns nur die obige Grafik an), aber wir wissen, dass es einen Trend gibt. Lassen Sie uns diesen Teil überspringen und direkt zum absteigenden Schritt gehen:
Jetzt sind wir bereit, diese Zeitreihe zu erstellen, indem wir zuerst die ACF mit der
acf()
Funktion in R generieren und dann die Ergebnisse mit der von mir zusammengestellten provisorischen Schleife vergleichen:IN ORDNUNG. Das war erfolgreich Auf zum PACF . Viel kniffliger zu hacken ... Hier geht es darum, die ersten ts ein paarmal zu klonen und dann mehrere Zeitpunkte auszuwählen. Anstatt nur mit der anfänglichen Zeitreihe zu korrelieren, setzen wir alle Zwischenzeiten zusammen und führen eine Regressionsanalyse durch, damit die durch die vorherigen Zeitpunkte erklärte Varianz ausgeschlossen (kontrolliert) werden kann. Wenn wir uns zum Beispiel auf die PACF konzentrieren, die zum Zeitpunkt , behalten wir , , und sowie , und wir bilden durcht st - 4 t st t st - 1 t st - 2 t st - 3 t st - 4 t st~ T st - 1+ t st - 2+ t st - 3+ t st - 4 den Ursprung und nur den Koeffizienten für :t st - 4
Und schließlich noch einmal nebeneinander zeichnen, R-generierte und manuelle Berechnungen:
Dass die Idee neben wahrscheinlichen Rechenproblemen richtig ist, kann man im Vergleich
PACF
dazu sehenpacf(st.y, plot = F)
.Code hier .
quelle
Nun, in der Praxis haben wir Fehler (Rauschen) gefunden, die durch Die Konfidenzbänder helfen Ihnen herauszufinden, ob ein Pegel nur als Rauschen betrachtet werden kann (weil etwa 95% der Rauschanteile in den Bändern liegen).et
quelle
Hier ist ein Python-Code zur Berechnung von ACF:
quelle