permutation clustering test using TFCE

>> >> >
>> >> > Hi Denis,
>> >> >
>> >> > I tried the spatio-temporal clustering with TFCE
>> >> (spatio_temporal_cluster_1samp_test) on alpha power data (size of
epoch :
>> >> 2s; decimation = 4 (so 501 time points)) with n_jobs = 6 and the
default
>> >> TFCE parameter (dict(start = 0, step = 0.2)).
>> >>
>> >>
>> >> I think we need to improve the documentation on TFCE a bit. A good
default
>> >> range is probably
>> >>
>> >> dict(start=2, step=0.2)
>> >>
>> >> >
>> >> > According to script output, 48 thresholds were used from 0 to 9.4.
>> >> > After 5h (!!), 10262484 clusters were found and finally after some
>> >> others
>> >> hours the script crashed before the end ("cannot allocate memory")...
>> >> >
>> >>
>> >> For TFCE N clusters equals N features. Howver if you do not scan the
>> >> enitre
>> >> range of the test statistic you wont have to wait thast long.
>> >>
>> >>
>> > I tried dict(start=2, step=0.2) and dict(start=2, step=0.5), but I
still
>> > had 5 120 000 clusters (15 threshold for step =0.5). How can I not
scan the
>> > entire range of the test, as you suggested ? I didn't understand what
you
>> > mean by "features"...
>> >
>> >
>>
>> samples : subjects or trials or observations
>> feaures : measured value at time t, location l, condition c, frequency
f,
>> etc.
>>
>> dict(start=2, step=0.2) would not scan the entire range since you start
at
>> a value of 2. It depends on your effect size and your test statistic.
with
>> an f-test you might want to start at 4 (roughly the point where values
form
>> an f-dist are considered significant). Also if the maximum of your
primary
>> test statistic is rather high, e.g. 80, you might want to jump in steps
of
>> .05 or even 1.
>>
>> I'm currently using it like that (dict(start=4, step=0.5) in sensor
space
>> analysis and with 17640 clusters, 7 jobs and I'm waiting about 6-7
minutes
>> for a result using a repated measures anova as stat function (slower
than
>> t-test) .
>>
>
> Ok thanks, it's clearer! So, I tried dict(start=4, step=0.5), I got 5 120
000 clusters, 14 thresholds and I got no significant clusters.

Note. You'll always get as many clusters in TFCE as your ndarrays has
cells, or in other words X.size if X is an array. The speed will then
depend on the number of thresholds you visit and the size of the 'clusters'
in that range.

Yes, I get that, my 5 210 000 corresponds to n_vertices*epoch_duration.

> And I didn't find the cluster I found with p = 0.01 in classical
analysis...

In my experience TFCE is significantly more sensitive than clustering with
classical thresholding. If you do not happen to find a cluster you should
compare your start value to the actual threshold computed. Maybe you
excluded the range in which your effect resides (smaller than 4 in that
case?).

You're totally right, my t_threshold in classical analysis was 3.49, so
smaller than 4. I'll try with that.
Again thanks a lot!

> The computation lasted 84min, so that remains quite long.

It's expected to last long since you have more clusters. This is a
consequence of method.
I haven't run simulations but I'd expect the TFCE to scale linearly to the
number of permutations and the number of clusters and of course to their
sizes within the thresholds.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140804/1e6d51cd/attachment.html