Welcher Dickey-Fuller-Test für eine Zeitreihe, die mit einem Achsenabschnitt / einer Drift und einem linearen Trend modelliert wurde?


15

Kurzfassung:

Ich habe eine Zeitreihe von Klimadaten, die ich auf Stationarität teste. Basierend auf früheren Untersuchungen erwarte ich, dass das Modell, das den Daten zugrunde liegt (oder sozusagen "generiert"), einen Abfangterm und einen positiven linearen Zeittrend aufweist. Soll ich zum Testen dieser Daten auf Stationarität den Dickey-Fuller-Test verwenden, der einen Achsenabschnitt und einen Zeittrend enthält, dh Gleichung 3 ?

yt=α0+α1t+δyt-1+ut

Oder sollte ich den DF-Test verwenden, der nur einen Abschnitt enthält, weil der erste Unterschied der Gleichung, von der ich glaube, dass er dem Modell zugrunde liegt, nur einen Abschnitt enthält?

Lange Version:

Wie oben erwähnt, habe ich eine Zeitreihe von Klimadaten, die ich auf Stationarität teste. Basierend auf früheren Untersuchungen erwarte ich, dass das den Daten zugrunde liegende Modell einen Abfangterm, einen positiven linearen Zeittrend und einen normalverteilten Fehlerterm aufweist. Mit anderen Worten, ich erwarte, dass das zugrunde liegende Modell ungefähr so ​​aussieht:

yt=ein0+ein1t+βyt-1+ut

wo normalerweise verteilt ist. Da ich davon ausgehe, dass das zugrunde liegende Modell sowohl einen Achsenabschnitt als auch einen linearen Zeittrend aufweist, habe ich nach einer Einheitswurzel mit Gleichung 3 des einfachen Dickey-Fuller-Tests wie folgt getestet :ut

yt=α0+α1t+δyt1+ut

Dieser Test gibt einen kritischen Wert zurück, der mich veranlassen würde, die Nullhypothese abzulehnen und zu dem Schluss zu kommen, dass das zugrunde liegende Modell nicht stationär ist. Ich mich jedoch, ob ich dies richtig anwende, da angenommen wird, dass das zugrunde liegende Modell einen Achsenabschnitt und einen , dies jedoch nicht impliziert, dass der erste Unterschied ebenfalls vorhanden ist. Ganz im Gegenteil, wenn meine Mathematik stimmt.yt

Die Berechnung der ersten Differenz basierend auf der Gleichung des angenommenen zugrunde liegenden Modells ergibt: yt=ytyt1=[a0+a1t+βyt1+ut][a0+a1(t1)+βyt2+ut1]

yt=[ein0-ein0]+[ein1t-eint(t-1)]+β[yt-1-yt-2]+[ut-ut-1]

yt=ein1+βyt-1+ut-ut-1

Daher scheint der erste Unterschied nur einen zu haben, keinen .yt

Ich denke, meine Frage ähnelt dieser , außer dass ich nicht sicher bin, wie ich diese Antwort auf meine Frage anwenden soll.

Beispieldaten:

Hier sind einige der Probentemperaturdaten, mit denen ich arbeite.

64.19749  
65.19011  
64.03281  
64.99111  
65.43837  
65.51817  
65.22061  
65.43191  
65.0221  
65.44038  
64.41756  
64.65764  
64.7486  
65.11544  
64.12437  
64.49148  
64.89215  
64.72688  
64.97553  
64.6361  
64.29038  
65.31076  
64.2114  
65.37864  
65.49637  
65.3289  
65.38394  
65.39384  
65.0984  
65.32695  
65.28  
64.31041  
65.20193  
65.78063  
65.17604  
66.16412  
65.85091  
65.46718  
65.75551  
65.39994  
66.36175  
65.37125  
65.77763  
65.48623  
64.62135  
65.77237  
65.84289  
65.80289  
66.78865  
65.56931  
65.29913  
64.85516  
65.56866  
64.75768  
65.95956  
65.64745  
64.77283  
65.64165  
66.64309  
65.84163  
66.2946  
66.10482  
65.72736  
65.56701  
65.11096  
66.0006  
66.71783  
65.35595  
66.44798  
65.74924  
65.4501  
65.97633  
65.32825  
65.7741  
65.76783  
65.88689  
65.88939  
65.16927  
64.95984  
66.02226  
66.79225  
66.75573  
65.74074  
66.14969  
66.15687  
65.81199  
66.13094  
66.13194  
65.82172  
66.14661  
65.32756  
66.3979  
65.84383  
65.55329  
65.68398  
66.42857  
65.82402  
66.01003  
66.25157  
65.82142  
66.08791  
65.78863  
66.2764  
66.00948  
66.26236  
65.40246  
65.40166  
65.37064  
65.73147  
65.32708  
65.84894  
65.82043  
64.91447  
65.81062  
66.42228  
66.0316  
65.35361  
66.46407  
66.41045  
65.81548  
65.06059  
66.25414  
65.69747  
65.15275  
65.50985  
66.66216  
66.88095  
65.81281  
66.15546  
66.40939  
65.94115  
65.98144  
66.13243  
66.89761  
66.95423  
65.63435  
66.05837  
66.71114 

