Supposons que je considère plusieurs variables indépendantes pour une éventuelle inclusion dans un modèle ARIMAX que je développe. Avant d'ajuster différentes variables, je voudrais filtrer les variables qui présentent une causalité inverse en utilisant un test de Granger (j'utilise la granger.test
fonction du MSBVAR
package dans R, bien que je pense que d'autres implémentations fonctionnent de la même manière). Comment déterminer le nombre de retards à tester?
La fonction R est:, granger.test(y, p)
où y
est une trame de données ou une matrice, et p
est les décalages.
L'hypothèse nulle est que les dernières valeurs de ne aident pas à prédire la valeur de .
Y a-t-il une raison de ne pas sélectionner ici un décalage très élevé (autre que la perte d'observations)?
Notez que j'ai déjà différencié chaque série chronologique dans ma base de données, en fonction de l'ordre d'intégration de ma série chronologique dépendante. (Par exemple, différencier une fois ma série chronologique dépendante l' a rendue stationnaire. Par conséquent, j'ai également différencié une fois toutes les séries chronologiques "indépendantes".)
la source
Réponses:
Le compromis est entre biais et pouvoir. Trop peu de retards, vous avez un test biaisé en raison de l'auto-corrélation résiduelle. Un trop grand nombre, vous permettent de potentiellement fallacieux rejet de l'hypothèse nulle - une certaine corrélation aléatoire pourrait faire ressembler aide à prédire . Que ce soit ou non une préoccupation pratique dépend de vos données, je suppose que vous devriez vous pencher plus haut, mais la longueur du décalage peut toujours être déterminée comme suit:X Y
La causalité de Granger doit toujours être testée dans le contexte d'un modèle. Dans le cas spécifique de la
granger.test
fonction dans R, le modèle a p valeurs passées de chacune des deux variables dans le test bivarié. Le modèle qu'il utilise est donc:Une manière conventionnelle de choisir pour ce modèle serait d'essayer cette régression avec différentes valeurs de et d'utiliser garder une trace de l'AIC ou du BIC pour chaque longueur de décalage. Relancez ensuite le test en utilisant la valeur de qui avait le CI le plus bas dans vos régressions.p p p
En général, le nombre de décalage dans le modèle peut être différent pour et et un test de Granger sera toujours approprié. C'est dans le cas particulier de l'implémentation de ce que vous êtes contraint au même nombre de décalages pour les deux. C'est une question de commodité et non une nécessité théorique. Avec des longueurs de décalage différentes pour les deux variables, vous pouvez toujours utiliser l'AIC ou le BIC pour sélectionner votre modèle, il vous suffira de comparer de nombreuses combinaisons décalages de et décalages de . Regardez ça .x y n x m y
granger.test
Juste un mot supplémentaire - parce que le test de Granger dépend du modèle, le biais des variables omises peut être un problème pour la causalité de Granger. Vous souhaiterez peut-être inclure toutes les variables dans votre modèle, puis utiliser la causalité de Granger pour en exclure des blocs au lieu d'utiliser la
granger.test
fonction qui ne fait que des tests par paire.la source