Interpretazione dei risultati di ur.df (Dickey-Fuller unit root test) di R


12

Sto eseguendo il seguente test radice dell'unità (Dickey-Fuller) su una serie storica usando la ur.df()funzione nel urcapacchetto.

Il comando è:

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

L'output è:

############################################### 
# 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. Cosa significano i codici di significatività (codici significativi)? Ho notato che alcuni di essi erano scritti contro: z.lag.1, z.diff.lag.2, z.diff.lag.3 (il codice di significato ".") E z.diff.lag.5 (il " ** "codice di significatività).

  2. L'output mi dà due (2) valori della statistica test: -1.7525 e 1.6091. So che la statistica del test ADF è la prima (ovvero -1.7525). Qual è il secondo allora?

  3. Infine, per testare l'ipotesi di radice unitaria al livello di significatività del 95%, ho bisogno di confrontare la mia statistica di test ADF (cioè -1.7525) con un valore critico, che normalmente ottengo da una tabella. L'output qui sembra darmi i valori critici. Tuttavia, la domanda è: quale valore critico tra "tau2" e "phi1" dovrei usare.

Grazie per la vostra risposta.


1 - i codici signif dovrebbero essere chiari ... il ritardo ha una doppia stella quindi è p = 0,01 2- quelli testano diversi H0: "nessuno" o "deriva" o "tendenza" 3- valori critici, ancora una volta, dipende dalla stessa quale H0 vuoi prendere in considerazione
joint_p

@joint_p Mi dispiace, ma sono solo un principiante. Le tue risposte sono state molto chiare. Potresti per favore approfondire di più quello che hai detto? Lo apprezzerei molto. Grazie.
Salvato da GESÙ

amazon.com/Analysis-Integrated-Cointegr--Time-Use/dp/… questo è un ottimo libro, ero solito studiare con esso
joint_p

Risposte:


17

Sembra che i creatori di questo particolare comando R presumano che si abbia familiarità con le formule Dickey-Fuller originali, quindi non ha fornito la documentazione pertinente per come interpretare i valori. Ho scoperto che Enders era una risorsa incredibilmente utile (Applied Econometric Time Series 3e, 2010, p. 206-209 - Immagino che anche altre edizioni vadano bene). Di seguito userò i dati del pacchetto URCA, entrate reali in Danimarca come esempio.

> income <- ts(denmark$LRY)

Potrebbe essere utile per prima cosa descrivere le 3 diverse formule utilizzate da Dickey-Fuller per ottenere diverse ipotesi, poiché queste corrispondono alle opzioni "type" di ur.df. Enders specifica che in tutti questi 3 casi, il termine coerente utilizzato è gamma, il coefficiente per il valore precedente di y, il termine di ritardo. Se gamma = 0, allora c'è una radice unitaria (camminata casuale, non stazionaria). Dove l'ipotesi nulla è gamma = 0, se p <0,05, quindi rifiutiamo il valore null (al livello del 95%) e presumiamo che non vi sia radice unitaria. Se non riusciamo a respingere il valore nullo (p> 0,05), supponiamo che esista una radice unitaria. Da qui, possiamo procedere all'interpretazione di tau e phi.

1) type = "none": (formula di Enders p. 208)Δy(t)=γy(t1)+e(t)

(dove è il termine di errore, presunto essere rumore bianco; da ; riferisce al precedente valore di y, quindi è il termine di ritardo)e(t)γ=a1y=ay(t1)+e(t)y(t1)

