Interprétation des résultats ur.df de R (test de racine unitaire Dickey-Fuller)


12

J'exécute le test de racine unitaire suivant (Dickey-Fuller) sur une série chronologique en utilisant la ur.df()fonction dans le urcapackage.

La commande est:

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

La sortie est:

############################################### 
# 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. Que signifient les codes de signification (codes significatifs)? J'ai remarqué que certains d'entre eux étaient écrits contre: z.lag.1, z.diff.lag.2, z.diff.lag.3 (le code de signification ".") Et z.diff.lag.5 (le " ** "code de signification).

  2. La sortie me donne deux (2) valeurs de statistiques de test: -1,7525 et 1,6091. Je sais que la statistique de test ADF est la première (c'est-à-dire -1,7525). Quel est donc le deuxième?

  3. Enfin, afin de tester l'hypothèse de racine unitaire au niveau de signification de 95%, je dois comparer ma statistique de test ADF (c'est-à-dire -1,7525) à une valeur critique, que j'obtiens normalement à partir d'un tableau. La sortie ici semble me donner les valeurs critiques à travers. Cependant, la question est: quelle valeur critique entre "tau2" et "phi1" dois-je utiliser.

Merci pour votre réponse.


1 - les codes signifiants doivent être clairs ... le décalage a une double étoile, donc il est p = 0,01 2- ces tests différents H0: "aucun" ou "dérive" ou "tendance" 3- les valeurs critiques, encore une fois, la même chose, dépend de quel H0 vous souhaitez considérer
joint_p

@joint_p Je suis désolé, mais je ne suis qu'un débutant. Vos réponses ont été très simples. Pourriez-vous développer davantage ce que vous avez dit? J'apprécierai vraiment cela. Je vous remercie.
SavedByJESUS

amazon.com/Analysis-Integrated-Cointegrated-Time-Use/dp/… c'est un très bon livre, j'ai l'habitude d'étudier avec lui
joint_p

Réponses:


17

Il semble que les créateurs de cette commande R particulière présument que l'on connaît les formules originales de Dickey-Fuller, donc ils n'ont pas fourni la documentation pertinente sur la façon d'interpréter les valeurs. J'ai trouvé que Enders était une ressource incroyablement utile (Applied Econometric Time Series 3e, 2010, p. 206-209 - j'imagine que d'autres éditions iraient aussi bien). Ci-dessous, je vais utiliser les données du package URCA, le revenu réel au Danemark à titre d'exemple.

> income <- ts(denmark$LRY)

Il pourrait être utile de décrire d'abord les 3 formules différentes utilisées par Dickey-Fuller pour obtenir différentes hypothèses, car celles-ci correspondent aux options "type" ur.df. Enders précise que dans chacun de ces 3 cas, le terme cohérent utilisé est gamma, le coefficient de la valeur précédente de y, le terme de décalage. Si gamma = 0, alors il y a une racine unitaire (marche aléatoire, non stationnaire). Lorsque l'hypothèse nulle est gamma = 0, si p <0,05, alors nous rejetons la valeur nulle (au niveau de 95%) et supposons qu'il n'y a pas de racine unitaire. Si nous ne parvenons pas à rejeter la valeur nulle (p> 0,05), nous supposons qu'une racine unitaire existe. De là, nous pouvons procéder à l'interprétation des tau et phi.

1) type = "aucun": (formule de Enders p. 208)Δy(t)=γy(t1)+e(t)

(où est le terme d'erreur, supposé être du bruit blanc; de ; fait référence au précédent valeur de y, est donc le terme de retard)e(t)γ=a1y=ay(t1)+e(t)y(t1)

Pour type = "none", tau (ou tau1 dans la sortie R) est l'hypothèse nulle pour gamma = 0. En utilisant l'exemple du revenu du Danemark, j'obtiens "La valeur de la statistique de test est 0,7944" et les "Valeurs critiques pour les statistiques de test sont : tau1 -2,6 -1,95 -1,61. Étant donné que la statistique de test se trouve dans les 3 régions (1%, 5%, 10%) où nous ne rejetons pas le zéro, nous devons présumer que les données sont une marche aléatoire, c'est-à-dire que une racine unitaire est présente. Dans ce cas, le tau1 se réfère à l'hypothèse gamma = 0. Le "z.lag1" est le terme gamma, le coefficient pour le terme de retard (y (t-1)), qui est p = 0,431, que nous ne rejetons pas comme significatif, impliquant simplement que le gamma n'est pas statistiquement significatif pour ce modèle. Voici la sortie 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 = "dérive" (votre question spécifique ci-dessus):: (formule de Enders p. 208)Δy(t)=a0+γy(t1)+e(t)

(où a0 est "un sous-zéro" et se réfère au terme constant ou dérive) C'est là que l'interprétation de la sortie devient plus délicate. "tau2" est toujours l' hypothèse nulle . Dans ce cas, où la première statistique de test = -1,4462 se situe dans la zone d'échec du rejet de la valeur nulle, nous devons à nouveau présumer une racine unitaire, .γ=0γ=0
Le terme phi1 fait référence à la deuxième hypothèse, qui est une hypothèse nulle combinée de a0 = gamma = 0. Cela signifie que les DEUX des valeurs sont testées pour être égales à 0 en même temps. Si p <0,05, nous rejetons le null et supposons qu'au MOINS l'un d'eux est faux - c'est-à-dire que l'un ou les deux termes a0 ou gamma ne sont pas 0. Le fait de ne pas rejeter ce null implique que les deux a0 ET gamma = 0, impliquant 1) que gamma = 0 donc une racine unitaire est présente, ET 2) a0 = 0, donc il n'y a pas de terme de dérive. Voici la sortie 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) Enfin, pour le type = "tendance": (formule de Enders p. 208)Δy(t)=a0+gammay(t1)+a2(t)+e(t)

(où a2 (t) est un terme de tendance temporelle) Les hypothèses (de Enders p. 208) sont les suivantes: tau: gamma = 0 phi3: gamma = a2 = 0 phi2: a0 = gamma = a2 = 0 Ceci est similaire à la sortie R. Dans ce cas, les statistiques de test sont -2,4216 2,1927 2,9343. Dans tous ces cas, ceux-ci se situent dans les zones "ne pas rejeter les valeurs nulles" (voir les valeurs critiques ci-dessous). Ce que tau3 implique, comme ci-dessus, c'est que nous ne parvenons pas à rejeter le zéro de la racine unitaire, ce qui implique qu'une racine unitaire est présente. Ne pas rejeter phi3 implique deux choses: 1) gamma = 0 (racine unitaire) ET 2) il n'y a pas de terme de tendance temporelle, c'est-à-dire a2 = 0. Si nous rejetions cette valeur nulle, cela impliquerait que l'un ou les deux de ces termes n'étaient pas 0. Ne pas rejeter phi2 implique 3 choses: 1) gamma = 0 ET 2) pas de terme de tendance temporelle ET 3) pas de terme de dérive, c'est-à-dire que gamma = 0, que a0 = 0 et que a2 = 0.
Voici la sortie 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

Dans votre exemple spécifique ci-dessus, pour les données d.Aus, étant donné que les deux statistiques de test sont à l'intérieur de la zone "échec de rejet", cela implique que gamma = 0 ET a0 = 0, ce qui signifie qu'il existe une racine unitaire, mais aucun terme de dérive.


@ Jeremy, Dans votre réponse détaillée, partie 3 (avec tendance), vous avez mentionné "Dans ce cas, les statistiques de test sont -2,4216 2,1927 2,9343. Dans tous ces cas, elles se trouvent dans les zones" ne pas rejeter les valeurs nulles "(voir critique ci-dessous). " Ma question est de savoir si 2.1927 est une statistique de test pour phi2, doit-elle être comparée à phi2 6.50 4.88 4.16? Et si c'est correct, quelle est la condition pour accepter le phi2 H0 (racine unitaire sans tendance ni dérive)?
Saraz

5

Comme l'a déjà souligné joint-p, les codes de signification sont assez standard et correspondent à des valeurs de p, c'est-à-dire la signification statistique d'un test d'hypothèse. une valeur de p de 0,01 signifie que la conclusion est vraie avec une confiance de 99%.

L'article de Wikipedia sur Dickey-Fuller décrit les trois versions du test de Dickey-Fuller: la "racine unitaire", "la racine unitaire avec dérive" et "la racine unitaire avec dérive et tendance temporelle déterministe", ou ce qui est mentionné dans le urcadocumentation comme type = "none", "drift" et "trend", respectivement.

Chacun de ces tests est une régression linéaire progressivement plus complexe. Dans chacun d'eux il y a la racine, mais dans la dérive il y a aussi un coefficient de dérive, et dans la tendance il y a aussi un coefficient de tendance. Chacun de ces coefficients a un niveau de signification associé. Bien que la signification du coefficient racine soit la plus importante et la principale cible du test DF, nous pourrions également être intéressés de savoir si la tendance / dérive est également statistiquement significative. Après avoir bricolé les différents modes et vu quels coefficients apparaissent / disparaissent dans les tests t, j'ai pu facilement identifier quel coefficient correspondait à quel test t.

Ils peuvent être écrits comme suit (à partir de la page wiki):

(racine unitaire)Δyt=δyt1+ut

(avec dérive)Δyt=δyt1+a0+ut

(avec tendance)Δyt=δyt1+a0+a1t+ut

Dans votre cas, "tau2" correspond à , tandis que "phi1" correspond à . Vous verrez également apparaître un troisième coefficient dans le test "tendance", qui correspondrait à dans la troisième équation ci-dessus. Cependant, les noms des variables changeront lorsque vous passerez à "tendance", alors soyez prudent et assurez-vous de faire vous-même ce bricolage pour vérifier. Je crois en mode "tendance", "tau3" correspond à , "phi2" correspond à et "phi3" correspond à .a 0 a 1 δ a 0 a 1δa0a1δa0a1


1

Résumé des tests Dickey Fuller

Plus d'informations dans les notes de cours de Roger Perman sur les tests de racine unitaire

Voir également le tableau 4.2 dans Enders, Applied Econometric Time Series (4e), qui résume les différentes hypothèses auxquelles ces statistiques de test se réfèrent. Le contenu est conforme à l'image fournie ci-dessus.


1

J'ai trouvé la réponse de Jeramy assez facile à suivre, mais je me suis constamment trouvé à essayer de marcher correctement dans la logique et à faire des erreurs. J'ai codé une fonction R qui interprète chacun des trois types de modèles et donne des avertissements s'il y a des incohérences ou des résultats non concluants (je ne pense pas qu'il devrait y avoir des incohérences si je comprends correctement les mathématiques ADF, mais je pensais quand même un bon vérifiez si la fonction ur.df présente des défauts).

S'il vous plaît, jetez un oeil. Heureux de prendre des commentaires / correction / améliorations.

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


Votre fonction semble avoir été réalisée avec beaucoup d'efforts; cependant, y ajouter un exemple reproductible serait utile. Vous pouvez choisir une série chronologique (peut-être une déjà disponible dans R ou dans un package) exécuter le test dickey fuller dessus, puis utiliser votre fonction uniquement pour les personnes intéressées pour voir ce qu'elle fait.
SavedByJESUS

0

poste et réponses très intéressants. J'ai juste un doute concernant le tableau expliqué par user3096626. Quel logiciel rapporte dans le test ADF les valeurs de \tau_{\alpha \mu}, \tau_{\alpha \tau}et \tau_{\beta \tau}? De toute évidence, R ne le fait pas


-4

phi1 phi2 phi3 sont équivalents aux tests F dans le cadre ADF


4
Pouvez-vous développer un peu cette réponse? Pour le moment, c'est un peu cryptique. Pourquoi devraient-ils être équivalents?
Andy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.