-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is the ARI methond too strict? #5
Comments
Hi @finch-f, thanks for opening an issue. ARI itself has similar statistical power to traditional cluster-based methods (for detecting TDP > 0, not necessarily TDP > .95). However, some of the current package defaults are not the most sensible and can hinder detection, which may be what's causing your problem -- though I can't know for sure without more details. I hope to iron these issues out in the next release, or at least make them more transparent to the user, but I've been a bit too busy to work on the package lately. Specifically, the univariate test used by the So you'll probably want to do one of the following, and then I'd appreciate if you report back what worked for you :)
|
Hi, John Veillette, thank you so much for your detailed reply. I finally got time for my data analysis and found a stable way to log into github. And I must apologize for the insufficient information I provided last time. Anyway, I followed your suggestions to see what happened. The following is my code for a permutation type of ARI. `np.random.seed(0) results = scipy.io.loadmat(r"F:\MEG\MEG CLEAN DATA\group_result.mat") data = results['res_group_condition'][0] time = results['res_group_condition'][1] X = data print(X.shape) # observations x times alpha = .05 p_vals,tdp,clusters = all_resolutions_inference(X,alpha=alpha,tail=1,ari_type='permutation',n_permutations=100000)` Increasing the n_permutations to 100000 and setting ari_type = 'permutation' produced similar result as the previous version. So I changed to use a non-permutation type of ARI. Here is my code: `from scipy.stats import ttest_1samp condition = 'condition_A' def one_sample_ttest(data): def non_param_one_sample_ttest(data): np.random.seed(0) results = scipy.io.loadmat(r'F:\MEG\MEG CLEAN DATA\group_result.mat') data = results['res_group_condition'][0] time = results['res_group_condition'][1] X = data alpha = .05 p_vals, tdp, clusters = all_resolutions_inference( Now the results seemed reasonable: My main concern is which one is the better way for ARI? Although the second one produced the desired results, would it be too loose? In fact, it produced a result similar to the cluster-based permutation test, which is criticized for generating to broad area of results. So can I use it in my paper? By the way, I have one small question for ARI. Since ARI makes inference at voxel/time-point level possible, can I use it to determine the onset of an effect in EEG/MEG analysis? I know this is not a question about the mne-ari package. But as a beginner in ARI, I really want to hear your advice on this question. Thanks again for your time and helpful suggestions. |
No need to be concerned, I think. ARI should be a valid correction if the univariate test you're using is conservative -- that is, if the false positive rate is actually <= 0.05 if you use p/alpha <= 0.05 as your cutoff. The original paper introducing ARI used (I think) a parametric Z-test for its univariate test since that's the norm (no pun intended) in the fMRI literature, but us EEG folk tend to stick with non-parametric tests. In that vein, the Wilcoxon test you define in You raise an interesting point about whether you should be troubled if you're getting similar results to a cluster-based permutation test. You're right that cluster-based permutation tests can overestimate the extent of an effect, but they don't always overestimate the extent. Sassenhagan and Draschkow estimate, by their simulation, about a 20% false positive rate for claims about effect onset -- that's worse than the target 0.05, but not 100%. ARI gives you a way of checking whether a particular cluster has a high enough proportion of true positive voxels/univariate tests to use the extent of the cluster as a proxy for the extent of the effect. When I repeat Sassenhagan and Draschkow/s simulations with only clusters ARI estimates have TDP > 0.95, claims about effect extent/onset are quite conservative. Does that answer your questions? |
Hi, @john-veillette, thank you very much for your insights and opinions! I have also read carefully the content in the link you provided, which deepened my understanding of ARI. They have been extremely helpful in my data analysis work, and I have benefited greatly from them. Thank you once again~ |
Great, glad I could help. I'll leave this issue open, since it highlights the need for a better default univariate test -- probably Wilxocon or similar -- for parametric ARI. (Of course, this has to wait until the next major/breaking release, since I don't want to interrupt anyone's current workflow.) |
Hi, I really appreciate this package, as it addresses my question in my study. I am wondering if the ARI method is too strict. After using this package on my data, all clusters (obtained in a traditional cluster-based permutation test) were gone. I just want to make sure this is a normal situation. The result can been seen in the plot:
As you can see, there is a long interval where 1-pvalue is very close to 1. However, no clusters was found via mne-ari. Is this normal?
Thanks for your kind help.
The text was updated successfully, but these errors were encountered: