v2.0.0
Loading...
Searching...
No Matches
partial_directed_coherence.h File Reference

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>
Include dependency graph for partial_directed_coherence.h:
This graph shows which files directly or indirectly include this file:

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.).

Detailed Description

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

Author
Christoph Dinh chris.nosp@m.toph.nosp@m..dinh.nosp@m.@mne.nosp@m.-cpp..nosp@m.org
Since
2.2.0
Date
April 2026

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.