Kolejność opóźnień dla testu przyczynowości Grangera

11

Załóżmy, że rozważam kilka niezależnych zmiennych w celu ewentualnego włączenia do opracowywanego modelu ARIMAX. Przed dopasowaniem różnych zmiennych chciałbym odfiltrować zmienne wykazujące odwrotną przyczynowość za pomocą testu Grangera (używam granger.testfunkcji z MSBVARpakietu w R, chociaż uważam, że inne wtrącenia działają podobnie). Jak ustalić, ile opóźnień należy przetestować?

Funkcja R to:, granger.test(y, p)gdzie yjest ramką danych lub macierzą i pjest opóźnieniem.

Hipoteza zerowa jest to, że w ciągu ostatnich Wartości X nie pomagają w przewidywaniu wartości Y .pXY

Czy jest jakiś powód, aby nie wybierać tutaj bardzo dużego opóźnienia (innego niż utrata obserwacji)?

Zauważ, że różnicowałem już wszystkie szeregi czasowe w mojej ramce danych, w oparciu o kolejność integracji moich zależnych szeregów czasowych. (Np. Różnicowanie moich zależnych szeregów czasowych sprawiło, że stały się stacjonarne. Dlatego też raz odróżniłem wszystkie „niezależne” szeregi czasowe.)

ch-pub
źródło
1
Zauważ, że twoja strategia różnicowania w celu uzyskania stacjonarności zależy od braku kointegracji. Szczegółowe informacje można znaleźć w znakomitym wpisie na blogu „Testing for Granger Causality” autorstwa Dave'a Gilesa.
Richard Hardy

Odpowiedzi:

12

Kompromis występuje między stronniczością a mocą. Zbyt mało opóźnień, masz tendencyjny test z powodu resztkowej autokorelacji. Zbyt wiele, pozwalasz na potencjalnie fałszywe odrzucenie wartości zerowej - niektóre losowe korelacje mogą sprawić, że będzie wyglądać, jakby pomaga przewidzieć YXY . Niezależnie od tego, czy jest to kwestia praktyczna, zależy od twoich danych, zgaduję, że należy pochylić się wyżej, ale długość opóźnienia można zawsze określić w następujący sposób:

Przyczynowość Grangera zawsze musi być testowana w kontekście jakiegoś modelu. W konkretnym przypadku granger.testfunkcji w R model ma p przeszłości wartości każdej z dwóch zmiennych w teście dwuwymiarowym. Model, którego używa, to:

yja,t=α+l=1pβlyja,t-l+γlxja,t-l+ϵja,t

ppp która miała najniższą wartość IC w twoich regresjach.

xygranger.testnxmy

Tylko dodatkowe słowo - ponieważ test Grangera jest zależny od modelu, odchylenie pominiętych zmiennych może stanowić problem dla przyczynowości Grangera. Możesz uwzględnić wszystkie zmienne w swoim modelu, a następnie użyć przyczynowości Grangera, aby wykluczyć ich bloki zamiast używać granger.testfunkcji, która wykonuje tylko testy parami.

jayk
źródło
Zobaczę, czy dobrze to rozumiem ... Więc jeśli sprawdzam, czy y powoduje zmiany w x1, wykonuję kilka dopasowań: x1 ~ L (y, 1), x1 ~ L (y, 1) + L (y, 2), x1 ~ L (y, 1) + L (y, 2) + L (y, 3) ... Więc ten z najlepszym układem scalonym to opóźnienie, które wybrałem do testu Granger?
ch-pub
1
Tak, chociaż należy również uwzględnić opóźnione wartości x.
jayk
Nie jestem pewien, czy rozumiem tę część. Masz na myśli coś takiego? x1 ~ L (y, 1) + L (x1,1) kontra x1 ~ L (y, 1) + L (x1,1) + L (y, 2) + L (x1,2) kontra ...
ch-pub
2
Tak. Zasadniczo nie musisz tego robić w ten sposób, ponieważ długości opóźnień nie muszą być takie same dla xiy. Zobacz: en.wikipedia.org/wiki/Granger_causality#Mathematical_statement Jednak komenda R granger.test używa p przeszłych wartości x AND y. Z tą specyfikacją leżącą u podstaw testu musisz spróbować użyć IC z n przeszłymi wartościami x AND y w porównaniu z IC z n + 1 przeszłymi wartościami x AND y.
jayk
Nie ma problemu! Właśnie zredagowałem swoją pierwotną odpowiedź, aby była nieco mniej nieprzezroczysta.
jayk