1
Ich weiß nicht, ob dieser Link ( tamino.wordpress.com/2010/03/11/not-a-random-walk ) Ihre Frage beantwortet, aber ich dachte, Sie wären wahrscheinlich trotzdem daran interessiert.
Matt Albrecht

@MattAlbrecht Das ist ein sehr interessanter Link. Ich bin immer noch verwirrt, wie ich den Dickey-Fuller-Test auf meine ursprüngliche Zeitreihe anwenden soll. Ich habe versucht, in meiner letzten Bearbeitung relevantere Informationen hinzuzufügen.
Ricardo Altamirano

Tut mir leid, ich kann Ihnen keine bessere Antwort geben - ich bin das nicht zusätzlich zu meiner Zeitreihenanalyse. Vielleicht interessiert Sie auch diese Frage, die ich kürzlich gestellt habe ( stats.stackexchange.com/questions/27748 ), die sich ebenfalls mit Klimazeitreihen befasst und eine ausführliche Analyse zu Temperatur und CO2 aus einer Zeitreihe pro enthält. Es könnte anderen helfen, wenn Sie auch Daten hätten, die Sie posten könnten?
Matt Albrecht

@MattAlbrecht Ich habe einige Beispieldaten hinzugefügt. Gibt es ein besseres Format, in das ich es einfügen kann?
Ricardo Altamirano

Antworten:


18

Sie müssen die Drift und den (parametrischen / linearen) Trend in den Ebenen der Zeitreihe berücksichtigen , um die deterministischen Terme in der erweiterten Dickey-Fuller-Regression anzugeben, die sich auf die ersten Differenzen der Zeitreihe bezieht. Die Verwirrung entsteht genau aus der Ableitung der First-Differences-Gleichung in der Art und Weise, wie Sie es getan haben.

(Augmented) Dickey-Fuller-Regressionsmodell

Angenommen, die Ebenen der Reihe enthalten einen Drift- und Die Nullhypothese der Nichtstationarität in diesem Fall wäre .H 0

Y.t=β0,l+β1,lt+β2,lY.t-1+εt
H0:β2,l=1

Eine Gleichung für die ersten durch diesen Datenerzeugungsprozess [DGP] implizierten Unterschiede ist diejenige, die Sie abgeleitet haben: Dies ist jedoch nicht die im Test verwendete (erweiterte) Dickey-Fuller-Regression.

ΔY.t=β1,l+β2,lΔY.t-1+Δεt

Stattdessen kann die korrekte Version erhalten werden, indem von beiden Seiten der ersten Gleichung subtrahiert wird, was zu Dies ist die (erweiterte) Dickey-Fuller-Regression, und die entsprechende Version der Nullhypothese der Nichtstationarität ist der Test Dies ist nur ein t-Test, der die OLS-Schätzung von in der obigen Regression verwendet. Beachten Sie, dass die Drift und der Trend unverändert zu dieser Spezifikation passen.Δ Y tY.t-1 H0

ΔY.t=β0,l+β1,lt+(β2,l-1)Y.t-1+εtβ0,d+β1,dt+β2,dY.t-1+εt
β 2 , dH0:β2,d=0β2,d

Wenn Sie sich nicht sicher sind, ob der lineare Trend in den Ebenen der Zeitreihe vorhanden ist, können Sie den linearen Trend und die Einheitswurzel, also gemeinsam testen. , das mit einem F-Test mit geeigneten kritischen Werten getestet werden kann. Diese Tests und kritischen Werte werden von der R-Funktion in der Packung erzeugt.H0:[β2,d,β1,l]=[0,0]ur.dfurca

Betrachten wir einige Beispiele im Detail.

Beispiele

