[FieldTrip] Question about coherence statistics

Snijders, T.M. (Tineke) tineke.snijders at donders.ru.nl
Fri Apr 1 12:03:30 CEST 2016

Hi Laetitia,

Indeed, as 'coh' doesn't have the trial information anymore after ft_connectivityanalysis, you can't use it as input for ft_freqstatistics if you only have one subject.

Indeed, giving 'cohspctrm' as parameter with your freq data doesn't work as 'cohspctrm' is not in your freq data. The cfg.parameter specifies what data to use for the randomization, so that parameter should be in the data you give as input.

You can use the freq data as input for freq_statistics, but then you have to change your cfg.statistic. This is the statistical function that is called after shuffling your trials - in your case after shuffling your trials the coherence has to be computed and the difference between conditions calculated. As far as I know, if you set your cfg.statistic to 'diff_itc', it will compute the difference in the inter-trial coherence between two conditions (looking at the phase consistency over trials).


From: laetitia.lalla at inserm.fr [laetitia.lalla at inserm.fr]
Sent: Thursday, March 31, 2016 3:22 PM
To: FieldTrip discussion list
Cc: Snijders, T.M. (Tineke)
Subject: Re: [FieldTrip] Question about coherence statistics

Dear Tineke,

thank you very much for your fast answer ! I'm not sure I understand what you mean though...  Maybe i did not express myself correctly. I do have individual trial data : I have 26 observations for condition 1 and 26 observations for condition 2.

They appear :

- In my structure "data" (output of ft_preprocessing) : data.trial is a cell {1 x nbtrials} (in my case : {1, 26})

- in my structure "freq" (output of ft_freqanalysis) : freq.powspctrm is a matrix of dimension : nbtrials X nbchannel X nbfreq (in my case 26x2x25)

But I don't have this information anymore in the structure "coh" (output of ft_connectivityanalysis) : coh.cospctrm is a matrix of dimension nbchannelcmb x nbfreq (in my case 1x25) since the coherence is calculated by averaging over trials...

You may mean I should give the "freq" structures as inputs to the fonction ft_freqstatistics ?

I just tried that : I created a structure data_all by concatenated data1.trial and data2.trial (and every other appropriate attribute). I took the Time Frequency Representation with ft_freqanalysis (with keeptrials='yes') to obtain a structure TFR_all (following this tutorial : http://www.fieldtriptoolbox.org/tutorial/natmeg/statistics<redir.aspx?REF=3yoVueKYOxNr_CfVZzD-0K5e9ECmkazf4uhnjjUkVZOkFyHHFFrTCAFodHRwOi8vd3d3LmZpZWxkdHJpcHRvb2xib3gub3JnL3R1dG9yaWFsL25hdG1lZy9zdGF0aXN0aWNz> This is actually how I did the statistics for the Power).

But then, if I give this as an input to ft_freqstatistics, like this :

cfg = [];
cfg.statistic = 'diff';
cfg.design= [ones(1,nbtrial)) 2*ones(1, nbtrial))]; %same nb of trials for both condition
cfg.method    = 'montecarlo';
        cfg.numrandomization  = 1000;
        cfg.ivar      = 1;
>> stat=ft_freqstatistics(cfg, FR_alltrials);

I have the following error :

Error using getdimord (line 15)
field "cohspctrm" not present in data

which makes a lot of sense, since I did not gave coherence as an input... I gave Frequency representations.. I was hoping that maybe the function would calculate the coherence itself for the statistics ? ^^ But it's clearly not the way to go.

Could you be a bit more explicit about what you meant ?

Thanks a lot.


Laetitia Lalla

PhD student in Neurosciences

INMED, Marseille, France

On 31-03-2016 13:47, Snijders, T.M. (Tineke) wrote:

Hi Laetitia,

If you only have one subject you do need individual trial data, otherwise you can't do statistics like this.
You need multiple observations (either subjects or trials).


From: fieldtrip-bounces at science.ru.nl [fieldtrip-bounces at science.ru.nl] on behalf of laetitia.lalla at inserm.fr [laetitia.lalla at inserm.fr]
Sent: Thursday, March 31, 2016 1:11 PM
To: fieldtrip at science.ru.nl
Subject: [FieldTrip] Question about coherence statistics

Dear FielTrip community,

Sorry to bother you again...

I have a question about the statistical testing to assess coherence differences and the related paper by E Maris, JM Schoffelen and P Fries (Journal of Neuroscience Methods, 2007)

I believe I am exactly in the framework described in this paper, but I guess there is still some crucial information that I don't understand...

This is my story :

- It's a single-subject study

- I want to compare two sets of trials observed in different conditions.

- The 2 sets of trials are exactly the same size, so my coherence estimate won't be biased by the "unequal sample size problem".

- I just want to compare for 1 channel pair, for 1 frequency bin [6Hz 10Hz], so I guess the Multiple Comparison problem won't affect my analysis too much (either in the spatial or the spectral dimension).

Based on the paper, I could refer myself to the point "2.7.1. A non parametric satistical test for a single signal pair and a single frequency bin".

- Since my interest is in the coherence difference for a single signal pair, I can choose [|C1(f)|-|C2(f)|] as a test statistic.

- And I can perform the montecarlo simulation.

My question is the following : How can I implement the nonparametric test of the coherence difference between my 2 conditions with the fieldtrip functions ?

This is what I did :

1) Extract and preprocess the signal from my condition 1.

2) freq1= ft_freqanalysis(cfg, signal1) (with cfg.method='mtmfft', cfg.output='powandcsd') →

3) coh1= ft_connectivityanalysis(cfg, freq1)

I did the same thing for the other condition → coh2.

And then for the statistics :

cfg = [];

cfg.statistic = 'diff'; (% because the statistic test than I chose is the difference [|C1(f)|-|C2(f)|])


cfg.method = 'montecarlo';

cfg.numrandomization = 1000;

cfg.ivar = 1;




stat=ft_freqstatistics(cfg, coh1, coh2);

And it gives me the following error :

Error using ft_checkconfig (line 153)

The field cfg.design is required.

Here, I really don't understand why I'm asked for the design matrix... When doing the statistics for the Power, I understood that the design matrix was telling which trial belonged to the condition 1 and which trial belonged to the condition 2. But here, it doesn't make any sense because my coherence was calculated by averaging on the trials...

Does the design matrix mean something differently here ? Or maybe I forgot one parameter to put in the cfg ?

Any help will be appreciated !

Thanks a lot for your time,

Laetitia Lalla

PhD student in Neurosciences

INMED, Marseille, France

fieldtrip mailing list
fieldtrip at donders.ru.nl<redir.aspx?REF=6NI5-wDZO_IPkB4eQQ2XqQXTLY6xMvaEQvS9d0tSKDgHeSPHFFrTCAFtYWlsdG86ZmllbGR0cmlwQGRvbmRlcnMucnUubmw.>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20160401/4374a553/attachment-0001.html>

More information about the fieldtrip mailing list