[FieldTrip] Granger Causality - different range of values based on conditions

Schoffelen, J.M. (Jan Mathijs) jan.schoffelen at donders.ru.nl
Mon Feb 4 09:13:06 CET 2019


Hi Kimaya,

In general I would strongly recommend against estimating and interpreting connectivity using channel level EEG data. There is simply too much linear mixing going on that prohibits a clean enough estimate and honest interpretation.
If you wish to insist, however, please note that:

1) Granger causality values in principle do not have an upper bound (i.e. mathematically it is possible that GC>1, although in my experience this hardly ever happens in real data).
2) In order to get a mathematically valid estimate of GC using non-parametric spectral factorization, you need to compute the spectrum (in ft_freqanalysis) with the full frequency range, i.e. from 0 Hz to the Nyquist frequency. The frequency range you have used [13 30] is inadequate.

Best wishes,
Jan-Mathijs


J.M.Schoffelen, MD PhD
Senior Researcher, VIDI-fellow - PI, language in interaction
Telephone: +31-24-3614793
Physical location: room 00.028
Donders Centre for Cognitive Neuroimaging, Nijmegen, The Netherlands



On 4 Feb 2019, at 02:13, Kimaya Sarmukadam <ksarmuk2 at une.edu.au<mailto:ksarmuk2 at une.edu.au>> wrote:

Dear Fiedtrippers,

I have been using the following code to calculate Granger Causality, across various conditions (ranging from 2.5 to 3 minutes long, 4 second epochs).


 cfg              = [];
   cfg.output       = 'fourier';
   cfg.method       = 'mtmfft';
   cfg.channel      = {'Fp1', 'Fp2', 'F7', 'F3', 'Fz', 'F4', 'F8', 'FT7', 'FC3', 'FCz', 'FC4', 'FT8', 'O1', 'Oz', 'O2', 'T7', 'T8', 'TP7', 'TP8'};


cfg.taper        = 'dpss';
   cfg.tapsmofrq    = 5;
   cfg.pad          = 'maxperlen';
   cfg.padtype      = 'zero';
   cfg.foilim       = [13 30];

cfg           = [];
   cfg.method    = 'granger';
   cfg.granger.method = 'bivariate';
   %cfg.hasjack = '0';
   grangerEC         = ft_connectivityanalysis(cfg, freqEC);

   cfg           = [];
   cfg.parameter = 'grangerspctrm';
   cfg.zlim      = [0 1];
   ft_connectivityplot(cfg, grangerEC);

For two conditions, the above code was able to evaluate granger causality between 0 and 1. However, for other conditions I am working on currently, the resulting values range from 0 to 4. Therefore, I was wondering whether there is an error in the code which does not pick up certain data for other conditions.

Below is a visual representation:

<pastedImage.png>
Any help would be greatly appreciated.

Kind regards,

Kimaya Sarmukadam



_______________________________________________
fieldtrip mailing list
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
https://doi.org/10.1371/journal.pcbi.1002202




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20190204/a4f2eeee/attachment-0002.html>


More information about the fieldtrip mailing list