[med-svn] [python-mne] 205/376: ENH : making permutation_cluster_1samp_test more generic with stat_fun

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:22:38 UTC 2015


This is an automated email from the git hooks/post-receive script.

yoh pushed a commit to annotated tag v0.1
in repository python-mne.

commit 581ad27f81f319d52e76fd8856e620513b052201
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Mon Apr 18 11:08:28 2011 -0400

    ENH : making permutation_cluster_1samp_test more generic with stat_fun
---
 .../stats/plot_cluster_1samp_test_time_frequency.py    |  6 +++---
 mne/stats/__init__.py                                  |  3 ++-
 mne/stats/cluster_level.py                             | 18 +++++++++++++-----
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/examples/stats/plot_cluster_1samp_test_time_frequency.py b/examples/stats/plot_cluster_1samp_test_time_frequency.py
index 03a7ba5..5503881 100755
--- a/examples/stats/plot_cluster_1samp_test_time_frequency.py
+++ b/examples/stats/plot_cluster_1samp_test_time_frequency.py
@@ -26,7 +26,7 @@ import numpy as np
 import mne
 from mne import fiff
 from mne.time_frequency import single_trial_power
-from mne.stats import permutation_cluster_t_test
+from mne.stats import permutation_cluster_1samp_test
 from mne.datasets import sample
 
 ###############################################################################
@@ -85,9 +85,9 @@ epochs_power = np.log10(epochs_power)  # take log of ratio
 
 ###############################################################################
 # Compute statistic
-threshold = 2
+threshold = 2.5
 T_obs, clusters, cluster_p_values, H0 = \
-                   permutation_cluster_t_test(epochs_power,
+                   permutation_cluster_1samp_test(epochs_power,
                                n_permutations=100, threshold=threshold, tail=0)
 
 ###############################################################################
diff --git a/mne/stats/__init__.py b/mne/stats/__init__.py
index d61f12e..68488ea 100755
--- a/mne/stats/__init__.py
+++ b/mne/stats/__init__.py
@@ -1,2 +1,3 @@
 from .permutations import permutation_t_test
-from .cluster_level import permutation_cluster_test, permutation_cluster_t_test
+from .cluster_level import permutation_cluster_test, \
+                           permutation_cluster_1samp_test
diff --git a/mne/stats/cluster_level.py b/mne/stats/cluster_level.py
index 57e693b..c00ea1e 100755
--- a/mne/stats/cluster_level.py
+++ b/mne/stats/cluster_level.py
@@ -8,7 +8,7 @@
 
 import numpy as np
 from scipy import ndimage
-from scipy.stats import ttest_1samp
+from scipy import stats
 
 from .parametric import f_oneway
 
@@ -170,7 +170,15 @@ def permutation_cluster_test(X, stat_fun=f_oneway, threshold=1.67,
 permutation_cluster_test.__test__ = False
 
 
-def permutation_cluster_t_test(X, threshold=1.67, n_permutations=1000, tail=0):
+def ttest_1samp(X):
+    """Returns T-values
+    """
+    T, _ = stats.ttest_1samp(X, 0)
+    return T
+
+
+def permutation_cluster_1samp_test(X, threshold=1.67, n_permutations=1000,
+                                   tail=0, stat_fun=ttest_1samp):
     """Non-parametric cluster-level 1 sample T-test
 
     From a array of observations, e.g. signal amplitudes or power spectrum
@@ -220,7 +228,7 @@ def permutation_cluster_t_test(X, threshold=1.67, n_permutations=1000, tail=0):
     shape_ones = tuple([1] * X[0].ndim)
     # Step 1: Calculate T-stat for original data
     # -------------------------------------------------------------
-    T_obs, _ = ttest_1samp(X, 0)
+    T_obs = stat_fun(X)
 
     clusters, cluster_stats = _find_clusters(T_obs, threshold, tail)
 
@@ -234,7 +242,7 @@ def permutation_cluster_t_test(X, threshold=1.67, n_permutations=1000, tail=0):
             X_copy *= signs
 
             # Recompute statistic on randomized data
-            T_obs_surr, _ = ttest_1samp(X_copy, 0)
+            T_obs_surr = stat_fun(X_copy)
             _, perm_clusters_sums = _find_clusters(T_obs_surr, threshold, tail)
 
             if len(perm_clusters_sums) > 0:
@@ -250,7 +258,7 @@ def permutation_cluster_t_test(X, threshold=1.67, n_permutations=1000, tail=0):
         return T_obs, np.array([]), np.array([]), np.array([])
 
 
-permutation_cluster_t_test.__test__ = False
+permutation_cluster_1samp_test.__test__ = False
 
 # if __name__ == "__main__":
 #     noiselevel = 30

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git



More information about the debian-med-commit mailing list