[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