Który test Dickeya-Fullera dla szeregu czasowego modelowanego za pomocą przecięcia / dryfu i trendu liniowego?

17

Krótka wersja:

Mam szereg danych klimatycznych, które testuję pod kątem stacjonarności. Na podstawie wcześniejszych badań spodziewam się, że model leżący u podstaw (lub, że tak powiem, „generowania” danych) będzie miał wyraz przechwytujący i pozytywny liniowy trend czasu. Aby przetestować te dane pod kątem stacjonarności, czy powinienem użyć testu Dickeya-Fullera, który obejmuje przechwytywanie i trend czasowy, tj. Równanie nr 3 ?

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

Czy też powinienem użyć testu DF, który obejmuje tylko punkt przecięcia, ponieważ pierwsza różnica równania, która moim zdaniem leży u podstaw modelu, ma tylko punkt przecięcia?

Długa wersja:

Jak wspomniano powyżej, mam szereg danych klimatycznych, które testuję pod kątem stacjonarności. Na podstawie wcześniejszych badań spodziewam się, że model leżący u podstaw danych będzie zawierał warunek przechwytywania, dodatni trend liniowy w czasie i normalnie rozkładany błąd. Innymi słowy, oczekuję, że model podstawowy będzie wyglądał mniej więcej tak:

yt=a0+a1t+βyt1+ut

gdzie jest zwykle dystrybuowany. Ponieważ zakładam, że model podstawowy ma zarówno przechwytywanie, jak i liniowy trend czasowy, przetestowałem dla pierwiastka jednostkowego z równaniem # 3 prostego testu Dickeya-Fullera, jak pokazano:ut

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

Ten test zwraca wartość krytyczną, która doprowadziłaby mnie do odrzucenia hipotezy zerowej i wyciągnięcia wniosku, że podstawowy model jest niestacjonarny. Mam jednak pytanie, czy jestem stosowania tego poprawnie, ponieważ mimo, że podstawą model zakłada posiadanie przechwycić i trend czas, to nie oznacza, że pierwsza różnica będzie również. Wręcz przeciwnie, jeśli moja matematyka jest poprawna.yt

Obliczenie pierwszej różnicy na podstawie równania przyjętego modelu bazowego daje: yt=ytyt1=[a0+a1t+βyt-1+ut]-[za0+za1(t-1)+βyt-2)+ut-1]

yt=[a0a0]+[a1tat(t1)]+β[yt1yt2]+[utut1]

yt=za1+βyt-1+ut-ut-1

Dlatego też pierwsza różnica wydaje się mieć tylko przechwycić, a nie trend czasowy.yt

Myślę, że moje pytanie jest podobne do tego , ale nie jestem pewien, jak zastosować tę odpowiedź do mojego pytania.

Przykładowe dane:

Oto niektóre przykładowe dane dotyczące temperatury, z którymi pracuję.

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 
Ricardo Altamirano
źródło
1
Nie wiem, czy to, co zawiera ten link ( tamino.wordpress.com/2010/03/11/not-a-random-walk ), odpowiada na twoje pytanie, ale myślałem, że prawdopodobnie i tak cię to zainteresuje.
Matt Albrecht
@MattAlbrecht To bardzo interesujący link. Nadal jestem zdezorientowany, jak powinienem zastosować test Dickeya-Fullera do mojej oryginalnej serii czasowej. Próbowałem dodać bardziej istotne informacje w mojej ostatniej edycji.
Ricardo Altamirano
Przepraszam, że nie mogę udzielić lepszej odpowiedzi - nie jestem tym na topie mojej analizy szeregów czasowych. Jednak może Cię również zainteresować to pytanie, które zadałem ostatnio ( stats.stackexchange.com/questions/27748 ), które dotyczy również szeregów czasowych klimatu i zawiera ładną szczegółową analizę temperatury w stosunku do CO2 z serii czasowej pro. Może to pomóc innym, jeśli masz również dane, które możesz opublikować?
Matt Albrecht,
@MattAlbrecht Dodałem kilka przykładowych danych. Czy jest lepszy format, w którym mogę go włączyć?
Ricardo Altamirano

Odpowiedzi:

20

Musisz wziąć pod uwagę dryft i trend (parametryczny / liniowy) na poziomach szeregów czasowych, aby określić warunki deterministyczne w rozszerzonej regresji Dickeya-Fullera, która jest pod względem pierwszych różnic w szeregu czasowym. Zamieszanie wynika właśnie z wyprowadzenia równania pierwszych różnic w sposób, w jaki zrobiłeś.

(Rozszerzony) Model regresji Dickeya-Fullera

Załóżmy, że poziomy szeregu obejmują dryft i trend trendu Hipoteza zerowa niestacjonarności w tym przypadku wynosiłaby H 0

Yt=β0,l+β1,lt+β2),lYt-1+εt
.H.0:β2),l=1

Jedno równanie dla pierwszych różnic implikowanych przez ten proces generowania danych [DGP], jest tym, które otrzymałeś Jednak jest to a nie (wzmocniona) regresja Dickeya Fullera zastosowana w teście.

ΔYt=β1,l+β2),lΔYt-1+Δεt

Zamiast tego można uzyskać poprawną wersję, odejmując z obu stron pierwszego równania, co daje Δ Y tYt-1 Jestto (rozszerzona) regresja Dickeya-Fullera, a równoważną wersją zerowej hipotezy niestacjonarności jest testH0

ΔYt=β0,l+β1,lt+(β2),l-1)Yt-1+εtβ0,re+β1,ret+β2),reYt-1+εt
co jest tylko testem t wykorzystującym oszacowanie OLS β 2 , d w powyższej regresji. Zauważ, że dryf i trend przechodzą do tej specyfikacji bez zmian.H.0:β2),re=0β2),re

Dodatkowym punktem, na który należy zwrócić uwagę, jest to, że jeśli nie masz pewności co do obecności trendu liniowego na poziomach szeregów czasowych, możesz wspólnie przetestować trend liniowy i pierwiastek jednostkowy, to znaczy , który można przetestować za pomocą testu F z odpowiednimi wartościami krytycznymi. Te testy i wartości krytyczne są generowane przez funkcję Rwpakiecie.H.0:[β2),re,β1,l]=[0,0]ur.dfurca

Rozważmy szczegółowo kilka przykładów.

Przykłady

1. Korzystanie z amerykańskich serii inwestycyjnych

Pierwszy przykład wykorzystuje amerykańską serię inwestycji omówioną w Lutkepohl i Kratzig (2005, str. 9) . Fabuła serii i jej pierwsza różnica są podane poniżej.

wprowadź opis zdjęcia tutaj

ΔYt=β0,re+β2),reYt-1+jot=13)γjotΔYt-jot+εt
Zwróć uwagę na kluczowy punkt, w którym spojrzałem na poziomy, aby określić równanie regresji dla różnic.

Kod R, aby to zrobić, podano poniżej:

    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)

Wyniki wskazują, że hipotezę zerową niestacjonarności można odrzucić dla tej serii za pomocą testu t opartego na oszacowanym współczynniku. Łączny test F przecięcia i współczynnika nachylenia (H.:[β2),re,β0,l]=[0,0] ) również odrzuca hipotezę zerową, że w szeregu występuje pierwiastek jednostkowy.

2. Korzystanie z niemieckich (log) serii zużycia

Drugi przykład to wykorzystanie niemieckiego kwartalnego szeregu czasowego zużycia (log) zużycia. Fabuła serii i jej różnice podano poniżej.

wprowadź opis zdjęcia tutaj

ΔYt=β0,re+β1,ret+β2),reYt-1+jot=14γjotΔYt-jot+εt

Kod R, aby to zrobić, to

# 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)

Wyniki wskazują, że zerowej niestabilności nie można odrzucić za pomocą testu t opartego na oszacowanym współczynniku. Wspólny test F współczynnika trendu liniowego i współczynnika nachylenia (H.:[β2),re,β1,l]=[0,0] ) również wskazuje, że nie można odrzucić wartości zerowej niestacjonarności.

3. Wykorzystanie danych temperatury

Teraz możemy ocenić właściwości twoich danych. Typowe wykresy poziomów i pierwsze różnice podano poniżej.

wprowadź opis zdjęcia tutaj

Wskazują one, że twoje dane mają przechwytywanie i trend, dlatego wykonujemy test ADF (bez opóźnionych warunków pierwszej różnicy), używając następującego kodu R

# 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)

Wyniki zarówno testu t, jak i testu F wskazują, że zerową niestabilność można odrzucić dla serii temperatur. Mam nadzieję, że to trochę wyjaśnia sprawę.

tchakravarty
źródło
5
Jest to jedna z najczystszych i najbardziej pomocnych odpowiedzi, jakie otrzymałem w sieci Stack Exchange i naprawdę naprawia moje zamieszanie związane z testami DF. Dziękuję Ci.
Ricardo Altamirano
@RicardoAltamirano Nie ma za co. Cieszę się, że mogłem pomóc.
tchakravarty
2
Zgadzam się, że to bardzo dobra odpowiedź.
RAH,
0

Hipoteza zerowa w teście Dickeya-Fullera jest taka, że ​​w procesie występuje pierwiastek jednostkowy. Gdy więc odrzucisz wartość zerową, masz pewność, że Twój proces jest stacjonarny (z typowymi zastrzeżeniami dotyczącymi testowania hipotez).

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

ytytyt-1yt-1yt-1

mpiktas
źródło
0

Poprzednie odpowiedzi były doskonałe.

Zwykle decyzja o tym, który test wdrożyć, zależy od fabuły. W tym przypadku dane wydają się mieć przechwytywanie i trend.

Jeśli testujesz na poziomie root-unit, użyjesz modelu przechwytywania i trendu. Jeśli uruchomisz test różnic, użyjesz tylko modelu przechwytywania.

Właśnie odpowiedziałem na to pytanie, ponieważ muszę zalecić stosowanie testów sezonowych na tych danych. Te testy są naprawdę skomplikowane (praca z sezonowością nie jest łatwa). Jednak charakter danych (temperatura) i ponieważ na wykresie można zaobserwować pewne sezonowe zachowania. Następnie powinieneś zbadać test HEGY i wdrożyć go, jeśli chcesz, aby twoje oszacowania były wiarygodne.

egodialny
źródło