pgrangertest | R Documentation |

Test for Granger (non-)causality in panel data.

```
pgrangertest(
formula,
data,
test = c("Ztilde", "Zbar", "Wbar"),
order = 1L,
index = NULL
)
```

`formula` |
a |

`data` |
a |

`test` |
a character to request the statistic to be returned,
either |

`order` |
integer(s) giving the number of lags to include in the test's auxiliary regressions, the length of order must be either 1 (same lag order for all individuals) or equal to the number of individuals (to specify a lag order per individual), |

`index` |
only relevant if |

The panel Granger (non-)causality test is a combination of Granger tests \insertCiteGRAN:69plm performed per individual. The test is developed by \insertCiteDUMI:HURL:12;textualplm, a shorter exposition is given in \insertCiteLOPE:WEBE:17;textualplm.

The formula `formula`

describes the direction of the (panel) Granger
causation where `y ~ x`

means "x (panel) Granger causes y".

By setting argument `test`

to either `"Ztilde"`

(default) or
`"Zbar"`

, two different statistics can be requested. `"Ztilde"`

gives the standardised statistic recommended by Dumitrescu/Hurlin (2012) for
fixed T samples. If set to `"Wbar"`

, the intermediate Wbar statistic
(average of individual Granger chi-square statistics) is given which is used
to derive the other two.

The Zbar statistic is not suitable for unbalanced panels. For the Wbar statistic, no p-value is available.

The implementation uses `lmtest::grangertest()`

from
package lmtest to perform the individual Granger tests.

An object of class `c("pgrangertest", "htest")`

. Besides
the usual elements of a `htest`

object, it contains the data
frame `indgranger`

which carries the Granger test statistics
per individual along the associated p-values, degrees of
freedom, and the specified lag order.

Kevin Tappe

DUMI:HURL:12plm

\insertRefGRAN:69plm

\insertRefLOPE:WEBE:17plm

`lmtest::grangertest()`

for the original (non-panel)
Granger causality test in lmtest.

```
## not meaningful, just to demonstrate usage
## H0: 'value' does not Granger cause 'inv' for all invididuals
data("Grunfeld", package = "plm")
pgrangertest(inv ~ value, data = Grunfeld)
pgrangertest(inv ~ value, data = Grunfeld, order = 2L)
pgrangertest(inv ~ value, data = Grunfeld, order = 2L, test = "Zbar")
# varying lag order (last individual lag order 3, others lag order 2)
(pgrt <- pgrangertest(inv ~ value, data = Grunfeld, order = c(rep(2L, 9), 3L)))
# chisq statistics per individual
pgrt$indgranger
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.