So führen sie einen granger-kausalitätstest in r durch
Der Granger-Kausalitätstest wird verwendet, um zu bestimmen, ob eine Zeitreihe für die Vorhersage einer anderen nützlich ist oder nicht.
Dieser Test verwendet die folgenden Null- und Alternativhypothesen:
Nullhypothese (H 0 ): Die Zeitreihe x verursacht nach Granger nicht die Zeitreihe y
Alternativhypothese ( HA ): Zeitreihe x Zeitreihe von Granger verursacht y
Der Begriff „Granger-Ursachen“ bedeutet, dass die Kenntnis des Werts der Zeitreihe x mit einer gewissen Verzögerung nützlich ist, um den Wert der Zeitreihe y zu einem späteren Zeitpunkt vorherzusagen.
Dieser Test erzeugt eine F-Test-Statistik mit einem entsprechenden p-Wert. Wenn der p-Wert unter einem bestimmten Signifikanzniveau liegt (d. h. α = 0,05), können wir die Nullhypothese ablehnen und daraus schließen, dass wir über ausreichende Beweise verfügen, um zu behaupten, dass die Zeitreihe x Granger die Zeitreihe y verursacht.
Um einen Granger-Kausalitätstest in R durchzuführen, können wir die Funktion grangertest() aus dem Paket lmtest verwenden, die die folgende Syntax verwendet:
grangertest(x, y, order = 1)
Gold:
- x: die erste Zeitreihe
- y: die zweite Zeitreihe
- order: Anzahl der Offsets, die in der ersten Zeitreihe verwendet werden sollen. Der Standardwert ist 1.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen.
Schritt 1: Definieren Sie die beiden Zeitreihen
Für dieses Beispiel verwenden wir den ChickEgg- Datensatz, der im lmtest-Paket vorinstalliert ist. Dieser Datensatz enthält Werte für die Anzahl der hergestellten Eier sowie die Anzahl der Hühner in den Vereinigten Staaten von 1930 bis 1983:
#load lmtest package library (lmtest) #load ChickEgg dataset data(ChickEgg) #view first six rows of dataset head(ChickEgg) chicken egg [1,] 468491 3581 [2,] 449743 3532 [3,] 436815 3327 [4,] 444523 3255 [5,] 433937 3156 [6,] 389958 3081
Schritt 2: Führen Sie den Granger-Kausalitätstest durch
Als nächstes werden wir die Funktion grangertest() verwenden, um einen Granger-Kausalitätstest durchzuführen, um zu sehen, ob die Anzahl der hergestellten Eier eine Vorhersage für die zukünftige Anzahl von Hühnern ist. Wir werden den Test mit drei Offsets durchführen:
#perform Granger-Causality test grangertest(chicken ~ egg, order = 3 , data = ChickEgg) Granger causality test Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3) Model 2: chicken ~ Lags(chicken, 1:3) Res.Df Df F Pr(>F) 1 44 2 47 -3 5.405 0.002966 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
So interpretieren Sie das Ergebnis:
- Modell 1: Dieses Modell versucht, die Anzahl der Hühner vorherzusagen, indem es die Anzahl der Hühner in den letzten drei Jahren und die Anzahl der Eier in den letzten drei Jahren als Prädiktorvariablen verwendet.
- Modell 2: Dieses Modell versucht, die Anzahl der Hühner vorherzusagen, indem es nur die Anzahl der Hühner in den letzten drei Jahren als Prädiktorvariablen verwendet.
- F: Dies ist die F-Teststatistik. Es stellt sich heraus, dass es 5,405 ist.
- Pr(>F): Dies ist der p-Wert, der der F-Teststatistik entspricht. Es stellt sich heraus, dass es .002966 ist.
Da der p-Wert kleiner als 0,05 ist, können wir die Nullhypothese des Tests ablehnen und schlussfolgern, dass die Kenntnis der Anzahl der Eier nützlich ist, um die zukünftige Anzahl der Hühner vorherzusagen.
Schritt 3: Führen Sie den Granger-Kausalitätstest in umgekehrter Reihenfolge durch
Obwohl wir die Nullhypothese des Tests abgelehnt haben, ist es tatsächlich möglich, dass ein Fall umgekehrter Kausalität eintreten könnte. Mit anderen Worten: Es ist möglich, dass sich die Anzahl der Eier durch die Anzahl der Hühner verändert.
Um diese Möglichkeit auszuschließen, müssen wir den Granger-Kausalitätstest in umgekehrter Reihenfolge durchführen und dabei Hühner als Prädiktorvariable und Eier als Antwortvariable verwenden:
#perform Granger-Causality test in reverse grangertest(egg ~ chicken, order = 3 , data = ChickEgg) Granger causality test Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3) Model 2: egg ~ Lags(egg, 1:3) Res.Df Df F Pr(>F) 1 44 2 47 -3 0.5916 0.6238
Der p-Wert des Tests beträgt 0,6238. Da dieser nicht kleiner als 0,05 ist, können wir die Nullhypothese nicht ablehnen. Mit anderen Worten: Die Anzahl der Hühner sagt nichts über die zukünftige Anzahl an Eiern aus.
Daraus können wir schließen, dass die Kenntnis der Anzahl der Eier hilfreich ist, um die zukünftige Anzahl der Hühner vorherzusagen.