Per type = "none", tau (o tau1 nell'output R) è l'ipotesi nulla per gamma = 0. Usando l'esempio del reddito danese, ottengo "Il valore della statistica test è 0,7944" e i "Valori critici per le statistiche test sono : tau1 -2,6 -1,95 -1,61. Dato che la statistica del test è all'interno di tutte e 3 le regioni (1%, 5%, 10%) in cui non riusciamo a respingere il valore nullo, dovremmo presumere che i dati siano una camminata casuale, ovvero che è presente una radice unitaria. In questo caso, tau1 si riferisce all'ipotesi gamma = 0. "z.lag1" è il termine gamma, il coefficiente per il termine di ritardo (y (t-1)), che è p = 0.431, che non rifiutiamo come significativo, semplicemente implicando che la gamma non è statisticamente significativa per questo modello. Ecco l'output di 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

2) type = "drift" (la tua domanda specifica sopra):: (formula di Enders p. 208)Δy(t)=un'0+γ*y(t-1)+e(t)

(dove a0 è "un sotto-zero" e si riferisce al termine costante o alla deriva) Qui è dove l'interpretazione dell'output diventa più complicata. "tau2" è ancora l' ipotesi nulla . In questo caso, dove la prima statistica test = -1.4462 è all'interno della regione in cui non si rifiuta il valore nullo, dovremmo presumere di nuovo una radice unitaria, che .γ=0γ=0
Il termine phi1 si riferisce alla seconda ipotesi, che è un'ipotesi nulla combinata di a0 = gamma = 0. Ciò significa che ENTRAMBI i valori sono testati per essere 0 contemporaneamente. Se p <0,05, rifiutiamo il valore nullo e presumiamo che ALMENO uno di questi sia falso, ovvero uno o entrambi i termini a0 o gamma non sono 0. Il mancato rifiuto di questo null implica che ENTRAMBE a0 E gamma = 0, sottintendendo 1) che gamma = 0 quindi è presente una radice unitaria, E 2) a0 = 0, quindi non esiste un termine di deriva. Ecco l'uscita 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

3) Infine, per type = "trend": (formula di Enders p. 208)Δy(t)=un'0+gun'mmun'*y(t-1)+un'2(t)+e(t)

(dove a2 (t) è un termine di tendenza temporale) Le ipotesi (da Enders p. 208) sono le seguenti: tau: gamma = 0 phi3: gamma = a2 = 0 phi2: a0 = gamma = a2 = 0 Questo è simile a l'uscita R. In questo caso, le statistiche del test sono -2.4216 2.1927 2.9343 In tutti questi casi, queste rientrano nelle zone "non riescono a respingere il valore nullo" (vedere i valori critici di seguito). Ciò che tau3 implica, come sopra, è che non riusciamo a respingere il valore nullo dell'unità radice, implicando che è presente un'unità radice. Non riuscire a rifiutare phi3 implica due cose: 1) gamma = 0 (unità radice) E 2) non esiste un termine di tendenza temporale, ovvero a2 = 0. Se rifiutassimo questo nullo, ciò implicherebbe che uno o entrambi questi termini non erano 0. Il mancato rifiuto di phi2 implica 3 cose: 1) gamma = 0 E 2) nessun termine di tendenza temporale E 3) nessun termine di deriva, cioè quel gamma = 0, che a0 = 0 e che a2 = 0.
Ecco l'uscita 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

Nel tuo esempio specifico sopra, per i dati di d.Aus, poiché entrambe le statistiche di test sono all'interno della zona "non si rifiuta", implica che gamma = 0 AND a0 = 0, nel senso che esiste una radice unitaria, ma nessun termine alla deriva.


@ Jeremy, nella tua risposta dettagliata parte 3 (con tendenza) hai menzionato "In questo caso, le statistiche del test sono -2.4216 2.1927 2.9343. In tutti questi casi, queste rientrano nelle zone" non riescono a rifiutare il nulla "(vedi critico valori sotto). " La mia domanda è se 2.1927 è la statistica di test per phi2, dovrebbe essere verificato rispetto a phi2 6.50 4.88 4.16? E se questo è corretto, qual è la condizione per accettare il phi2 H0 (unità radice senza tendenza e deriva)?
Saraz,

5

