Partial Directed Coherence (Baccala & Sameshima 2001) between every channel pair, derived from a fitted MVAR model. More...
#include "../connectivity_global.h"#include "abstractmetric.h"#include <QSharedPointer>#include <Eigen/Core>

Go to the source code of this file.
Classes | |
| class | CONNECTIVITYLIB::PartialDirectedCoherence |
| Partial Directed Coherence estimator (Baccala & Sameshima 2001); directional, direct paths only. More... | |
Namespaces | |
| namespace | CONNECTIVITYLIB |
| Functional connectivity metrics (coherence, PLV, cross-correlation, etc.). | |
Partial Directed Coherence (Baccala & Sameshima 2001) between every channel pair, derived from a fitted MVAR model.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
PDC works in the z-domain on the inverse of the MVAR transfer function, A(f) = I - sum_{k=1}^{p} A_k * exp(-2*pi*i*f*k), and column-normalises its magnitudes,
PDC_{ij}(f) = |A_{ij}(f)| / sqrt( sum_k |A_{kj}(f)|^2 )
giving the proportion of the outflow from channel j at frequency f that targets channel i directly. Output is in [0, 1] and asymmetric. Baccala and Sameshima (Biological Cybernetics, 2001) introduced PDC explicitly to separate direct from indirect causal pathways: a relay j -> k -> i contributes 0 to PDC_{ij} because the direct coefficient A_{ij}(f) is zero, in contrast to DirectedTransferFunction which would still flag the indirect route.
PDC therefore plays the role that partial correlation plays in static Gaussian models: it removes the influence of all other channels in the MVAR system before measuring the j -> i interaction. Like DTF and GrangerCausality, PDC reuses the MvarModel fit, so requesting all three metrics in one batch costs only one Levinson-Durbin solve.
Definition in file partial_directed_coherence.h.