[FieldTrip] Fwd: fieldtrip cluster stats on circular data?
András Puszta
puszta.andris at gmail.com
Thu Dec 3 06:25:19 CET 2020
Hi Tom, hi all,
Did you look at CircStat toolbox?
https://www.jstatsoft.org/article/view/v031i10
As I understood correctly, in your case two sample Kuiper test would be
more simplier to perform and perhaps more suitable for the job.
Alternatively you can calculate the phase locking value(or whatever
parameter you are looking at) for each neuron then perform statistic on a
group level with adequate parametric test.
Bests
Andras
Schoffelen, J.M. (Jan Mathijs) <jan.schoffelen at donders.ru.nl> ezt írta
(időpont: 2020. dec. 1., K 11:30):
> Dear Tom, dear all,
>
> Let met reply to this e-mail on the discussion list, ’ter lering ende
> vermaak’ of - hopefully - many.
>
>
>
> Begin forwarded message:
>
> *From: *Tom Marshall <tom.marshall at psy.ox.ac.uk>
> *Subject: **fieldtrip cluster stats on circular data?*
> *Date: *30 November 2020 at 17:50:13 CET
> *To: *"Schoffelen, J.M. (Jan Mathijs)" <jan.schoffelen at donders.ru.nl>
>
> Hi JM,
>
> Is there support for using the fieldtrip cluster-stat functions if the
> axis I want to cluster over is *circular*?
>
> E.g., say I have spike counts at evenly-spaced phase bins of an
> oscillation, in two conditions, and I want to test the hypothesis of a
> difference between the way the spikes phase-cluster in condition A vs
> condition B. So instead of a time-axis, my data have a *phase*-axis that
> spans 0-2pi. It seems like you could use cluster-based permutation to
> test that hypothesis. In fact you could just hack those data into a
> fieldtrip structure and plug them into ft_timelockstatistics right away.
> But ft_timelockstatistics would then not identify clusters if they cross
> the arbitrary 0/2pi point (because 0 is at the beginning of the vector and
> 2pi at the end); you would be biased towards finding clusters in certain
> parts of the phase-space and not others by ignoring its circularity.
>
>
>
> Well, the first thing that comes to mind, is that you could - rather than
> framing this in terms of a ’statfun’ - look into computing spike-field
> coherence https://www.fieldtriptoolbox.org/tutorial/spikefield/. That is,
> spike-field coherence (or a similar measure that quantifies the extent to
> which the timing of point-process are aligned to a preferred phase of an
> oscillatory process. Then, what you’re after is to statistically compare
> the spike-field coherence across conditions (provided you control for
> difference in overall spike rate, and the SNR of the oscillation signal.
>
> Alternatively, and that’s what you asked about, one can think of designing
> a ’statfun’ that takes the circularity of the independent variable into
> account. So, in such a context, one would have a bunch of observed
> (dependent variables) values (e.g. spike rate), which are paired with an
> independent variable (i.e. the phase of an oscillation at which the spike
> rate was estimated). What I have done in the past was to operationalize
> your question into a test-statistic that quantified (least-squares) the
> amplitude of a cosine function to the data points, as a function of phase.
> As a matter of fact, following up on a related discussion I recently had
> in house, I just created a FAQ about this:
> https://www.fieldtriptoolbox.org/faq/how_can_i_test_whether_a_behavioral_measure_is_phasic/
>
> In this FAQ I pasted the code for a statufn (ft_statfun_cosinefit), which
> basically estimates the amplitude of the best-fitting cosine wave,
> determined by the phase values in the design. By default, it does not care
> about the optimal phase (although the function allows for the constraint to
> fit a cosine wave with a fixed (specified) phase). One could of course
> think of other - perhaps more appropriate - test statistics, e.g. the
> concentration parameter of a von Mises distribution (or the goodness-of-fit
> of a (mixture of) von Mises distributions, which also would address the
> question as to whether there’s a single preferred phase to begin with).
>
> The tricky bit would be to think of an appropriate randomization scheme,
> in order to test a null hypothesis at the first level.
>
> Yet, in your case, it seems you want to do a second level test (i.e. is
> the amplitude of the cosinefit in condition A systematically larger than in
> condition B), so the permutation only comes into play when you start
> permuting across conditions (in which case you can just use a depsamplesT
> based test statistic.
>
> Best wishes,
>
> JM
>
>
> So question part A: Has anyone implemented this before and if so is there
> code for it?
>
>
> Yes, and yes. See above.
>
> Part B: <wild guesses welcome> Do you think adapting the cluster-stats
> code would be a big/difficult job for a moderately-experienced coder who
> knows the fieldtrip source a bit (i.e., me)? Which low-level functions are
> the right place to start looking? And would this be useful for the
> fieldtrip user base? If so I’d happily try to implement it and submit a PR.
>
>
> Thanks. Let’s follow this up if you were thinking of another solution as
> the one outlined above.
>
>
> _______________________________________________
> 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/20201203/cb2ed6c7/attachment.htm>
More information about the fieldtrip
mailing list