Phase Transfer Entropy

function [parameters, data] = timeseriesPhaseTE(X, Y, delay, binsize)

This function computes the Phase transfer entropy (TE) and differential Phase TE between time series X and Y, with the flow of information directed from X to Y. Uses phase-space binning method combined with trial collapsing (Gómez-Herrero et al., 2010, Wilmer et al., 2012). Bin width was defined according to Scott's choice (Scott, 1992).

Input:

X: first time series in 1-D vector

Y: second time series in 1-D vector

delay: prediction delay in samples; leave empty if you want the delay to be based on the frequency content of the data

binsize: binsize for the histograms of phase occurances; provide a number, or 'scott' or 'otnes' to use the approach by Scott or by Otnes and Enochson

Outputs:

parameter.PTE_estimate: Phase transfer entropy (bits)

parameter.dPTE_estimate: Phase differential transfer entropy (normalized between 0 to 1)

data.signal1: X

data.signal2: Y

Example usage

>> X1 = Vtcr1(15001:20000);
>> Y1 = Vtcr2(15001:20000);
>> [parameters, data] = timeseriesPhaseTE(X1, Y1);
>> PTE = parameters.PTE_estimate;
>> dPTE = parameters.dPTE_estimate;
>> signal1 = data.signal1;
>> signal2 = data.signal2;
>> PTE, dPTE
PTE =

    0.1695


dPTE =

    0.5194

NOTE: Our work builds upon the code included in the following works and implementations, so please do consider citing them:

References:

[1] M Lobier, F Siebenhuhner, S Palva, JM Palva (2014) Phase transfer entropy : a novel phase-based measure for directed connectivity in networks coupled by oscillatory interactions. Neuroimage 85, 853-872 with implemementation inspired by Java code by C.J. Stam (https://home.kpn.nl/stam7883/brainwave.html)