1. Verwendung der US-Anlageserie

Das erste Beispiel verwendet die US-Investmentreihe, die in Lutkepohl und Kratzig (2005, S. 9) diskutiert wird . Der Plot der Serie und sein erster Unterschied sind unten angegeben.

Bildbeschreibung hier eingeben

Aus den Ebenen der Reihe geht hervor, dass es einen Mittelwert ungleich Null, aber keinen linearen Trend aufweist. Wir setzen also eine erweiterte Dickey-Fuller-Regression mit einem Achsenabschnitt und drei Verzögerungen der abhängigen Variablen fort, um die serielle Korrelation zu berücksichtigen: Beachten Sie den wichtigsten Punkt, den ich in den Ebenen betrachtet habe, um die Regressionsgleichung in Differenzen anzugeben.

ΔY.t=β0,d+β2,dY.t-1+j=13γjΔY.t-j+εt

Der R-Code dafür ist unten angegeben:

    library(urca)
    library(foreign)
    library(zoo)

    tsInv <- as.zoo(ts(as.data.frame(read.table(
      "http://www.jmulti.de/download/datasets/US_investment.dat", skip=8, header=TRUE)), 
                       frequency=4, start=1947+2/4))
    png("USinvPlot.png", width=6,
        height=7, units="in", res=100)
    par(mfrow=c(2, 1))
    plot(tsInv$USinvestment)
    plot(diff(tsInv$USinvestment))
    dev.off()

    # ADF with intercept
    adfIntercept <- ur.df(tsInv$USinvestment, lags = 3, type= 'drift')
    summary(adfIntercept)

Die Ergebnisse zeigen, dass die Nullhypothese der Nichtstationarität für diese Reihe unter Verwendung des auf dem geschätzten Koeffizienten basierenden t-Tests verworfen werden kann. Der gemeinsame F-Test des Achsenabschnitts und des Steigungskoeffizienten ( ) ebenfalls lehnt die Nullhypothese ab, dass es eine Einheitswurzel in der Reihe gibt.H:[β2,d,β0,l]=[0,0]

2. Verwendung deutscher (logarithmischer) Verbrauchsreihen

Das zweite Beispiel verwendet die vierteljährlichen saisonbereinigten deutschen Zeitreihen des (logarithmischen) Verbrauchs. Die grafische Darstellung der Serie und ihre Unterschiede sind nachstehend aufgeführt.

Bildbeschreibung hier eingeben

Aus den Ebenen der Reihe geht klar hervor, dass die Reihe einen Trend aufweist. Daher schließen wir den Trend in der erweiterten Dickey-Fuller-Regression zusammen mit vier Verzögerungen der ersten Differenzen ein, um die serielle Korrelation zu berücksichtigen,

ΔY.t=β0,d+β1,dt+β2,dY.t-1+j=14γjΔY.t-j+εt

Der R-Code dafür ist

# using the (log) consumption series
tsConsump <- zoo(read.dta("http://www.stata-press.com/data/r12/lutkepohl2.dta"), frequency=1)
png("logConsPlot.png", width=6,
    height=7, units="in", res=100)
par(mfrow=c(2, 1))
plot(tsConsump$ln_consump)
plot(diff(tsConsump$ln_consump))
dev.off()

# ADF with trend
adfTrend <- ur.df(tsConsump$ln_consump, lags = 4, type = 'trend')
summary(adfTrend)

Die Ergebnisse zeigen, dass die Null der Nichtstationarität nicht unter Verwendung des auf dem geschätzten Koeffizienten basierenden t-Tests verworfen werden kann. Der gemeinsame F-Test des linearen Trendkoeffizienten und des Steigungskoeffizienten ( ) weist auch darauf hin, dass die Nichtstationarität nicht zurückgewiesen werden kann.H:[β2,d,β1,l]=[0,0]

3. Mit vorgegebenen Temperaturdaten

Jetzt können wir die Eigenschaften Ihrer Daten bewerten. Die üblichen Graphen in Stufen und ersten Differenzen sind unten angegeben.

Bildbeschreibung hier eingeben

Diese zeigen an, dass Ihre Daten einen Achsenabschnitt und einen Trend aufweisen. Daher führen wir den ADF-Test (ohne verzögerte erste Differenzterme) mit dem folgenden R-Code durch

