[FieldTrip] Spectrally resolved Granger causality with ft_connectivity_granger

Schoffelen, J.M. (Jan Mathijs) janmathijs.schoffelen at donders.ru.nl
Tue Jun 22 08:56:03 CEST 2021

Hi Eva,

I don’t know what’s going on, but I would first check the input data. Are these according to your expectations? I would assume that you have used ft_mvaranalysis, followed by ft_freqanalysis(_mvar) or so.
From the top of my head I recall that ft_mvaranalysis is not particularly ‘good’ at fitting a time-resolved model, although probably it works technically (just a for-loop over time), but the results are usually not something to write home about.

Best wishes,

On 21 Jun 2021, at 22:28, Eva Masson via fieldtrip <fieldtrip at science.ru.nl<mailto:fieldtrip at science.ru.nl>> wrote:

Hi FieldTrip Community !

I am trying to compute spectrally resolved Granger causality on (i)EEG data using the parametric approach, with mvar modelling. At this level, it is easier for my data than non parametric modelling.

From the original data, I have selected two channels to compute Granger causality from channel 1 to channel 2 and from channel 2 to channel 1.

I am currently struggling with the last step, from which I am expecting an output in the form of a 4-D structure containing the Granger causality power for each selected frequency and each time point for :

  *   Channel 1 to channel 1 (not very informative)
  *   Channel 1 to channel 2
  *   Channel 2 to channel 1
  *   Channel 2 to channel 2 (not very informative)

To do so, I am using the function ft_connectivity_granger, which I think is suited for spectrally resolved Granger causality, also while keeping the time dimension.

Here is my sloppy code :

[mvar_granger, V, n] = ft_connectivity_granger(mvar_freq.transfer, mvar_freq.noisecov, ...
    mvar_freq.crsspctrm, 'dimord', 'chan_chan_freq_time');

In which mvar_freq is the structure obtained after ft_mvaranalysis and transformed into the frequency domain with ft_freqanalysis_mvar. To be honest, I don’t know what V stands for in the output.

Here are the dimords of the mvar_freq fields used as inputs:
Transfer (H) and crsspctrm (S): chan_chan_freq_time
Noisecov (Z) : chan_chan_freq

After running the previous line, I do not get an error, but a mvar_granger structure in 3D containing a lot of 0 values. Honestly, I don’t really understand what it represents.

If someone knows how to work with ft_connectivity_granger in such a way that I can get the kind of output I am looking for (probably something like chan_chan_freq_time, right ?), I am all ears to your wisdom !

I would be very thankful for any help on this topic 😊

Cheers !

PS : Thanks a lot for this FieldTrip mailing list. I am learning so much thanks to it !
fieldtrip mailing list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20210622/73a160aa/attachment.htm>

More information about the fieldtrip mailing list