<div dir="ltr">Dear Eelke,<div><br></div><div>Many thanks for your helpful and detailed answers. I think that there is an error in the documentation about the configuration option for performing ROC analysis. The correct one should be cfg.statistic = 'ft_statfun_roc'. Otherwise, it will call the matlab built-in ROC function.</div>
<div><br></div><div style>Meanwhile, just to clarify my concept about the ROC_based permutation tests. In the initial stage, does the test calculate whether for every sample, the area under ROC curve is significant from 0.5. In this sense, should I specify cfg.clusteralpha = 0.5?</div>
<div style><br></div><div style>Best regards,</div><div style><br></div><div style>Shen-Mou Hsu</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 11, 2013 at 4:18 PM, Eelke Spaak <span dir="ltr"><<a href="mailto:eelke.spaak@donders.ru.nl" target="_blank">eelke.spaak@donders.ru.nl</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Shen-Mou Hsu,<br>
<br>
With regards to your first question, I do not know the answer, so<br>
someone else might help you there.<br>
<br>
In response to your second question, regarding the error "could not<br>
determine the parametric critical value for clustering", this is<br>
caused by the value of cfg.clusterthreshold used. The default value<br>
there is 'parametric', meaning that the statistics routine will ask<br>
your 'statfun' to compute a parametric threshold for considering a<br>
(time/frequency/channel)-voxel a cluster-member candidate. This can be<br>
done by e.g. depsamplesT or indepsamplesT, as it is possible to<br>
analytically compute a T value corresponding to p < 0.05. However, in<br>
the case of the ROC statistic, no such parametric estimate can be<br>
computed (or perhaps it can be in some way, I don't know, but at least<br>
I know the FT implementation does not).<br>
<br>
Fortunately, the statistics routines also allow you to use a<br>
nonparametric threshold for cluster-member candidates, based on the<br>
generated distribution of the test statistic under the null<br>
hypothesis. To use this, simply specify cfg.clusterthreshold =<br>
'nonparametric_individual' or cfg.clusterthreshold =<br>
'nonparametric_common'. The difference between the two is that the<br>
former computes a threshold per voxel, and the latter uses the same<br>
threshold for all voxels. Which one is appropriate for you I don't<br>
know. (Good reasons for using 'nonparametric_individual' might be a<br>
strong variation of your test statistic with frequency. I know for a<br>
fact this is the case with certain quantifications of phase-amplitude<br>
coupling; these show much higher values in the low frequencies even<br>
when computed on noise.)<br>
<br>
Hope this helps.<br>
<br>
Best,<br>
Eelke<br>
<div><div class="h5"><br>
On 11 June 2013 09:48, Shen-Mou Hsu <<a href="mailto:explena@gmail.com">explena@gmail.com</a>> wrote:<br>
> Dear all,<br>
><br>
> I was trying to perform signle-trial ROC-based permutation tests using the<br>
> statfun_roc. However I encountered two questions and wondered if anyone<br>
> could kindly shed some light on the issues. First, is it necessary to<br>
> perform baseline normalization for each trial before the tests? Second, an<br>
> error message returned stating "Error using roc. Too many input arguments.<br>
> Error using ft_statistics_montecarlo (line 223) could not determine the<br>
> parametric critical value for clustering", after running the following<br>
> script:<br>
><br>
> load (['t_RF_EpoRejDePow']); load (['t_RN_EpoRejDePow']);<br>
><br>
> cfg = [];<br>
> cfg.channel     = 'MEG';<br>
> cfg.latency     = [-0.35 0.55];<br>
> cfg.frequency   = [8 12];<br>
> cfg.parameter   = 'powspctrm';<br>
> cfg.method      = 'montecarlo';<br>
> cfg.statistic   = 'roc';<br>
> cfg.alpha       = 0.025;<br>
> cfg.tail = 0;<br>
> cfg.correctm    = 'cluster';<br>
> cfg.clusteralpha = 0.05;<br>
> % cfg.correcttail = 'prob';<br>
> cfg.clustertail = 0;<br>
> cfg.numrandomization = 1000;<br>
> cfg.minnbchan        = 2;<br>
> cfg_neighb.method    = 'distance';<br>
> cfg.neighbours       = ft_prepare_neighbours(cfg_neighb, t_RN_EpoRejDePow);<br>
> cfg.logtransform = 'yes';<br>
><br>
> design = [1*ones(1,size(t_RF_EpoRejDePow.powspctrm,1))<br>
> 2*ones(1,size(t_RN_EpoRejDePow.powspctrm,1))]; % the first dimension of<br>
> these variable is the trial number.<br>
> cfg.design  = design;<br>
><br>
> P_ROC_t_RFvsRN = ft_freqstatistics(cfg,t_RF_EpoRejDePow,t_RN_EpoRejDePow);<br>
><br>
><br>
> Any help is greatly appreciated.<br>
><br>
> Best regards,<br>
><br>
> Shen-Mou Hsu<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> fieldtrip mailing list<br>
> <a href="mailto:fieldtrip@donders.ru.nl">fieldtrip@donders.ru.nl</a><br>
> <a href="http://mailman.science.ru.nl/mailman/listinfo/fieldtrip" target="_blank">http://mailman.science.ru.nl/mailman/listinfo/fieldtrip</a><br>
_______________________________________________<br>
fieldtrip mailing list<br>
<a href="mailto:fieldtrip@donders.ru.nl">fieldtrip@donders.ru.nl</a><br>
<a href="http://mailman.science.ru.nl/mailman/listinfo/fieldtrip" target="_blank">http://mailman.science.ru.nl/mailman/listinfo/fieldtrip</a><br>
</blockquote></div><br></div>