Suponha que eu esteja considerando várias variáveis independentes para possível inclusão em um modelo ARIMAX que estou desenvolvendo. Antes de ajustar variáveis diferentes, eu gostaria de filtrar variáveis que exibem causalidade reversa usando um teste de Granger (estou usando a granger.test
função do MSBVAR
pacote em R, embora eu acredite que outras implementações funcionem da mesma forma). Como determino quantos atrasos devem ser testados?
A função R é:, granger.test(y, p)
onde y
é um quadro de dados ou matriz e p
são os atrasos.
A hipótese nula é de que os últimos valores de não ajuda na previsão do valor de .
Existe alguma razão para não selecionar um atraso muito alto aqui (além da perda de observações)?
Observe que eu já diferenciei todas as séries temporais no meu quadro de dados, com base na ordem de integração das minhas séries temporais dependentes. (Por exemplo, diferenciar minha série temporal dependente uma vez a tornou estacionária. Portanto, eu também diferenciei todas as séries temporais "independentes" uma vez.)
fonte
Respostas:
O trade-off é entre preconceito e poder. Poucas defasagens, você tem um teste tendencioso por causa da correlação automática residual. Muitos, você permitir rejeições potencialmente espúrios da null - alguma correlação aleatório pode fazer parecer que ajuda a prever . Se essa é uma preocupação prática ou não depende dos seus dados, meu palpite seria se inclinar mais, mas o comprimento do atraso sempre pode ser determinado da seguinte maneira:X Y
A causalidade de Granger sempre deve ser testada no contexto de algum modelo. No caso específico da
granger.test
função em R, o modelo possui p valores anteriores de cada uma das duas variáveis no teste bivariado. Portanto, o modelo usado é:Uma maneira convencional de escolher para este modelo seria tentar esta regressão com vários valores de e usar o controle do AIC ou BIC para cada comprimento de atraso. Em seguida, execute o teste novamente usando o valor de que teve o IC mais baixo em suas regressões.p p p
Em geral, o número de lag no modelo pode ser diferente para e e um teste de Granger ainda será apropriado. É no caso específico da implementação que você está restrito ao mesmo número de defasagens para ambos. Esta é uma questão de conveniência, não uma necessidade teórica. Com diferentes comprimentos de defasagem para as duas variáveis, você ainda pode usar o AIC ou o BIC para selecionar seu modelo, basta comparar muitas combinações atrasos de e atrasos de . Veja isso .x y n x m y
granger.test
Apenas uma palavra extra - como o teste de Granger depende do modelo, o viés de variáveis omitidas pode ser um problema para a causalidade de Granger. Convém incluir todas as variáveis em seu modelo e, em seguida, usar a causalidade de Granger para excluir blocos delas, em vez de usar a
granger.test
função que apenas faz testes em pares.fonte