# using the given data
tsTemp <- read.table(textConnection("temp 
64.19749  
65.19011  
64.03281  
64.99111  
65.43837  
65.51817  
65.22061  
65.43191  
65.0221  
65.44038  
64.41756  
64.65764  
64.7486  
65.11544  
64.12437  
64.49148  
64.89215  
64.72688  
64.97553  
64.6361  
64.29038  
65.31076  
64.2114  
65.37864  
65.49637  
65.3289  
65.38394  
65.39384  
65.0984  
65.32695  
65.28  
64.31041  
65.20193  
65.78063  
65.17604  
66.16412  
65.85091  
65.46718  
65.75551  
65.39994  
66.36175  
65.37125  
65.77763  
65.48623  
64.62135  
65.77237  
65.84289  
65.80289  
66.78865  
65.56931  
65.29913  
64.85516  
65.56866  
64.75768  
65.95956  
65.64745  
64.77283  
65.64165  
66.64309  
65.84163  
66.2946  
66.10482  
65.72736  
65.56701  
65.11096  
66.0006  
66.71783  
65.35595  
66.44798  
65.74924  
65.4501  
65.97633  
65.32825  
65.7741  
65.76783  
65.88689  
65.88939  
65.16927  
64.95984  
66.02226  
66.79225  
66.75573  
65.74074  
66.14969  
66.15687  
65.81199  
66.13094  
66.13194  
65.82172  
66.14661  
65.32756  
66.3979  
65.84383  
65.55329  
65.68398  
66.42857  
65.82402  
66.01003  
66.25157  
65.82142  
66.08791  
65.78863  
66.2764  
66.00948  
66.26236  
65.40246  
65.40166  
65.37064  
65.73147  
65.32708  
65.84894  
65.82043  
64.91447  
65.81062  
66.42228  
66.0316  
65.35361  
66.46407  
66.41045  
65.81548  
65.06059  
66.25414  
65.69747  
65.15275  
65.50985  
66.66216  
66.88095  
65.81281  
66.15546  
66.40939  
65.94115  
65.98144  
66.13243  
66.89761  
66.95423  
65.63435  
66.05837  
66.71114"), header=T)
tsTemp <- as.zoo(ts(tsTemp, frequency=1))

png("tempPlot.png", width=6,
    height=7, units="in", res=100)
par(mfrow=c(2, 1))
plot(tsTemp$temp)
plot(diff(tsTemp$temp))
dev.off()

# ADF with trend
adfTrend <- ur.df(tsTemp$temp, type = 'trend')
summary(adfTrend)

Die Ergebnisse sowohl für den t-Test als auch für den F-Test zeigen an, dass die Null der Nichtstationarität für die Temperaturreihe verworfen werden kann. Ich hoffe das klärt die Sache etwas.


4
Dies ist eine der klarsten und hilfreichsten Antworten, die ich über das Stack Exchange-Netzwerk erhalten habe, und es lindert meine Verwirrung über DF-Tests. Vielen Dank.
Ricardo Altamirano

@ RicardoAltamirano Gern geschehen. Froh, dass ich helfen konnte.
Tschakravarty

2
Stimmen Sie zu, dass dies eine sehr gute Antwort ist.
RAH

0

Die Nullhypothese im Dickey-Fuller-Test lautet, dass ein Prozess eine Einheitswurzel enthält. Wenn Sie die Null ablehnen, stellen Sie fest, dass Ihr Prozess stationär ist (mit den üblichen Einschränkungen beim Testen von Hypothesen).

yt=α0+α1t+δyt-1+ut

ytytyt-1yt-1yt-1


0

Die vorherigen Antworten waren ausgezeichnet.

In der Regel entscheiden Sie anhand des Diagramms, welcher Test durchgeführt werden soll. In diesem Fall scheinen die Daten einen Achsenabschnitt und einen Trend aufzuweisen.

Wenn Sie in Ebenen auf eine Unit-Root testen, verwenden Sie ein Intercept- und ein Trendmodell. Wenn Sie den Test in Differenzen ausführen, verwenden Sie nur ein Intercept-Modell.

Ich habe diese Frage gerade beantwortet, weil ich Ihnen empfehlen muss, mit diesen Daten saisonale Tests durchzuführen. Diese Tests sind sehr komplex (die Arbeit mit Saisonalität ist nicht einfach). Die Art der Daten (Temperatur) und da in der Darstellung können Sie einige saisonale Verhalten beobachten. Anschließend sollten Sie den HEGY-Test untersuchen und implementieren, wenn Ihre Schätzungen zuverlässig sein sollen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.