Come già sottolineato congiuntamente, i codici di significatività sono abbastanza standard e corrispondono a valori di p, cioè alla significatività statistica di un test di ipotesi. un valore p di 0,01 indica che la conclusione è vera con una confidenza del 99%.

L'articolo di Wikipedia su Dickey-Fuller descrive le tre versioni del test Dickey-Fuller: "radice dell'unità", "radice dell'unità con deriva" e "radice dell'unità con deriva e tendenza temporale deterministica", o cosa viene indicato nel urcadocumentazione come type = "none", "drift" e "trend", rispettivamente.

Ognuno di questi test è una regressione lineare progressivamente più complessa. In tutti loro c'è la radice, ma nella deriva c'è anche un coefficiente di deriva e nella tendenza c'è anche un coefficiente di tendenza. Ognuno di questi coefficienti ha un livello di significatività associato. Mentre il significato del coefficiente di radice è il più importante e il focus principale del test DF, potremmo anche essere interessati a sapere se anche la tendenza / deriva è statisticamente significativa. Dopo aver armeggiato con le diverse modalità e aver visto quali coefficienti compaiono / scompaiono nei test t, sono stato in grado di identificare facilmente quale coefficiente corrispondeva a quale test t.

Possono essere scritti come segue (dalla pagina wiki):

(unità radice)Δyt=δyt-1+ut

(con deriva)Δyt=δyt-1+un'0+ut

(con tendenza)Δyt=δyt-1+un'0+un'1t+ut

Nel tuo caso, "tau2" corrisponde a , mentre "phi1" corrisponde a . Vedrai anche un terzo coefficiente apparire nel test "trend", che corrisponderebbe a a nella terza equazione sopra. Tuttavia, i nomi delle variabili cambieranno quando si passa a "trend", quindi fai attenzione e assicurati di fare questo armeggiare te stesso per controllare. Credo nella modalità "trend", "tau3" corrisponde a , "phi2" corrisponde a a e "phi3" corrisponde a a .a 0 a 1 δ a 0 a 1δun'0un'1δun'0un'1


1

Riepilogo dei test Fuller Dickey

Maggiori informazioni nelle note di lezione di Roger Perman sui test di radice dell'unità

Vedere anche la tabella 4.2 in Enders, Applied Econometric Time Series (4e), che sintetizza le diverse ipotesi a cui si riferiscono queste statistiche di test. Il contenuto è d'accordo con l'immagine fornita sopra.


1

Ho trovato la risposta di Jeramy abbastanza facile da seguire, ma mi sono costantemente trovata a provare a percorrere correttamente la logica ea fare errori. Ho codificato una funzione R che interpreta ciascuno dei tre tipi di modelli e avvisa se ci sono incoerenze o risultati inconcludenti (non penso che ci dovrebbero mai essere incoerenze se capisco correttamente la matematica dell'ADF, ma ho pensato ancora bene verificare se la funzione ur.df presenta difetti).

Per favore dai un'occhiata. Felice di prendere commenti / correzioni / miglioramenti.

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


La tua funzione sembra essere stata realizzata con molti sforzi; tuttavia, aggiungere un esempio riproducibile sarebbe utile. Potresti voler scegliere una serie temporale (forse una già disponibile in R o in un pacchetto) eseguire il test dickey fuller su di essa e quindi utilizzare la tua funzione solo per le persone interessate per vedere cosa fa.
Salvato da GESÙ il

0

post e risposte molto interessanti. Ho solo un dubbio rispetto alla tabella spiegata dall'utente3096626. Quale software riporta nel test ADF l'output dei valori di \tau_{\alpha \mu}, \tau_{\alpha \tau}e \tau_{\beta \tau}? Ovviamente, R no


-4

phi1 phi2 phi3 sono equivalenti ai test F nel quadro ADF


4
Puoi espandere un po 'questa risposta? Al momento è un po 'enigmatico. Perché dovrebbero essere equivalenti?
Andy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.