Interpretando os resultados ur.df de R (teste da raiz da unidade Dickey-Fuller)

12

Estou executando o seguinte teste de raiz unitária (Dickey-Fuller) em uma série temporal usando a ur.df()função no urcapacote.

O comando é:

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

A saída é:

############################################### 
# 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. O que significam os códigos de significância (códigos de significação)? Notei que alguns deles foram escritos contra: z.lag.1, z.diff.lag.2, z.diff.lag.3 (o código de significado ".") E z.diff.lag.5 (o " ** "código de significância).

  2. A saída fornece dois (2) valores da estatística de teste: -1,7525 e 1,6091. Eu sei que a estatística do teste do ADF é a primeira (ou seja, -1,7525). Qual é o segundo então?

  3. Por fim, para testar a hipótese de raiz unitária no nível de significância de 95%, preciso comparar minha estatística de teste do ADF (ou seja, -1,7525) com um valor crítico, que normalmente recebo de uma tabela. A saída aqui parece me dar os valores críticos. No entanto, a questão é: qual valor crítico entre "tau2" e "phi1" devo usar.

Obrigado pela sua resposta.

SavedByJESUS
fonte
1 - os códigos de significado devem estar claros ... lag tem estrela dupla, portanto é p = 0,01 2- aqueles testam diferentes H0s: "nenhum" ou "desvio" ou "tendência" 3- valores críticos, novamente, a mesma coisa, depende de qual H0 você deseja considerar
joint_p
@joint_p Sinto muito, mas sou apenas iniciante. Suas respostas foram muito diretas. Você poderia, por favor, elaborar mais sobre o que disse? Eu realmente apreciaria isto. Obrigado.
usar o seguinte código
amazon.com/Analysis-Integrated-Cointegrated-Time-Use/dp/… este é um livro muito bom, eu costumava estudar com ele #
1146

Respostas:

17

Parece que os criadores deste comando R em particular presumem que alguém esteja familiarizado com as fórmulas originais de Dickey-Fuller, portanto, não forneceu a documentação relevante sobre como interpretar os valores. Descobri que Enders era um recurso incrivelmente útil (Applied Econometric Time Series 3e, 2010, p. 206-209 - imagino que outras edições também fariam bem). Abaixo, usarei dados do pacote URCA, receita real na Dinamarca como exemplo.

> income <- ts(denmark$LRY)

Pode ser útil primeiro descrever as três fórmulas diferentes que Dickey-Fuller usou para obter hipóteses diferentes, uma vez que elas correspondem às opções de "tipo" ur.df. Enders especifica que, em todos esses três casos, o termo consistente usado é gama, o coeficiente para o valor anterior de y, o termo de atraso. Se gama = 0, existe uma raiz da unidade (passeio aleatório, não estacionário). Onde a hipótese nula é gama = 0, se p <0,05, rejeitamos o nulo (no nível de 95%) e presumimos que não há raiz unitária. Se falharmos em rejeitar o nulo (p> 0,05), presumimos que exista uma raiz unitária. A partir daqui, podemos proceder à interpretação dos tau e phi.

1) tipo = "nenhum": (fórmula de Enders p. 208)Δy(t)=γy(t1)+e(t)

(onde é o termo do erro, presumivelmente ruído branco; de ; refere-se ao anterior valor de y, o mesmo ocorre com o atraso)e(t)γ=a1y=ay(t1)+e(t)y(t1)

Para o tipo = "none", tau (ou tau1 na saída R) é a hipótese nula para gama = 0. Usando o exemplo de renda da Dinamarca, recebo "O valor da estatística de teste é 0,7944" e os "Valores críticos para estatísticas de teste são : tau1 -2,6 -1,95 -1,61 Dado que a estatística do teste está dentro das 3 regiões (1%, 5%, 10%) onde falhamos em rejeitar o nulo, devemos presumir que os dados são uma caminhada aleatória, ou seja, que uma raiz unitária está presente.Neste caso, o tau1 refere-se à hipótese gama = 0. O "z.lag1" é o termo gama, o coeficiente para o termo de atraso (y (t-1)), que é p = 0,431, que falhamos em rejeitar como significantes, simplesmente implicando que a gama não é estatisticamente significante para este modelo. Aqui está a saída de 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" (sua pergunta específica acima):: (fórmula de Enders p. 208)Δy(t)=a0+γy(t1)+e(t)

(onde a0 é "um sub-zero" e se refere ao termo constante ou à deriva) Aqui é onde a interpretação da saída fica mais complicada. "tau2" ainda é a hipótese nula . Nesse caso, onde a primeira estatística de teste = -1,4462 está dentro da região de falha em rejeitar o nulo, devemos novamente presumir uma raiz de unidade, que .γ=0γ=0
O termo phi1 refere-se à segunda hipótese, que é uma hipótese nula combinada de a0 = gama = 0. Isso significa que AMBOS os valores são testados para serem 0 ao mesmo tempo. Se p <0,05, rejeitamos o nulo e presumimos que PELO MENOS um deles seja falso - ou seja, um ou ambos os termos a0 ou gama não são 0. A falha em rejeitar esse nulo implica que AMBOS a0 E gama = 0, implicando 1) que gama = 0, portanto, uma raiz unitária está presente, E 2) a0 = 0, portanto, não há termo de deriva. Aqui está a saída 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) Finalmente, para o tipo = "tendência": (fórmula de Enders p. 208)Δy(t)=a0+gammay(t1)+a2(t)+e(t)

(onde a2 (t) é um termo de tendência temporal) As hipóteses (de Enders p. 208) são as seguintes: tau: gama = 0 phi3: gama = a2 = 0 phi2: a0 = gama = a2 = 0 Isso é semelhante a a saída R. Nesse caso, as estatísticas de teste são -2,4216 2,1927 2,9343 Em todos esses casos, elas se enquadram nas zonas "falha em rejeitar o nulo" (consulte os valores críticos abaixo). O que tau3 implica, como acima, é que falhamos em rejeitar o nulo da raiz unitária, o que implica que uma raiz unitária está presente. Não rejeitar o phi3 implica duas coisas: 1) gama = 0 (raiz da unidade) E 2) não há termo de tendência temporal, ou seja, a2 = 0. Se rejeitarmos esse nulo, isso implicaria que um ou ambos os termos não fossem 0. A falha em rejeitar phi2 implica 3 coisas: 1) gama = 0 e 2) sem tendência de tempo AND 3) sem tendência à deriva, ou seja, gama = 0, que a0 = 0 e que a2 = 0.
Aqui está a saída 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

No seu exemplo específico acima, para os dados d.Aus, como as duas estatísticas de teste estão dentro da zona "falha ao rejeitar", isso implica que gama = 0 AND a0 = 0, significando que há uma raiz de unidade, mas sem termo à deriva.

Jeramy Townley
fonte
@ Jeremy, em sua resposta detalhada, parte 3 (com tendência), você mencionou "Nesse caso, as estatísticas de teste são -2,4216 2,1927 2,9343. Em todos esses casos, elas se enquadram nas zonas" falha em rejeitar a nula "(consulte a seção crítica). valores abaixo) ". Minha pergunta é se 2.1927 é uma estatística de teste para phi2, deveria ser comparada com phi2 6.50 4.88 4.16? E se isso estiver correto, qual é a condição para aceitar o phi2 H0 (raiz unitária sem tendência e deriva)?
Saraz
5

Como a junta-p já apontou, os códigos de significância são razoavelmente padrão e correspondem aos valores de p, ou seja, a significância estatística de um teste de hipótese. um valor p de 0,01 significa que a conclusão é verdadeira com 99% de confiança.

O artigo da Wikipedia sobre Dickey-Fuller descreve as três versões do teste Dickey-Fuller: "raiz da unidade", "raiz da unidade com desvio" e "raiz da unidade com desvio e tendência temporal determinística" ou o que é referido no urcadocumentação como type = "none", "drift" e "trend", respectivamente.

Cada um desses testes é uma regressão linear progressivamente mais complexa. Em todas elas existe a raiz, mas na deriva também há um coeficiente de deriva, e na tendência também há um coeficiente de tendência. Cada um desses coeficientes tem um nível de significância associado. Embora a significância do coeficiente de raiz seja o mais importante e o foco principal do teste de DF, também podemos estar interessados ​​em saber se a tendência / deriva também é estatisticamente significativa. Depois de mexer nos diferentes modos e ver quais coeficientes aparecem / desaparecem nos testes t, pude identificar facilmente qual coeficiente correspondia a qual teste t.

Eles podem ser escritos da seguinte forma (da página da wiki):

(raiz da unidade)Δyt=δyt1+ut

(com desvio)Δyt=δyt1+a0+ut

(com tendência)Δyt=δyt1+a0+a1t+ut

No seu caso, "tau2" corresponde a , enquanto "phi1" corresponde a . Você também verá um terceiro coeficiente aparecer no teste "tendência", o que corresponderia a na terceira equação acima. No entanto, os nomes das variáveis ​​serão alterados quando você alternar para "tendência", portanto, tenha cuidado e certifique-se de fazer isso para verificar. Eu acredito no modo "tendência", "tau3" corresponde a , "phi2" corresponde a e "phi3" corresponde a .a 0 a 1 δ a 0 a 1δa0a1δa0a1

Paulo
fonte
1

Resumo dos testes Dickey Fuller

Mais informações nas notas da aula de Roger Perman sobre testes de raiz unitária

Veja também a tabela 4.2 em Enders, Série Econômica Econômica Aplicada (4e), que resume as diferentes hipóteses às quais essas estatísticas de teste se referem. O conteúdo concorda com a imagem fornecida acima.

user3096626
fonte
1

Achei a resposta de Jeramy bastante fácil de seguir, mas constantemente me vi tentando atravessar a lógica corretamente e cometendo erros. Codifiquei uma função R que interpreta cada um dos três tipos de modelos e emite avisos se houver inconsistências ou resultados inconclusivos (acho que nunca haverá inconsistências se eu entender a matemática do ADF corretamente, mas ainda acho uma boa verifique se a função ur.df tem algum defeito).

Por favor dê uma olhada. É um prazer receber comentários / correção / melhorias.

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

Hank Roark
fonte
Sua função parece ter sido feita com muito esforço; no entanto, adicionar um exemplo reproduzível a ele seria útil. Você pode escolher uma série temporal (talvez uma já disponível no R ou em um pacote) execute o teste completo da dickey e use sua função apenas para as pessoas interessadas verem o que ela faz.
SavedByJESUS
0

post e respostas muito interessantes. Só tenho uma dúvida em relação à tabela explicada pelo usuário3096626. Quais relatórios de software no teste do ADF produzem os valores de \tau_{\alpha \mu}, \tau_{\alpha \tau}e \tau_{\beta \tau}? Obviamente, R não

Yon Cubas
fonte
-4

phi1 phi2 phi3 são equivalentes aos testes F na estrutura do ADF

Aleh
fonte
4
Você pode expandir um pouco essa resposta? No momento, é um tanto enigmático. Por que estes deveriam ser equivalentes?
Andy Andy