Angenommen, ich erwäge mehrere unabhängige Variablen für eine mögliche Aufnahme in ein von mir entwickeltes ARIMAX-Modell. Bevor ich verschiedene Variablen anpasse, möchte ich Variablen, die eine umgekehrte Kausalität aufweisen, mithilfe eines Granger-Tests herausfiltern (ich verwende die granger.test
Funktion aus dem MSBVAR
Paket in R, obwohl ich glaube, dass andere Implementierungen ähnlich funktionieren). Wie bestimme ich, wie viele Verzögerungen getestet werden sollen?
Die R-Funktion lautet : granger.test(y, p)
, wobei y
sich ein Datenrahmen oder eine Matrix befindet und p
die Verzögerungen sind.
Die Nullhypothese ist, dass die vergangenen Werte von X nicht bei der Vorhersage des Wertes von Y helfen .
Gibt es einen Grund, hier keine sehr hohe Verzögerung zu wählen (außer dem Verlust von Beobachtungen)?
Beachten Sie, dass ich bereits alle Zeitreihen in meinem Datenrahmen basierend auf der Integrationsreihenfolge meiner abhängigen Zeitreihen differenziert habe . (ZB wurde meine abhängige Zeitreihe einmal stationär differenziert. Daher habe ich auch alle "unabhängigen" Zeitreihen einmal differenziert.)
quelle
Antworten:
Die Granger-Kausalität muss immer im Kontext eines Modells getestet werden. Im speziellen Fall der
granger.test
Funktion in R hat das Modell p Vergangenheitswerte jeder der beiden Variablen im bivariaten Test. Das verwendete Modell ist also:granger.test
Nur ein zusätzliches Wort - da der Granger-Test modellabhängig ist, kann die Verzerrung ausgelassener Variablen ein Problem für die Granger-Kausalität sein. Möglicherweise möchten Sie alle Variablen in Ihr Modell aufnehmen und dann die Granger-Kausalität verwenden, um Blöcke davon auszuschließen, anstatt die
granger.test
Funktion zu verwenden, die nur paarweise Tests durchführt.quelle