mne.stats.permutation_cluster_1samp_test¶
-
mne.stats.permutation_cluster_1samp_test(X, threshold=None, n_permutations=1024, tail=0, stat_fun=None, adjacency=None, n_jobs=1, seed=None, max_step=1, exclude=None, step_down_p=0, t_power=1, out_type='indices', check_disjoint=False, buffer_size=1000, verbose=None)[source]¶ Non-parametric cluster-level paired t-test.
- Parameters
- X
array, shape (n_observations, p[, q]) The data to be clustered. The first dimension should correspond to the difference between paired samples (observations) in two conditions. The subarrays
X[k]can be 1D (e.g., time series) or 2D (e.g., time-frequency image) associated with the kth observation. For spatiotemporal data, see alsomne.stats.spatio_temporal_cluster_1samp_test().- threshold
float|dict|None If numeric, vertices with data values more extreme than
thresholdwill be used to form clusters. If threshold isNone, a t-threshold will be chosen automatically that corresponds to a p-value of 0.05 for the given number of observations (only valid when using a t-statistic). Ifthresholdis adict(with keys'start'and'step') then threshold-free cluster enhancement (TFCE) will be used (see the TFCE example and 1).- n_permutations
int| ‘all’ The number of permutations to compute. Can be ‘all’ to perform an exact test.
- tail
int If tail is 1, the statistic is thresholded above threshold. If tail is -1, the statistic is thresholded below threshold. If tail is 0, the statistic is thresholded on both sides of the distribution.
- stat_fun
callable()|None Function called to calculate the test statistic. Must accept 1D-array as input and return a 1D array. If
None(the default), usesmne.stats.ttest_1samp_no_p().- adjacency
scipy.sparse.spmatrix|None|False Defines adjacency between locations in the data, where “locations” can be spatial vertices, frequency bins, etc. If
False, assumes no adjacency (each location is treated as independent and unconnected). IfNone, a regular lattice adjacency is assumed, connecting each location to its neighbor(s) along the last dimension ofX(or the last two dimensions ifXis 2D). Ifadjacencyis a matrix, it is assumed to be symmetric (only the upper triangular half is used) and must be square with dimension equal toX.shape[-1]orX.shape[-1] * X.shape[-2].- n_jobs
int The number of jobs to run in parallel (default 1). Requires the joblib package.
- seed
None|int| instance ofRandomState If
seedis anint, it will be used as a seed forRandomState. IfNone, the seed will be obtained from the operating system (seeRandomStatefor details). Default isNone.- max_step
int Maximum distance along the second dimension (typically this is the “time” axis) between samples that are considered “connected”. Only used when
connectivityhas shape (n_vertices, n_vertices).- excludebool
arrayorNone Mask to apply to the data to exclude certain points from clustering (e.g., medial wall vertices). Should be the same shape as X. If None, no points are excluded.
- step_down_p
float To perform a step-down-in-jumps test, pass a p-value for clusters to exclude from each successive iteration. Default is zero, perform no step-down test (since no clusters will be smaller than this value). Setting this to a reasonable value, e.g. 0.05, can increase sensitivity but costs computation time.
- t_power
float Power to raise the statistical values (usually t-values) by before summing (sign will be retained). Note that
t_power=0will give a count of locations in each cluster,t_power=1will weight each location by its statistical score.- out_type‘mask’ | ‘indices’
Output format of clusters. If
'mask', returns boolean arrays the same shape as the input data, withTruevalues indicating locations that are part of a cluster. If'indices', returns a list of lists, where each sublist contains the indices of locations that together form a cluster. Note that for large datasets,'indices'may use far less memory than'mask'. The default translates to'mask'in version 0.21 but will change to'indices'in version 0.22.- check_disjointbool
Whether to check if the connectivity matrix can be separated into disjoint sets before clustering. This may lead to faster clustering, especially if the second dimension of
X(usually the “time” dimension) is large.- buffer_size
int|None Block size to use when computing test statistics. This can significantly reduce memory usage when n_jobs > 1 and memory sharing between processes is enabled (see
mne.set_cache_dir()), becauseXwill be shared between processes and each process only needs to allocate space for a small block of locations at a time.- verbosebool,
str,int, orNone If not None, override default verbose level (see
mne.verbose()and Logging documentation for more). If used, it should be passed as a keyword-argument only.
- X
- Returns
Notes
From an array of paired observations, e.g. a difference in signal amplitudes or power spectra in two conditions, calculate if the data distributions in the two conditions are significantly different. The procedure uses a cluster analysis with permutation test for calculating corrected p-values. Randomized data are generated with random sign flips. See 2 for more information.
Because a 1-sample t-test on the difference in observations is mathematically equivalent to a paired t-test, internally this function computes a 1-sample t-test (by default) and uses sign flipping (always) to perform permutations. This might not be suitable for the case where there is truly a single observation under test; see Statistical inference.
If
n_permutations >= 2 ** (n_samples - (tail == 0)),n_permutationsandseedwill be ignored since an exact test (full permutation test) will be performed.If no initial clusters are found, i.e., all points in the true distribution are below the threshold, then
clusters,cluster_pv, andH0will all be empty arrays.References
- 1
Stephen M. Smith and Thomas E. Nichols. Threshold-free cluster enhancement: addressing problems of smoothing, threshold dependence and localisation in cluster inference. NeuroImage, 44(1):83–98, 2009. doi:10.1016/j.neuroimage.2008.03.061.
- 2
Eric Maris and Robert Oostenveld. Nonparametric statistical testing of EEG- and MEG-data. Journal of Neuroscience Methods, 164(1):177–190, 2007. doi:10.1016/j.jneumeth.2007.03.024.