Interpretacja wyników ur.df R (test na pierwiastek Dickeya-Fullera)

12

Korzystam z następującego testu root root (Dickey-Fuller) na szeregu czasowym, używając ur.df()funkcji w urcapakiecie.

Polecenie to:

summary(ur.df(d.Aus, type = "drift", 6))

Dane wyjściowe to:

############################################### 
# 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
  1. Co oznaczają kody istotności (kody znaczące)? Zauważyłem, że niektóre z nich zostały napisane przeciwko: z.lag.1, z.diff.lag.2, z.diff.lag.3 (kod znaczenia „.”) I z.diff.lag.5 („ ** „kod istotności).

  2. Dane wyjściowe dają mi dwie (2) wartości statystyki testowej: -1,7525 i 1,6091. Wiem, że statystyki testu ADF są pierwsze (tj. -1,7525). Jaki jest zatem drugi?

  3. Wreszcie, aby przetestować hipotezę o pierwiastku jednostkowym na poziomie istotności 95%, muszę porównać moją statystykę testową ADF (tj. -1,7525) z wartością krytyczną, którą normalnie otrzymuję z tabeli. Wydaje się, że dane wyjściowe przekazują mi krytyczne wartości. Pytanie jednak brzmi: jaką wartość krytyczną między „tau2” a „phi1” powinienem użyć.

Dziękuję za odpowiedź.

SavedByJESUS
źródło
1 - kody znaczące powinny być wyraźne ... lag ma podwójną gwiazdkę, więc jest p = 0,01 2- testują różne H0: „brak” lub „dryf” lub „trend” 3- wartości krytyczne, znowu to samo zależy od który H0 chcesz wziąć pod uwagę
joint_p
@joint_p Przykro mi, ale jestem dopiero początkujący. Twoje odpowiedzi były bardzo proste. Czy mógłbyś bardziej szczegółowo rozwinąć to, co powiedziałeś? Byłbym bardzo wdzięczny. Dziękuję Ci.
SavedByJESUS
amazon.com/Analysis-Integrated-Cointegrated-Time-Use/dp/… jest to bardzo dobra książka, którą kiedyś studiowałem
joint_p

Odpowiedzi:

17

Wygląda na to, że twórcy tego konkretnego polecenia R zakładają, że znają oryginalne formuły Dickeya-Fullera, więc nie dostarczyli odpowiedniej dokumentacji dotyczącej interpretacji wartości. Przekonałem się, że Enders był niezwykle pomocnym źródłem (Applied Econometric Time Series 3e, 2010, s. 206-209 - Myślę, że inne edycje też byłyby w porządku). Poniżej wykorzystam dane z pakietu URCA, na przykład rzeczywisty dochód w Danii.

> income <- ts(denmark$LRY)

Przydałoby się najpierw opisać 3 różne formuły zastosowane przez Dickeya-Fullera do uzyskania różnych hipotez, ponieważ pasują one do opcji „typ” ur.df. Enders określa, że ​​we wszystkich tych 3 przypadkach zastosowanym spójnym terminem jest gamma, współczynnik dla poprzedniej wartości y, termin opóźnienia. Jeśli gamma = 0, oznacza to pierwiastek jednostkowy (chodzenie losowe, niestacjonarne). Gdy hipoteza zerowa wynosi gamma = 0, jeśli p <0,05, to odrzucamy zerową (na poziomie 95%) i zakładamy, że nie ma pierwiastka podstawowego. Jeśli nie odrzucimy wartości zerowej (p> 0,05), zakładamy, że istnieje root jednostek. Stąd możemy przystąpić do interpretacji tau i phi.

Δy(t)=γy(t-1)+mi(t)

mi(t)γ=za-1y=zay(t-1)+mi(t)y(t-1)

Dla typu = „brak” tau (lub tau1 w danych wyjściowych R) jest hipotezą zerową dla gamma = 0. Na przykładzie dochodu z Danii otrzymuję „Wartość statystyki testowej wynosi 0,7944”, a „Wartości krytyczne dla statystyki testowej są : tau1 -2,6 -1,95 -1,61 Biorąc pod uwagę, że statystyki testowe mieszczą się we wszystkich 3 regionach (1%, 5%, 10%), w których nie odrzucamy wartości zerowej, powinniśmy założyć, że dane są losowym spacerem, tzn. że pierwiastek jest obecny. W tym przypadku tau1 odnosi się do hipotezy gamma = 0. „z.lag1” jest składnikiem gamma, współczynnikiem dla opóźnienia (y (t-1)), który wynosi p = 0,431, którego nie odrzucamy jako znaczące, po prostu sugerując, że gamma nie jest statystycznie znacząca dla tego modelu. Oto wynik z R

