Co to jest przyczynowość w sensie Grangera?
Przyczynowość w sensie Grangera (ang. Granger causality) to własność dwóch szeregów czasowych: X „powoduje w sensie Grangera” Y, jeśli przeszłe wartości X poprawiają prognozę Y ponad to, co daje sama przeszłość Y. Granger (1969) zaproponował testowalne definicje przyczynowości i sprzężenia zwrotnego właśnie w kategoriach prognozy. Seth i in. (2015) nazywają to predykcyjnym pojęciem przyczynowości: przyczyna poprzedza skutek i pomaga go przewidzieć.
Jak działa test
Porównuje się dwa modele regresji Y na jego własnych opóźnieniach: bez opóźnień X i z nimi. Test F (lub Walda) sprawdza, czy współczynniki przy opóźnieniach X są łącznie zerowe. Liczbę opóźnień wybiera się z góry albo kryterium AIC lub BIC. Oba szeregi powinny być stacjonarne – sprawdź to np. testem Dickeya–Fullera, a w razie potrzeby zróżnicuj dane. Test wykonuje się w obu kierunkach, bo możliwe jest też sprzężenie zwrotne.
To nie jest przyczynowość kontrfaktyczna
Pomimo nazwy test mówi o pierwszeństwie w czasie i przydatności do prognozy, a nie o tym, co stałoby się z Y po zmianie X. Seth i in. (2015) podkreślają, że opisuje on zależności w danych, a nie fizyczny mechanizm. Jeśli obie zmienne zależą od trzeciej, która wpływa na X szybciej niż na Y, X „wyprzedzi” Y bez żadnego wpływu – to klasyczna zmienna zakłócająca. Granger (1969) zwracał uwagę, że wnioski zależą od tego, jak szeroki zestaw możliwych przyczyn uwzględniono. Szerzej o tej różnicy piszemy w haśle korelacja a przyczynowość i w poradniku o grafach przyczynowych (DAG).
Przykład
Zasymulowaliśmy w R 200 pomiarów, w których wspólny czynnik Z wpływa na X po jednym okresie, a na Y po dwóch; X nie wpływa na Y. Test z dwoma opóźnieniami wskazał „przyczynowość” X → Y: F = 19.74, p < .001 (w drugą stronę F = 1.58, p = .21). Po dodaniu przeszłości Z do modelu efekt zniknął: F = 0.89, p = .411.
Jak opisać w pracy
Przyczynowość w sensie Grangera w R
Kod symuluje dwa szeregi zależne od wspólnego czynnika, uruchamia lmtest::grangertest w obu kierunkach, a potem powtarza test z kontrolą przeszłości wspólnego czynnika.
Pozorna przyczynowość Grangera przy wspólnej przyczynie
R
suppressPackageStartupMessages(library(lmtest))
set.seed(4471)
n <- 200
z <- as.numeric(arima.sim(list(ar = 0.5), n)) # wspólna przyczyna
x <- y <- numeric(n)
for (t in 3:n) {
x[t] <- 0.3 * x[t - 1] + 0.8 * z[t - 1] + rnorm(1)
y[t] <- 0.3 * y[t - 1] + 0.8 * z[t - 2] + rnorm(1) # x nie wpływa na y
}
d <- data.frame(x, y, z)[-(1:2), ]
wynik <- function(g) c(F = round(g$F[2], 2), p = signif(g$`Pr(>F)`[2], 2))
rbind(x_do_y = wynik(grangertest(y ~ x, order = 2, data = d)),
y_do_x = wynik(grangertest(x ~ y, order = 2, data = d)))
# kontrola z: czy przeszłość x poprawia prognozę y, gdy w modelu jest przeszłość z?
L <- function(v, k) c(rep(NA, k), head(v, -k))
d2 <- with(d, data.frame(y, y1 = L(y, 1), y2 = L(y, 2), z1 = L(z, 1), z2 = L(z, 2),
x1 = L(x, 1), x2 = L(x, 2)))[-(1:2), ]
m0 <- lm(y ~ y1 + y2 + z1 + z2, d2)
m1 <- lm(y ~ y1 + y2 + z1 + z2 + x1 + x2, d2)
a <- anova(m0, m1); c(F = round(a$F[2], 2), p = round(a$`Pr(>F)`[2], 3))Wynik w R
F p
x_do_y 19.74 1.6e-08
y_do_x 1.58 2.1e-01
F p
0.890 0.411 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lmtest). Stopnie swobody testu podaje pełny wydruk grangertest.
- R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
- lmtest (wersja 0.9.40): Zeileis, A., & Hothorn, T. (2002). Diagnostic checking in regression relationships. R News, 2(3), 7–10. https://CRAN.R-project.org/doc/Rnews/
Najczęstsze pytania
Czy przyczynowość w sensie Grangera dowodzi wpływu przyczynowego?
Nie. Pokazuje, że przeszłość X poprawia prognozę Y. Taki wynik daje też wspólna przyczyna działająca na X wcześniej niż na Y albo pominięta zmienna.
Ile opóźnień wybrać w teście Grangera?
Tyle, ile uzasadnia rytm zjawiska i częstość pomiaru, albo według AIC lub BIC. Wynik bywa wrażliwy na tę decyzję, więc podaj go dla kilku rozsądnych wartości.
Czy test Grangera można liczyć na danych z trendem?
Lepiej nie. Niestacjonarne szeregi łatwo dają pozorne zależności. Najpierw sprawdź stacjonarność i w razie potrzeby zróżnicuj dane albo usuń trend.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- Granger, C. W. J. (1969). Investigating causal relations by econometric models and cross-spectral methods. Econometrica, 37(3), 424–438. https://doi.org/10.2307/1912791
- Seth, A. K., Barrett, A. B., & Barnett, L. (2015). Granger causality analysis in neuroscience and neuroimaging. The Journal of Neuroscience, 35(8), 3293–3297. https://doi.org/10.1523/jneurosci.4399-14.2015 ● Otwarty dostęp
Cytowania BibTeX
@article{granger1969investigating, author={Granger, C. W. J.}, title={{Investigating causal relations by econometric models and cross-spectral methods}}, journal={Econometrica}, year={1969}, volume={37}, number={3}, pages={424--438}, doi={10.2307/1912791}}@article{seth2015granger, author={Seth, Anil K. and Barrett, Adam B. and Barnett, Lionel}, title={{Granger causality analysis in neuroscience and neuroimaging}}, journal={The Journal of Neuroscience}, year={2015}, volume={35}, number={8}, pages={3293--3297}, doi={10.1523/jneurosci.4399-14.2015}}