[FieldTrip] Inquiry About Default Model in Granger Causality Analysis

Jeff wcy131608 at gmail.com
Thu Jun 13 15:30:00 CEST 2024


To whom it may concern,

I hope this message finds you well. I am writing to seek assistance
regarding the computation of frequency-domain Granger causality using
non-parametric methods as described in the FieldTrip tutorial
documentation. Specifically, I am interested in the section on conditional
Granger causality (
https://www.fieldtriptoolbox.org/example/connectivity_conditional_granger/).

In the tutorial, the code explicitly specifies whether to use a bivariate
or multivariate model, whereas other sections of the documentation (e.g.,
https://www.fieldtriptoolbox.org/tutorial/connectivityextended/#introduction)
do not explicitly state this. My question is: when the model type
(bivariate or multivariate) is not explicitly stated, which model does
FieldTrip use by default?

To investigate this, I conducted a small test. I found that specifying
"cfg.granger.sfmethod = 'bivariate';" produced different directed
connectivity results between electrode pairs compared to when
"cfg.granger.sfmethod" was not specified. This test was conducted using the
non-parametric Granger method. However, when using the parametric method as
the tutorial, I found that specifying "cfg.granger.sfmethod = 'bivariate';"
in "ft_connectivityanalysis" resulted in an error.

Here is the code for my non-parametric Granger causality test:

cfg.toilim = [0.5 1.5];
data = ft_redefinetrial(cfg, data);

cfg        = [];
cfg.method ='mtmfft';
cfg.taper     = 'dpss';
cfg.output    = 'fourier';
cfg.tapsmofrq = 2;
mfreq   = ft_freqanalysis(cfg, data);

cfg           = [];
cfg.method    = 'granger';
cfg.granger.conditional = 'no';
cfg.granger.sfmethod = 'bivariate';
mgranger_bivar      = ft_connectivityanalysis(cfg, mfreq);

cfg           = [];
cfg.method    = 'granger';
mgranger_default      = ft_connectivityanalysis(cfg, mfreq);


Additionally, here is the code using the parametric Granger method, which
does not allow explicit specification of "cfg.granger.sfmethod =
'bivariate';":

cfg         = [];
cfg.order   = 5;
cfg.toolbox = 'bsmart';
mdata       = ft_mvaranalysis(cfg, data);

cfg        = [];
cfg.method = 'mvar';
mfreq_para      = ft_freqanalysis(cfg, mdata);

cfg           = [];
cfg.method    = 'granger';
% cfg.granger.conditional = 'no'; %error
% cfg.granger.sfmethod = 'bivariate';%error
granger_para       = ft_connectivityanalysis(cfg, mfreq_para);

I would greatly appreciate any guidance or recommendations on how to
address this issue and understand the default model used by FieldTrip when
not explicitly specified. My core question is whether the traditional
bivariate model is used by default when the model type (bivariate or
multivariate) is not specified, regardless of whether a parametric or
non-parametric Granger method is employed. If the default is indeed the
bivariate model, why do the results differ from those obtained when
explicitly specifying the model as bivariate(with non-parametric Granger
method)? Additionally, any insights on resolving the error encountered when
specifying the bivariate model in the parametric method would be extremely
helpful.

Thank you very much for your time and assistance.

Best regards,

Chengyuan Wu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20240613/fdae5243/attachment.htm>


More information about the fieldtrip mailing list