The **Granger causality test** is a statistical hypothesis test for determining whether one time series is useful in forecasting another, first proposed in 1969.^{[1]} Ordinarily, regressions reflect "mere" correlations, but Clive Granger argued that causality in economics could be tested for by measuring the ability to predict the future values of a time series using prior values of another time series. Since the question of "true causality" is deeply philosophical, and because of the post hoc ergo propter hoc fallacy of assuming that one thing preceding another can be used as a proof of causation, econometricians assert that the Granger test finds only "predictive causality".^{[2]} Using the term "causality" alone is a misnomer, as Granger-causality is better described as "precedence",^{[3]} or, as Granger himself later claimed in 1977, "temporally related".^{[4]} Rather than testing whether *X* *causes* Y, the Granger causality tests whether X *forecasts* *Y.*^{[5]}

A time series *X* is said to Granger-cause *Y* if it can be shown, usually through a series of t-tests and F-tests on lagged values of *X* (and with lagged values of *Y* also included), that those *X* values provide statistically significant information about future values of *Y*.

Granger also stressed that some studies using "Granger causality" testing in areas outside economics reached "ridiculous" conclusions.^{[6]} "Of course, many ridiculous papers appeared", he said in his Nobel lecture.^{[7]} However, it remains a popular method for causality analysis in time series due to its computational simplicity.^{[8]}^{[9]} The original definition of Granger causality does not account for latent confounding effects and does not capture instantaneous and non-linear causal relationships, though several extensions have been proposed to address these issues.^{[8]}

We say that a variable *X* that evolves over time *Granger-causes* another evolving variable *Y* if predictions of the value of *Y* based on its own past values *and* on the past values of *X* are better than predictions of *Y* based only on *Y'*s own past values.

Granger defined the causality relationship based on two principles:^{[8]}^{[10]}

- The cause happens prior to its effect.
- The cause has
*unique*information about the future values of its effect.

Given these two assumptions about causality, Granger proposed to test the following hypothesis for identification of a causal effect of on :

where refers to probability, is an arbitrary non-empty set, and and respectively denote the information available as of time in the entire universe, and that in the modified universe in which is excluded. If the above hypothesis is accepted, we say that Granger-causes .^{[8]}^{[10]}

If a time series is a stationary process, the test is performed using the level values of two (or more) variables. If the variables are non-stationary, then the test is done using first (or higher) differences. The number of lags to be included is usually chosen using an information criterion, such as the Akaike information criterion or the Schwarz information criterion. Any particular lagged value of one of the variables is retained in the regression if (1) it is significant according to a t-test, and (2) it and the other lagged values of the variable jointly add explanatory power to the model according to an F-test. Then the null hypothesis of no Granger causality is not rejected if and only if no lagged values of an explanatory variable have been retained in the regression.

In practice it may be found that neither variable Granger-causes the other, or that each of the two variables Granger-causes the other.

Let *y* and *x* be stationary time series. To test the null hypothesis that *x* does not Granger-cause *y*, one first finds the proper lagged values of *y* to include in an univariate autoregression of *y*:

Next, the autoregression is augmented by including lagged values of *x*:

