Skip to main content

PartialDirectedCoherence

Namespace: CONNECTIVITYLIB  ·  Library: Connectivity Library

Python equivalent

mne_connectivity.spectral_connectivity_epochs (method='pdc') in MNE-Python.

#include <connectivity/partial_directed_coherence.h>

class CONNECTIVITYLIB::PartialDirectedCoherence

Partial Directed Coherence estimator of Baccala & Sameshima (2001).

Computes PDC_{ij}(f) = |A_{ij}(f)| / sqrt( sum_k |A_{kj}(f)|^2 ) from the MVAR coefficients delivered by MvarModel, where A(f) is the frequency-domain inverse of the transfer matrix. Unlike DirectedTransferFunction this estimator counts only direct causal paths - relayed interactions j -> k -> i contribute 0 - so PDC and DTF together separate direct from indirect flow.

Partial Directed Coherence estimator (Baccala & Sameshima 2001); directional, direct paths only.

src/examples/ex_connectivity_metrics/main.cpp
Network pdc = PartialDirectedCoherence::calculate(settings);

Inheritance​


Public Methods​

PartialDirectedCoherence()​

Constructs a PartialDirectedCoherence object.


Static Methods​

calculate(connectivitySettings)​

Calculates Partial Directed Coherence between all channel pairs.

Parameters:

Returns:

  • Network — The connectivity information in form of a network structure.

Example​

Used in examples​

ex_connectivity_metrics​

Connectivity metrics on synthetic data with a known coupling.

src/examples/ex_connectivity_metrics/main.cpp, line 266
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​