*! 31mar2022
help xtgcause

Title

xtgcause -- Testing for Granger causality in panel data

Syntax

xtgcause depvar indepvar
[if] [in],
[lags(lags_spec)
regress
bootstrap
breps(#)
blevel(#)
blength(#)
seed(#)
nodots]

Description

xtgcause allows to test for Granger non-causality from indepvar to depvar
in heterogeneous panels using the procedure proposed by Dumitrescu & Hurlin (2012).

Options

lags(lags_spec) specifies the lag structure to use for the
regressions performed in computing the test statistic.

lag_spec is either a positive integer or one of aic, bic, or hqic possibly
followed by a positive integer.
By default, lags(lags_spec) is set to lags(1).

Specifying lags(#) requests that # lag(s) of the series
be used in the regressions. The maximum authorized number of lags is such
that T > 5+3#.

Specifying lags(aic|bic|hqic [#]) requests that the number of lags of the
series be chosen such that the average Akaike/Bayesian/Hannan-Quinn information criterion (AIC/BIC/HQIC)
for the set of regressions is minimized. Regressions with 1 to # lags will be conducted,
restricting the number of observations to T-# for all estimations to make the models nested
and therefore comparable. Displayed statistics come from the set of regressions for which
the average AIC/BIC/HQIC is minimized (re-estimated using the total number of observations available).
If # is not specified in lags(aic|bic|hqic [#]), then it is set to the maximum
number of lags authorized.

regress can be used to display the results of the N individual regressions
on which the test is based. This option is useful to have a look at the coefficients of
individual regressions. When the number of individuals in the panel is large, this option
will result in a very long output.

bootstrap requests p-values and critical values to be computed
using a bootstrap procedure proposed in section 6.2 of Dumitrescu & Hurlin (2012).
Boostrap is useful in presence of cross-sectional dependence.

breps(#) indicates the number of bootstrap replications
to perform. By default, it is set to 1000.

blevel(#) indicates the number of significance level (in %)
for computing the bootstrapped critical values. By default, it is set to 95%.

blength(#) indicates the size of the block length to
be used in the bootstrap. By default, each time period is sampled
independently with replacement (blength(1)).
blength(#) allows to implement the bootstrap by dividing the
sample into block of # time periods and sampling the blocks independently
with replacement. Using blocks of more than one time periods is useful if
autocorrelation is suspected.

seed(#) can be used to set the random-number seed.
By default, the seed is not set.

nodots suppresses replication dots. By default, a dot is printed
for each replication to provide an indication of the evolution of the
bootstrap.

breps, blevel, blength, seed, and nodots
are bootstrap suboptions. They can only be used if bootstrap is
also specified.

Saved results

xtgcause saves the following results in r():

Scalars

r(wbar) average Wald statistic

r(lags) number of lags used for the test

r(zbar) Z-bar statistic

r(zbar_pv) p-value of the Z-bar statistic

r(zbart) Z-bar tilde statistic

r(zbart_pv) p-value of the Z-bar tilde statistic

Additional scalars if bootstrap is used

r(zbarb_cv) critical value for the Z-bar statistic

r(zbartb_cv) critical value for the Z-bar tilde statistic

r(breps) number of bootstrap replications

r(blevel) significance level for bootstrap critical values

r(blength) size of the block length

Matrices

r(Wi) individual Wald statistics

r(PVi) p-values of the individual Wald statistics

Additional matrices if bootstrap is used

r(ZBARb) Z-bar statistics from bootstrap procedure

r(ZBARTb) Z-bar tilde statistics from bootstrap procedure

Example

The dataset Data_demo.xls used in this example is provided by
Dumitrescu and Hurlin at http://www.runmycode.org/companion/view/42,
along with a few results.

. import excel using Data_demo.xls, clear

. ren (A-J) x#, addnumber

. ren (K-T) y#, addnumber

. gen t = _n

. reshape long x y, i(t) j(id)

. xtset id t

. xtgcause y x, lag(1)

References

Dumitrescu E-I & Hurlin C (2012): "Testing for Granger non-causality in heterogeneous panels",
Economic Modelling, 29: 1450-1460.

Lopez L & Weber S (2017): "Testing for Granger causality in panel data",
IRENE Working Paper 17-03, Institute of Economic Research,
University of Neuchâtel, https://ideas.repec.org/p/irn/wpaper/17-03.html.

Authors

Luciano Lopez

University of Applied Sciences and Arts Western Switzerland (HES-SO)

Ecole hôtelière de Lausanne (EHL)

Lausanne, Switzerland

luciano.lopez@ehl.ch

Sylvain Weber

University of Applied Sciences and Arts Western Switzerland (HES-SO)

Haute école de gestion (HEG) de Genève

Geneva, Switzerland

sylvain.weber@hesge.ch

Acknowledgement

This command was implemented when both authors were at the University of Neuchâtel (Switzerland).
We are indebted to David Ardia (University of Neuchâtel) for his valuable advice
on the bootstrap procedure. We also thank Gareth Thomas (IHS Markit EViews) for
his comments regarding the procedure to determine the optimal lag order
based on information criteria.