Woher wissen, ob eine Zeitreihe stationär oder instationär ist?

30

Ich bin mit R, suchte ich auf Google und erfuhr , dass kpss.test(), PP.test()und adf.test()verwendet werden , um Stationarität der Zeitreihe zu kennen.

Aber ich bin kein Statistiker, der seine Ergebnisse interpretieren kann

> PP.test(x)

     Phillips-Perron Unit Root Test
data:  x 
Dickey-Fuller = -30.649, Truncation lag parameter = 7, p-value = 0.01

> kpss.test(b$V1)

  KPSS Test for Level Stationarity
  data:  b$V1 
  KPSS Level = 0.0333, Truncation lag parameter = 3, p-value = 0.1

Warning message:
In kpss.test(b$V1) : p-value greater than printed p-value
> adf.test(x)

    Augmented Dickey-Fuller Test

data:  x 
Dickey-Fuller = -9.6825, Lag order = 9, p-value = 0.01
alternative hypothesis: stationary

Warning message:
In adf.test(x) : p-value smaller than printed p-value

Ich habe es mit Tausenden von Zeitreihen zu tun, bitte sagen Sie mir, wie Sie die Stationarität von Zeitreihen quantitativ überprüfen können.

Sagar Nikam
quelle

Antworten:

22

Um zu testen, ob eine Reihe stationär oder instationär ist, müssen Sie eine Reihe alternativer Hypothesen in Betracht ziehen. Eine für jede auflistbare Gaußsche Annahme. Man muss verstehen, dass sich die Gaußschen Annahmen ausschließlich auf den Fehlerprozess beziehen und nichts mit den beobachteten zu bewertenden Reihen zu tun haben. Wie von StasK korrekt zusammengefasst, kann dies Verstöße gegen die Stationarität wie Mittelwertänderung, Varianzänderung und Änderungen der Parameter des Modells im Zeitverlauf umfassen. Zum Beispiel wäre ein Wertesatz mit Aufwärtstrend ein Anscheinsbeispiel für eine Reihe, die in Y nicht konstant war, während die Residuen eines geeigneten Modells als konstanter Mittelwert beschrieben werden könnten. Somit ist die ursprüngliche Reihe im Mittel nicht stationär, während die verbleibende Reihe im Mittel stationär ist. Liegen in der Residuenserie ungemilderte Mittelwertverletzungen wie Impulse, Pegelverschiebungen, saisonale Impulse und / oder lokale Zeittrends vor, kann die Residuenserie (unbehandelt) im Mittel als nicht stationär charakterisiert werden, während eine Reihe von Indikatorvariablen vorliegen könnte leicht zu erkennen und in das Modell aufzunehmen, um die Modellreste im Mittel stationär zu machen. Wenn die Varianz der Originalserie eine instationäre Varianz aufweist, ist es durchaus sinnvoll, ein Filter / Modell einzuschränken, um einen Fehlerprozess mit konstanter Varianz zu erhalten. In ähnlicher Weise können die Residuen eines Modells eine nicht konstante Varianz aufweisen, die eine von drei möglichen Abhilfemaßnahmen erfordert: Saisonale Impulse und / oder lokale Zeittrends, dann kann die Residuenserie (unbehandelt) im Mittel als nicht stationär charakterisiert werden, während eine Reihe von Indikatorvariablen leicht erfasst und in das Modell aufgenommen werden kann, um die Modell-Residuen im Mittel stationär zu machen . Wenn die Varianz der Originalserie eine instationäre Varianz aufweist, ist es durchaus sinnvoll, ein Filter / Modell einzuschränken, um einen Fehlerprozess mit konstanter Varianz zu erhalten. In ähnlicher Weise können die Residuen eines Modells eine nicht konstante Varianz aufweisen, die eine von drei möglichen Abhilfemaßnahmen erfordert: Saisonale Impulse und / oder lokale Zeittrends, dann kann die Residuenserie (unbehandelt) im Mittel als nicht stationär charakterisiert werden, während eine Reihe von Indikatorvariablen leicht erfasst und in das Modell aufgenommen werden kann, um die Modell-Residuen im Mittel stationär zu machen . Wenn die Varianz der Originalserie eine instationäre Varianz aufweist, ist es durchaus sinnvoll, ein Filter / Modell einzuschränken, um einen Fehlerprozess mit konstanter Varianz zu erhalten. In ähnlicher Weise können die Residuen eines Modells eine nicht konstante Varianz aufweisen, die eine von drei möglichen Lösungen erfordert: Wenn die Varianz der Originalserie eine instationäre Varianz aufweist, ist es durchaus sinnvoll, ein Filter / Modell einzuschränken, um einen Fehlerprozess mit konstanter Varianz zu erhalten. In ähnlicher Weise können die Residuen eines Modells eine nicht konstante Varianz aufweisen, die eine von drei möglichen Lösungen erfordert: Wenn die Varianz der Originalserie eine instationäre Varianz aufweist, ist es durchaus sinnvoll, ein Filter / Modell einzuschränken, um einen Fehlerprozess mit konstanter Varianz zu erhalten. In ähnlicher Weise können die Residuen eines Modells eine nicht konstante Varianz aufweisen, die eine von drei möglichen Lösungen erfordert:

  1. Gewichtete kleinste Quadrate (von einigen Analysten weitgehend übersehen)
  2. Eine Leistungstransformation zur Entkopplung des Erwartungswertes von der Varianz der über einen Box-Cox-Test feststellbaren Fehler und / oder
  3. Es ist erforderlich, dass ein GARCH-Modell eine ARIMA-Struktur berücksichtigt, die in den quadratischen Residuen erkennbar ist. Wenn sich die Parameter im Laufe der Zeit ändern ODER sich die Form des Modells im Laufe der Zeit ändert, besteht die Notwendigkeit, diese Eigenschaft zu erkennen und entweder durch Datensegmentierung oder die Verwendung eines TAR-Ansatzes à la Tong zu beheben.
IrishStat
quelle
34

Stationarität bedeutet, dass sich die marginale Verteilung des Prozesses mit der Zeit nicht ändert. Eine schwächere Form besagt, dass der Mittelwert und die Varianz über die Zeit gleich bleiben. Also wird alles, was dagegen verstößt, aus irgendwelchen dummen Gründen als instationär angesehen. Zum Beispiel eine deterministischeyt=Sündet ist instationär, da sich sein Mittelwert ständig ändert, obwohl dies ein ziemlich einfacher und vorhersehbarer Prozess ist.

Alle Tests, die Sie in Betracht ziehen, haben eine bestimmte Alternative im Sinn: einen zufälligen Gehprozess

yt=yt-1+ϵt
oder eine einfache Änderung (z. B. zusätzliche Verzögerungen) yt-2, yt-3mit kleinen Koeffizienten). Dies ist ein einfaches Modell eines effizienten Finanzmarktes, an dem keinerlei Informationen verwendet werden können, um zukünftige Preisänderungen vorherzusagen. Die meisten Ökonomen denken, dass ihre Zeitreihen von ARIMA-Modellen stammen. Diese Zeitreihen haben genau festgelegte Zeiträume, in denen Dinge passieren (Monat, Quartal oder Jahr), sodass sie selten schlechter werden als eine integrierte Zeitreihe für sie. Daher sind diese Tests nicht für komplexere Verstöße gegen die Stationarität wie Mittelwertänderung, Varianzänderung, Änderung der autoregressiven Koeffizienten usw. ausgelegt, obwohl offensichtlich auch Tests für diese Effekte entwickelt wurden.

In den Ingenieur- oder Naturwissenschaften treten mit größerer Wahrscheinlichkeit Zeitreihen mit komplizierteren Problemen auf, wie z. B. Abhängigkeit von großer Reichweite, fraktionierte Integration, rosa Rauschen usw. Mangels eindeutiger Anleitung bei der Beschreibung des Prozesses in Bezug auf die typischen Zeitskalen ( Wie oft ändert sich das Klima?) ist es in der Regel sinnvoller, die Daten im Frequenzbereich zu analysieren (für Ökonomen ist der Frequenzbereich klar: Es gibt jährliche saisonale Zyklen sowie längere 3-4-5-jährige Geschäftszyklen ; sonst können nur wenige Überraschungen auftreten).

Im Grunde habe ich dir gesagt, warum du nicht das tun willst, was du dir vorgenommen hast. Wenn Sie Zeitreihen nicht verstehen, ist es besser, jemanden zu finden, der das tut, und die Beratungsgebühr zu zahlen, als Ihr Projekt durcheinander zu bringen, weil Sie etwas Dummes getan haben. Die formale Lösung für Ihr Problem wäre jedoch, die Nullhypothese einer stationären Reihe abzulehnen, wenn für eine bestimmte Reihe mindestens ein Test a hatp-Wert unten 0,05/(3M) woher M ist die Gesamtzahl der Serien, 3 ist die Anzahl der Tests, die Sie mit ihnen durchführen, 0,05ist das bevorzugte Signifikanzniveau von 5%, und der gesamte Ausdruck wird als Bonferroni-Korrektur für Mehrfachtests bezeichnet. Die Ausgabe zeigt nicht diep-Werte mit ausreichender Genauigkeit, sodass Sie sie als zurückgegebene Klassenmitglieder abrufen müssen, z pp.test(x)$p.value. Sie werden dies sowieso zyklisch tun, sodass es wahrscheinlich ausreichen würde, wenn Sie die gesamte Ausgabe unterdrücken und nur die Namen der Variablen erzeugen, bei denen die Stationarität fehlschlägt.

StasK
quelle
4

Zeitreihen sind stationär, wenn ihr mittleres Niveau und ihre Varianz über die Zeit konstant bleiben. Weitere Informationen zu diesem Thema (mit Angabe der relevanten Tests in R) finden Sie in unserem Post. Http://www.statosphere.com.au/check-time-series-stationary-r/

STAToSphere
quelle
1
Später Kommentar, aber was meinst du damit, dass Mittelwert und Varianz über die Zeit konstant bleiben? Für einen gegebenen Datensatz sind der Mittelwert und die Varianz so, wie sie sind, richtig? Oder meinst du, dass der Mittelwert / var aller Teilmengen der Daten gleich sein muss?
Erik Vesterlund
2
Ich habe mir die verlinkte Seite angesehen. Es wird angegeben, dass "der Ljung-Box-Test untersucht, ob es signifikante Hinweise auf Korrelationen ungleich Null bei den Verzögerungen 1 bis 20 gibt. Kleine p-Werte (dh weniger als 0,05) legen nahe, dass die Reihe stationär ist." Die Schlussfolgerung ist eindeutig falsch. Der Nullpunkt ist, dass die Beobachtungen iid sind. Das Zurückweisen der Null basierend auf einem kleinen p-Wert zeigt nur an, dass mindestens eine signifikante Verzögerung vorliegt. Die Schlussfolgerung auf der Website würde bedeuten, dass die Stationarität eine signifikante Autokorrelation für mindestens eine Verzögerung erfordert. Und das stimmt nicht.
random_guy