GrangerCausality
Namespace: CONNECTIVITYLIB · Library: Connectivity Library
mne_connectivity.spectral_connectivity_epochs (method='gc') in MNE-Python.
#include <connectivity/granger_causality.h>
class CONNECTIVITYLIB::GrangerCausality
Spectral Granger Causality estimator (Geweke 1982 formulation).
For every ordered channel pair (j -> i) the estimator fits an MVAR model to the trial-concatenated time series via MvarModel and evaluates the log ratio of the unconditional and conditional spectra of X_i, GC_{j->i}(f) = ln( S_{ii}(f) / ( S_{ii}(f) - (Sigma_{jj} - Sigma_{ij}^2 / Sigma_{ii}) * |H_{ij}(f)|^2 ) ). The resulting Network is directional and stores the band-averaged GC value as edge weight.
Spectral Granger Causality estimator; directional, MVAR-based.
Network granger = GrangerCausality::calculate(settings); // edge j -> i: j Granger-causes i
Inheritance
Public Methods
GrangerCausality()
Constructs a GrangerCausality object.
Static Methods
calculate(connectivitySettings)
Calculates spectral Granger causality between all channel pairs.
Parameters:
- connectivitySettings : ConnectivitySettings & The input data and parameters.
Returns:
- Network — The connectivity information in form of a network structure.
Example
- Full source:
src/examples/ex_connectivity_metrics/main.cpp - Build target:
ex_connectivity_metrics(runs under CTest)
Used in examples
ex_connectivity_metrics
Connectivity metrics on synthetic data with a known coupling.
Network granger = GrangerCausality::calculate(settings); // edge j -> i: j Granger-causes i
Network dtf = DirectedTransferFunction::calculate(settings);
Network pdc = PartialDirectedCoherence::calculate(settings);
for (const Network* network : {&granger, &dtf, &pdc}) {
const double forward = edgeWeight(*network, 0, 1);
const double backward = edgeWeight(*network, 1, 0);
ok &= expect(forward > 2.0 * backward,
QString("%1 0->1 %2 > 2 x 1->0 %3").arg(network->getConnectivityMethod()).arg(forward).arg(backward));
}
Authors of this file
- Christoph Dinh <christoph.dinh@mne-cpp.org>