> summary(ur.df(y=income, type = "none",lags=1))
> 
> ############################################### 
> # Augmented Dickey-Fuller Test Unit Root Test # 
> ############################################### 
> 
> Test regression none 
> 
> 
> Call:
> lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
> 
> Residuals:
>       Min        1Q    Median        3Q       Max 
> -0.044067 -0.016747 -0.006596  0.010305  0.085688 
> 
> Coefficients:
>             Estimate Std. Error t value Pr(>|t|)
> z.lag.1    0.0004636  0.0005836   0.794    0.431
> z.diff.lag 0.1724315  0.1362615   1.265    0.211
> 
> Residual standard error: 0.0251 on 51 degrees of freedom
> Multiple R-squared:  0.04696,   Adjusted R-squared:  0.009589 
> F-statistic: 1.257 on 2 and 51 DF,  p-value: 0.2933
> 
> 
> Value of test-statistic is: 0.7944 
> 
> Critical values for test statistics: 
>      1pct  5pct 10pct
> tau1 -2.6 -1.95 -1.61

Δy(t)=za0+γy(t-1)+mi(t)

γ=0γ=0
Termin phi1 odnosi się do drugiej hipotezy, która jest połączoną hipotezą zerową a0 = gamma = 0. Oznacza to, że OBA wartości są testowane jednocześnie na 0. Jeśli p <0,05, odrzucamy zero i zakładamy, że PRZYMNIEJ jeden z nich jest fałszywy - tj. Jeden lub oba terminy a0 lub gamma nie są równe 0. Brak odrzucenia tego null oznacza, że ​​ZARÓWNO a0 ORAZ gamma = 0, sugerując 1), że gamma = 0, dlatego występuje pierwiastek jednostkowy, ORAZ 2) a0 = 0, więc nie ma terminu znoszenia. Oto wyjście R.

> summary(ur.df(y=income, type = "drift",lags=1))
> 
> ############################################### 
> # 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.041910 -0.016484 -0.006994  0.013651  0.074920 
> 
> Coefficients:
>             Estimate Std. Error t value Pr(>|t|)
> (Intercept)  0.43453    0.28995   1.499    0.140
> z.lag.1     -0.07256    0.04873  -1.489    0.143
> z.diff.lag   0.22028    0.13836   1.592    0.118
> 
> Residual standard error: 0.0248 on 50 degrees of freedom
> Multiple R-squared:  0.07166,   Adjusted R-squared:  0.03452 
> F-statistic:  1.93 on 2 and 50 DF,  p-value: 0.1559
> 
> 
> Value of test-statistic is: -1.4891 1.4462 
> 
> Critical values for test statistics: 
>       1pct  5pct 10pct
> tau2 -3.51 -2.89 -2.58
> phi1  6.70  4.71  3.86

Δy(t)=za0+solzammzay(t-1)+za2)(t)+mi(t)

(gdzie a2 (t) jest terminem trendu czasowego) Hipotezy (z Enders p. 208) są następujące: tau: gamma = 0 phi3: gamma = a2 = 0 phi2: a0 = gamma = a2 = 0 Jest to podobne do wyjście R. W tym przypadku statystyki testowe wynoszą -2,4216 2,1927 2,9343 We wszystkich tych przypadkach mieszczą się one w strefach „nie odrzucenia zerowej” (patrz wartości krytyczne poniżej). To, co sugeruje tau3, jak powyżej, to to, że nie odrzucamy zerowej wartości root jednostki, co sugeruje, że root jednostki jest obecny. Brak odrzucenia phi3 implikuje dwie rzeczy: 1) gamma = 0 (root root) ORAZ 2) nie ma terminu trendu czasowego, tj. A2 = 0. Gdybyśmy odrzucili to zero, oznaczałoby to, że jeden lub oba z tych warunków nie były równe 0. Brak odrzucenia phi2 implikuje 3 rzeczy: 1) gamma = 0 ORAZ 2) brak wyrażenia trendu czasowego ORAZ 3) brak wyrażenia dryfującego, tj. = 0, że a0 = 0 i że a2 = 0.
Oto wyjście R.

> summary(ur.df(y=income, type = "trend",lags=1))
> 
> ############################################### 
> # Augmented Dickey-Fuller Test Unit Root Test # 
> ############################################### 
> 
> Test regression trend 
> 
> 
> Call:
> lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
> 
> Residuals:
>       Min        1Q    Median        3Q       Max 
> -0.036693 -0.016457 -0.000435  0.014344  0.074299 
> 
> Coefficients:
>               Estimate Std. Error t value Pr(>|t|)  
> (Intercept)  1.0369478  0.4272693   2.427   0.0190 *
> z.lag.1     -0.1767666  0.0729961  -2.422   0.0192 *
> tt           0.0006299  0.0003348   1.881   0.0659 .
> z.diff.lag   0.2557788  0.1362896   1.877   0.0665 .
> ---
> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> 
> Residual standard error: 0.02419 on 49 degrees of freedom
> Multiple R-squared:  0.1342,    Adjusted R-squared:  0.08117 
> F-statistic: 2.531 on 3 and 49 DF,  p-value: 0.06785
> 
> 
> Value of test-statistic is: -2.4216 2.1927 2.9343 
> 
> Critical values for test statistics: 
>       1pct  5pct 10pct
> tau3 -4.04 -3.45 -3.15
> phi2  6.50  4.88  4.16
> phi3  8.73  6.49  5.47

W powyższym konkretnym przykładzie dla danych d.Aus, ponieważ obie statystyki testowe znajdują się w strefie „nie odrzucenia”, oznacza to, że gamma = 0 ORAZ a0 = 0, co oznacza, że ​​istnieje podstawowa jednostka, ale brak terminu znoszenia.

Jeramy Townley
źródło
@ Jeremy, w szczegółowej odpowiedzi, część 3 (z trendem) wspomniałeś: „W tym przypadku statystyki testowe wynoszą -2,4216 2,1927 2,9343. We wszystkich tych przypadkach mieszczą się one w strefach„ nie odrzucenia zerowej ”(patrz: krytyczne wartości poniżej). ” Moje pytanie brzmi: czy 2.1927 jest statystyką testową dla phi2, czy należy to porównać z phi2 6,50 4,88 4,16? A jeśli jest to poprawne, jaki jest warunek przyjęcia phi2 H0 (root root bez trendu i dryfu)?
Saraz
5

Jak już wskazano w połączeniu p, kody istotności są dość standardowe i odpowiadają wartościom p, tj. Istotności statystycznej testu hipotez. Wartość p wynosząca 0,01 oznacza, że ​​wniosek jest prawdziwy w granicach 99% pewności.

Artykuł w Wikipedii na temat Dickeya-Fullera opisuje trzy wersje testu Dickeya-Fullera: „pierwiastek jednostkowy”, „pierwiastek jednostkowy ze znoszeniem” i „pierwiastek jednostkowy ze znoszeniem i trendem deterministycznym”, lub to, o czym jest mowa w urcadokumentacja jako odpowiednio typ = „brak”, „dryf” i „trend”.

Każdy z tych testów jest coraz bardziej złożoną regresją liniową. We wszystkich znajduje się pierwiastek, ale w dryfie występuje również współczynnik dryftu, a w trendzie występuje również współczynnik trendu. Każdy z tych współczynników ma powiązany poziom istotności. Chociaż znaczenie współczynnika pierwiastka jest najważniejsze i jest głównym celem testu DF, możemy być również zainteresowani tym, czy trend / dryf jest statystycznie istotny. Po majstrowaniu przy różnych trybach i sprawdzaniu, które współczynniki pojawiają się / znikają w testach t, ​​byłem w stanie łatwo zidentyfikować, który współczynnik odpowiada testowi t.

Można je zapisać w następujący sposób (ze strony wiki):

Δyt=δyt-1+ut

Δyt=δyt-1+za0+ut

Δyt=δyt-1+za0+za1t+ut

δza0za1δza0za1

Paweł
źródło
2

Uznałem, że odpowiedź Jeramy'ego jest dość łatwa do naśladowania, ale ciągle próbuję poprawnie przejść przez logikę i popełniać błędy. Kodowałem funkcję R, która interpretuje każdy z trzech typów modeli i ostrzega, jeśli występują niespójności lub niejednoznaczne wyniki (nie sądzę, aby kiedykolwiek istniały niespójności, jeśli dobrze rozumiem matematykę ADF, ale nadal uważałem sprawdź, czy funkcja ur.df ma jakieś wady).

Proszę spojrzeć. Chętnie przyjmę komentarze / poprawki / ulepszenia.

https://gist.github.com/hankroark/968fc28b767f1e43b5a33b151b771bf9

Hank Roark
źródło
Twoja funkcja wygląda na to, że została wykonana przy wielu wysiłkach; pomocne byłoby jednak dodanie do niej odtwarzalnego przykładu. Możesz wybrać szereg czasowy (być może już dostępny w R lub w pakiecie), uruchom na nim test dickey fullera, a następnie użyj swojej funkcji tylko dla zainteresowanych osób, aby zobaczyć, co robi.
SavedByJESUS
Powtarzalny przykładinterp_urdf(urdf = ur.df(mtcars$mpg, type = "drift"))
MSD
1

Podsumowanie testów Dickeya Fullera

Więcej informacji w notatkach z wykładów Rogera Permana na temat testów root root

Patrz także tabela 4.2 w Enders, Applied Econometric Time Series (4e), która podsumowuje różne hipotezy, do których odnoszą się te statystyki testowe. Treść zgadza się z obrazem podanym powyżej.

użytkownik3096626
źródło
0

bardzo ciekawy post i odpowiedzi. Mam tylko wątpliwości dotyczące tabeli objaśnionej przez user3096626. Które oprogramowanie raportuje w teście ADF generuje wartości \tau_{\alpha \mu}, \tau_{\alpha \tau}i \tau_{\beta \tau}? Oczywiście R nie

Yon Cubas
źródło
-4

phi1 phi2 phi3 są równoważne testom F w ramach ADF

Aleh
źródło
4
Czy możesz trochę rozwinąć tę odpowiedź? W tej chwili jest to nieco tajemnicze. Dlaczego powinny być równoważne?
Andy,