Ich habe ein Problem mit den Dickey-Fuller-p-Werten und der Teststatistik für den Einheitswurzeltest in R. Ich habe versucht, Funktionen zu verwenden:
urca::ur.df()
fUnitRoots::adfTest()
tseries::adf.test()
Alle zeigten unterschiedliche Ergebnisse für die gleichen Testeinstellungen (Verzögerung, Typ) im Vergleich zur gretl-Ausgabe.
Zum Beispiel:
set.seed(1)
x <- rnorm(50, 0, 3)
schwert.param <- trunc(12 * (length(na.omit(x)) / 100) ^ (1 / 4))
adfTest(x = na.omit(x), lags = schwert.param, type = "nc", title = NULL, description = NULL)
# Title:
# Augmented Dickey-Fuller Test
#
# Test Results:
# PARAMETER:
# Lag Order: 10
# STATISTIC:
# Dickey-Fuller: -2.4362
# P VALUE: 0.01749
Und für den gleichen Vektor x in gretl habe ich:
> Test statistic: tau_nc(1) = -4.03652
> Asymptotic p-value = 5.57e-005
Beide Testeinstellungen waren ohne Konstante und Trend, Verzögerungen = 10. Warum erhalte ich also unterschiedliche Ergebnisse für dieselbe Dateneingabe? Ich weiß, der Dickey-Fuller-Test verwendet Monte Carlo, um p-Werte für die Teststatistik zu erhalten, aber sollten sie sich so stark unterscheiden, oder mache ich etwas falsch mit dieser Funktion in R?
r
time-series
unit-root
augmented-dickey-fuller
kodi1911
quelle
quelle
Antworten:
Ich habe nicht versucht, die Probleme mit gretl zu replizieren, aber zumindest die von Ihnen erwähnten R-Pakete scheinen übereinzustimmen, wenn sowohl die Deterministiken (Trend vs. Konstante alias Drift vs. Keine) als auch die Verzögerungen (fest, Informationskriterien, Heuristiken) angegeben sind auf die gleiche Weise. Es gibt Unterschiede in der Art und Weise, wie die p-Werte berechnet werden, aber für die von
x
Ihnen generierten Daten sind sie sehr ähnlich.Ich habe die folgende Übersicht für meine Schüler geschrieben und dachte, ich könnte sie hier teilen, wenn jemand sie nützlich findet. Persönlich habe ich meistens verwendet
tseries
undCADFtest
:adf.test()
intseries
.Deterministik: Nur linearer Trend.
Verzögerungen: Standardmäßig heuristisch, kann jedoch vom Benutzer ausgewählt werden.
P-Wert: Aus der Tabelle der kritischen Werte.
CADFtest()
inCADFtest
.Deterministik: Trend standardmäßig, Konstante (auch bekannt als Drift) oder keine unterstützt.
Verzögerungen: Die Standardeinstellung ist 1, kann jedoch über Informationskriterien oder vom Benutzer ausgewählt werden.
P-Wert: Berechnung basierend auf Costantini et al. (2007). Siehe auch Lupi (2009). Unit Root CADF-Tests mit R. Journal of Statistical Software, 32 (2), 1-19. http://www.jstatsoft.org/v32/i02/ .
Kommentare: Zusätzliche Regressoren (und ihre Verzögerungen) können zur zusätzlichen Regression hinzugefügt werden.
ur.df()
inurca
.Deterministik: Standardmäßig werden keine, Konstante und Trend ebenfalls unterstützt.
Verzögerungen: Die Standardeinstellung ist 1, kann jedoch über Informationskriterien oder vom Benutzer ausgewählt werden.
P-Wert: Keine, gibt jedoch eine
summary()
Tabelle mit kritischen Werten an (1%, 5%, 10%).adfTest()
infUnitRoots
.Deterministik: Standardmäßig werden keine, Konstante und Trend ebenfalls unterstützt.
Verzögerungen: Die Standardeinstellung ist 1, kann jedoch vom Benutzer ausgewählt werden.
P-Wert: Aus der Tabelle der kritischen Werte.
Kommentare: Basierend auf
adf.test()
vontseries
aber durch zusätzliche Deterministik erweitert.Für die von Ihnen generierten Daten:
Schauen wir uns die verschiedenen Ergebnisse für den Test mit Trend (da dies von allen Funktionen unterstützt wird) und 10 Verzögerungen an (wie in Ihrer obigen Heuristik vorgeschlagen). Die Teststatistik ist immer genau gleich und die p-Werte liegen nahe beieinander.
quelle
@ChristophHanck @GraemeWalsh: Ok, wahrscheinlich habe ich gefunden, was hier los ist. Zuerst habe ich die Gretl-Sprache von Polnisch auf Englisch geändert und festgestellt, dass im ADF-Testfenster standardmäßig eine Option aktiviert ist - " Test von maximaler Verzögerungsreihenfolge " unter Verwendung des Akaike-Informationskriteriums. Wenn ich diese Option deaktiviere, erhalte ich die gleichen Ergebnisse wie in R. Jetzt möchte ich wissen, wie diese Option in R verwendet wird. Weiß jemand, wie das geht?
quelle
CADFtest
.