One retains in this regression all lagged values of *x* that are individually significant according to their t-statistics, provided that collectively they add explanatory power to the regression according to an F-test (whose null hypothesis is no explanatory power jointly added by the *x'*s). In the notation of the above augmented regression, *p* is the shortest, and *q* is the longest, lag length for which the lagged value of *x* is significant.

The null hypothesis that *x* does not Granger-cause *y* is not rejected if and only if no lagged values of *x* are retained in the regression.

Multivariate Granger causality analysis is usually performed by fitting a vector autoregressive model (VAR) to the time series. In particular, let for be a -dimensional multivariate time series. Granger causality is performed by fitting a VAR model with time lags as follows:

where is a white Gaussian random vector, and is a matrix for every . A time series is called a Granger cause of another time series , if at least one of the elements for is significantly larger than zero (in absolute value).^{[11]}

The above linear methods are appropriate for testing Granger causality in the mean. However they are not able to detect Granger causality in higher moments, e.g., in the variance. Non-parametric tests for Granger causality are designed to address this problem.^{[12]} The definition of Granger causality in these tests is general and does not involve any modelling assumptions, such as a linear autoregressive model. The non-parametric tests for Granger causality can be used as diagnostic tools to build better parametric models including higher order moments and/or non-linearity.^{[13]}

As its name implies, Granger causality is not necessarily true causality. In fact, the Granger-causality tests fulfill only the Humean definition of causality that identifies the cause-effect relations with constant conjunctions.^{[14]} If both *X* and *Y* are driven by a common third process with different lags, one might still fail to reject the alternative hypothesis of Granger causality. Yet, manipulation of one of the variables would not change the other. Indeed, the Granger-causality tests are designed to handle pairs of variables, and may produce misleading results when the true relationship involves three or more variables. Having said this, it has been argued that given a probabilistic view of causation, Granger causality can be considered true causality in that sense, especially when Reichenbach's "screening off" notion of probabilistic causation is taken into account.^{[15]}
Other possible sources of misguiding test results are: (1) not frequent enough or too frequent sampling, (2) nonlinear causal relationship, (3) time series nonstationarity and nonlinearity and (4) existence of rational expectations.^{[14]} A similar test involving more variables can be applied with vector autoregression.

A method for Granger causality has been developed that is not sensitive to deviations from the assumption that the error term is normally distributed.^{[16]} This method is especially useful in financial economics, since many financial variables are non-normally distributed.^{[17]} Recently, asymmetric causality testing has been suggested in the literature in order to separate the causal impact of positive changes from the negative ones.^{[18]} An extension of Granger (non-)causality testing to panel data is also available.^{[19]} A modified Granger causality test based on the GARCH (generalized auto-regressive conditional heteroscedasticity) type of integer-valued time series models is available in many areas.^{[20]}^{[21]}

The extension of Granger causality to incorporate its dynamic, time-varying nature allows for a more nuanced understanding of how causal relationships in time-series data evolve over time.^{[22]} The methodology uses recursive techniques such as the Forward Expanding (FE), Rolling (RO), and Recursive Evolving (RE) windows to overcome the limitations of traditional Granger causality tests and understand changes in causal relationships across different periods.^{[23]} A central aspect of this methodology is the 'tvgc' command in Stata.^{[22]} Empirical applications, such as data involving transaction fees and economic sub-systems on Ethereum, highlight the dynamic nature of economic relationships over time.^{[24]}

A long-held belief about neural function maintained that different areas of the brain were task specific; that the structural connectivity local to a certain area somehow dictated the function of that piece. Collecting work that has been performed over many years, there has been a move to a different, network-centric approach to describing information flow in the brain. Explanation of function is beginning to include the concept of networks existing at different levels and throughout different locations in the brain.^{[25]} The behavior of these networks can be described by non-deterministic processes that are evolving through time. That is to say that given the same input stimulus, you will not get the same output from the network. The dynamics of these networks are governed by probabilities so we treat them as stochastic (random) processes so that we can capture these kinds of dynamics between different areas of the brain.

Different methods of obtaining some measure of information flow from the firing activities of a neuron and its surrounding ensemble have been explored in the past, but they are limited in the kinds of conclusions that can be drawn and provide little insight into the directional flow of information, its effect size, and how it can change with time.^{[26]} Recently Granger causality has been applied to address some of these issues.^{[27]} Put plainly, one examines how to best predict the future of a neuron: using either the entire ensemble or the entire ensemble except a certain target neuron. If the prediction is made worse by excluding the target neuron, then we say it has a “g-causal” relationship with the current neuron.

Previous Granger-causality methods could only operate on continuous-valued data so the analysis of neural spike train recordings involved transformations that ultimately altered the stochastic properties of the data, indirectly altering the validity of the conclusions that could be drawn from it. In 2011, however, a new general-purpose Granger-causality framework was proposed that could directly operate on any modality, including neural-spike trains.^{[26]}

Neural spike train data can be modeled as a point-process. A temporal point process is a stochastic time-series of binary events that occurs in continuous time. It can only take on two values at each point in time, indicating whether or not an event has actually occurred. This type of binary-valued representation of information suits the activity of neural populations because a single neuron's action potential has a typical waveform. In this way, what carries the actual information being output from a neuron is the occurrence of a “spike”, as well as the time between successive spikes. Using this approach one could abstract the flow of information in a neural-network to be simply the spiking times for each neuron through an observation period. A point-process can be represented either by the timing of the spikes themselves, the waiting times between spikes, using a counting process, or, if time is discretized enough to ensure that in each window only one event has the possibility of occurring, that is to say one time bin can only contain one event, as a set of 1s and 0s, very similar to binary.^{[citation needed]}

One of the simplest types of neural-spiking models is the Poisson process. This however, is limited in that it is memory-less. It does not account for any spiking history when calculating the current probability of firing. Neurons, however, exhibit a fundamental (biophysical) history dependence by way of its relative and absolute refractory periods. To address this, a conditional intensity function is used to represent the probability of a neuron spiking, conditioned on its own history. The conditional intensity function expresses the instantaneous firing probability and implicitly defines a complete probability model for the point process. It defines a probability per unit time. So if this unit time is taken small enough to ensure that only one spike could occur in that time window, then our conditional intensity function completely specifies the probability that a given neuron will fire in a certain time.^{[citation needed]}

Software packages have been developed for measuring "Granger causality" in Python and R: