Ich führe den folgenden Unit-Root-Test (Dickey-Fuller) für eine Zeitreihe mit der ur.df()
Funktion im urca
Paket aus.
Der Befehl lautet:
summary(ur.df(d.Aus, type = "drift", 6))
Die Ausgabe ist:
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression drift
Call:
lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
Residuals:
Min 1Q Median 3Q Max
-0.266372 -0.036882 -0.002716 0.036644 0.230738
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.001114 0.003238 0.344 0.73089
z.lag.1 -0.010656 0.006080 -1.753 0.08031 .
z.diff.lag1 0.071471 0.044908 1.592 0.11214
z.diff.lag2 0.086806 0.044714 1.941 0.05279 .
z.diff.lag3 0.029537 0.044781 0.660 0.50983
z.diff.lag4 0.056348 0.044792 1.258 0.20899
z.diff.lag5 0.119487 0.044949 2.658 0.00811 **
z.diff.lag6 -0.082519 0.045237 -1.824 0.06874 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.06636 on 491 degrees of freedom
Multiple R-squared: 0.04211, Adjusted R-squared: 0.02845
F-statistic: 3.083 on 7 and 491 DF, p-value: 0.003445
Value of test-statistic is: -1.7525 1.6091
Critical values for test statistics:
1pct 5pct 10pct
tau2 -3.43 -2.86 -2.57
phi1 6.43 4.59 3.78
Was bedeuten die Signifikanzcodes (Signifikanzcodes)? Ich habe festgestellt, dass einige von ihnen gegen Folgendes geschrieben wurden: z.lag.1, z.diff.lag.2, z.diff.lag.3 (der Signifikanzcode ".") Und z.diff.lag.5 (der "." ** "Signifikanzcode).
Die Ausgabe gibt mir zwei (2) Werte der Teststatistik: -1,7525 und 1,6091. Ich weiß, dass die ADF-Teststatistik die erste ist (dh -1,7525). Was ist dann der zweite?
Um die Hypothese für die Einheitswurzel bei einem Signifikanzniveau von 95% zu testen, muss ich schließlich meine ADF-Teststatistik (dh -1,7525) mit einem kritischen Wert vergleichen, den ich normalerweise aus einer Tabelle erhalte. Die Ausgabe hier scheint mir die kritischen Werte durch zu geben. Die Frage ist jedoch: Welchen kritischen Wert zwischen "tau2" und "phi1" soll ich verwenden?
Danke für Ihre Antwort.
quelle
Antworten:
Es scheint, dass die Ersteller dieses speziellen R-Befehls davon ausgehen, dass man mit den ursprünglichen Dickey-Fuller-Formeln vertraut ist, und daher keine relevante Dokumentation für die Interpretation der Werte bereitgestellt haben. Ich fand, dass Enders eine unglaublich hilfreiche Ressource war (Applied Econometric Time Series 3e, 2010, S. 206-209 - ich stelle mir vor, dass auch andere Ausgaben in Ordnung wären). Im Folgenden werde ich als Beispiel Daten aus dem URCA-Paket verwenden, das reale Einkommen in Dänemark.
Es kann nützlich sein, zuerst die 3 verschiedenen Formeln zu beschreiben, die Dickey-Fuller verwendet, um verschiedene Hypothesen zu erhalten, da diese mit den Optionen "Typ" von ur.df übereinstimmen. Enders gibt an, dass in all diesen drei Fällen der konsistente Term Gamma ist, der Koeffizient für den vorherigen Wert von y, der Verzögerungsterm. Wenn gamma = 0 ist, gibt es eine Einheitswurzel (Random Walk, nicht stationär). Wenn die Nullhypothese gamma = 0 ist und p <0,05 ist, lehnen wir die Null ab (bei 95%) und nehmen an, dass es keine Einheitswurzel gibt. Wenn wir die Null nicht ablehnen (p> 0,05), nehmen wir an, dass eine Einheitswurzel existiert. Von hier aus können wir mit der Interpretation der Tau und Phi fortfahren.
1) Typ = "keine": (Formel aus Enders S. 208)Δy(t)=γ∗y(t−1)+e(t)
(wobei der Fehlerterm ist, der als weißes Rauschen angenommen wird; von ; bezieht sich auf den vorherigen Wert von y, so ist der Verzögerungsterm)e(t) γ=a−1 y=a∗y(t−1)+e(t) y(t−1)
Für Typ = "keine" ist tau (oder tau1 in der R-Ausgabe) die Nullhypothese für gamma = 0. Unter Verwendung des Einkommensbeispiels für Dänemark erhalte ich "Wert der Teststatistik ist 0,7944" und die "kritischen Werte für Teststatistiken sind : tau1 -2.6 -1.95 -1.61. Da sich die Teststatistik in allen drei Regionen (1%, 5%, 10%) befindet, in denen wir die Null nicht ablehnen, sollten wir davon ausgehen, dass es sich bei den Daten um einen zufälligen Spaziergang handelt Eine Einheitswurzel ist vorhanden. In diesem Fall bezieht sich das tau1 auf die Gamma = 0-Hypothese. Das "z.lag1" ist der Gamma-Term, der Koeffizient für den Lag-Term (y (t-1)), der p = ist 0,431, was wir nicht als signifikant ablehnen, was einfach impliziert, dass Gamma für dieses Modell statistisch nicht signifikant ist. Hier ist die Ausgabe von R.
2) type = "drift" (Ihre spezifische Frage oben) (Formel aus Enders S. 208)Δy(t)=a0+γ∗y(t−1)+e(t)
(wobei a0 "eine Sub-Null" ist und sich auf die Konstante oder den Driftterm bezieht) Hier wird die Ausgabeinterpretation schwieriger. "tau2" ist immer noch die Nullhypothese . In diesem Fall, in dem die erste Teststatistik = -1,4462 im Bereich liegt, in dem die Null nicht verworfen werden kann, sollten wir erneut eine Einheitswurzel annehmen, nämlich .γ=0 γ=0
Der Ausdruck phi1 bezieht sich auf die zweite Hypothese, bei der es sich um eine kombinierte Nullhypothese von a0 = gamma = 0 handelt. Dies bedeutet, dass BEIDE Werte gleichzeitig auf 0 getestet werden. Wenn p <0,05 ist, lehnen wir die Null ab und nehmen an, dass MINDESTENS einer davon falsch ist - dh einer oder beide der Begriffe a0 oder gamma sind nicht 0. Wenn diese Null nicht abgelehnt wird, bedeutet dies, dass BEIDE a0 UND gamma = 0, Dies impliziert 1) dass Gamma = 0 ist, daher ist eine Einheitswurzel vorhanden, UND 2) a0 = 0, so dass es keinen Driftterm gibt. Hier ist der R-Ausgang
3) Schließlich für den Typ = "Trend": (Formel aus Enders S. 208)Δy(t)=a0+gamma∗y(t−1)+a2(t)+e(t)
(wobei a2 (t) ein Zeittrendterm ist) Die Hypothesen (aus Enders S. 208) lauten wie folgt: tau: gamma = 0 phi3: gamma = a2 = 0 phi2: a0 = gamma = a2 = 0 Dies ist ähnlich wie der R-Ausgang. In diesem Fall beträgt die Teststatistik -2,4216 2,1927 2,9343. In all diesen Fällen fallen diese in die Zonen "Null nicht ablehnen" (siehe kritische Werte unten). Was tau3 wie oben impliziert, ist, dass wir die Null der Einheitswurzel nicht ablehnen, was impliziert, dass eine Einheitswurzel vorhanden ist. Wenn phi3 nicht abgelehnt wird, bedeutet dies zwei Dinge: 1) gamma = 0 (Einheitswurzel) UND 2) es gibt keinen Zeittrendterm, dh a2 = 0. Wenn wir diese Null ablehnen, würde dies bedeuten, dass einer oder beide dieser Begriffe nicht 0 sind. Wenn phi2 nicht abgelehnt wird, bedeutet dies drei Dinge: 1) gamma = 0 UND 2) kein Zeittrendterm UND 3) kein Driftterm, dh dieser Gamma = 0, dass a0 = 0 und dass a2 = 0.
Hier ist der R-Ausgang
In Ihrem obigen speziellen Beispiel bedeutet dies für die d.Aus-Daten, dass beide Teststatistiken innerhalb der Zone "Nicht ablehnen" liegen, dass gamma = 0 UND a0 = 0 ist, was bedeutet, dass es eine Einheitswurzel gibt, aber kein Driftterm.
quelle
Wie Joint-P bereits ausgeführt hat, sind die Signifikanzcodes ziemlich Standard und entsprechen p-Werten, dh der statistischen Signifikanz eines Hypothesentests. Ein p-Wert von 0,01 bedeutet, dass die Schlussfolgerung innerhalb von 99% Konfidenz wahr ist.
Der Wikipedia-Artikel über Dickey-Fuller beschreibt die drei Versionen des Dickey-Fuller-Tests: die "Einheitswurzel", "Einheitswurzel mit Drift" und "Einheitswurzel mit Drift und deterministischem Zeittrend" oder was in der
urca
Dokumentation als Typ = "keine", "Drift" bzw. "Trend".Jeder dieser Tests ist eine zunehmend komplexere lineare Regression. In allen gibt es die Wurzel, aber in der Drift gibt es auch einen Driftkoeffizienten, und im Trend gibt es auch einen Trendkoeffizienten. Jedem dieser Koeffizienten ist ein Signifikanzniveau zugeordnet. Während die Signifikanz des Wurzelkoeffizienten der wichtigste und das Hauptaugenmerk des DF-Tests ist, könnten wir auch daran interessiert sein, ob der Trend / die Drift auch statistisch signifikant ist oder nicht. Nachdem ich an den verschiedenen Modi herumgebastelt und gesehen hatte, welche Koeffizienten in den t-Tests erscheinen / verschwinden, konnte ich leicht identifizieren, welcher Koeffizient welchem t-Test entsprach.
Sie können wie folgt geschrieben werden (von der Wiki-Seite):
In Ihrem Fall entspricht "tau2" , während "phi1" . Sie werden auch einen dritten Koeffizienten im "Trend" -Test sehen, der in der dritten Gleichung oben entsprechen würde. Die Namen der Variablen ändern sich jedoch, wenn Sie zu "Trend" wechseln. Seien Sie also vorsichtig und stellen Sie sicher, dass Sie dies selbst tun, um dies zu überprüfen. Ich glaube an den "Trend" -Modus, "tau3" entspricht , "phi2" entspricht und "phi3" entspricht .a 0 a 1 δ a 0 a 1δ a0 a1 δ a0 a1
quelle
Weitere Informationen finden Sie in Roger Permans Vorlesungsunterlagen zu Unit-Root-Tests
Siehe auch Tabelle 4.2 in Enders, Applied Econometric Time Series (4e), in der die verschiedenen Hypothesen zusammengefasst sind, auf die sich diese Teststatistiken beziehen. Der Inhalt stimmt mit dem oben angegebenen Bild überein.
quelle
Ich fand Jeramys Antwort ziemlich einfach zu befolgen, versuchte aber ständig, die Logik richtig durchzugehen und Fehler zu machen. Ich habe eine R-Funktion codiert, die jeden der drei Modelltypen interpretiert und Warnungen ausgibt, wenn Inkonsistenzen oder nicht eindeutige Ergebnisse vorliegen (ich denke nicht, dass es jemals Inkonsistenzen geben sollte, wenn ich die ADF-Mathematik richtig verstehe, aber ich dachte immer noch gut Überprüfen Sie, ob die Funktion ur.df fehlerhaft ist.
Bitte werfen Sie einen Blick darauf. Gerne nehmen wir Kommentare / Korrekturen / Verbesserungen entgegen.
https://gist.github.com/hankroark/968fc28b767f1e43b5a33b151b771bf9
quelle
sehr interessanter Beitrag und Antworten. Ich habe nur Zweifel an der von user3096626 erläuterten Tabelle. Welche Software meldet in der ADF Testausgabe der Werte des
\tau_{\alpha \mu}
,\tau_{\alpha \tau}
und\tau_{\beta \tau}
? Offensichtlich tut R das nichtquelle
phi1 phi2 phi3 entsprechen F-Tests im ADF-Framework
quelle