mne.stats.permutation_cluster_1samp_test

mne.stats.permutation_cluster_1samp_test(X, threshold=None, n_permutations=1024, tail=0, stat_fun=<function ttest_1samp_no_p>, connectivity=None, verbose=None, n_jobs=1, seed=None, max_step=1, exclude=None, step_down_p=0, t_power=1, out_type='mask', check_disjoint=False, buffer_size=1000)

Non-parametric cluster-level 1 sample T-test

From a array of observations, e.g. signal amplitudes or power spectrum estimates etc., calculate if the observed mean significantly deviates from 0. The procedure uses a cluster analysis with permutation test for calculating corrected p-values. Randomized data are generated with random sign flips.

Parameters:

X : array, shape=(n_samples, p, q) or (n_samples, p)

Array where the first dimension corresponds to the samples (observations). X[k] can be a 1D or 2D array (time series or TF image) associated to the kth observation.

threshold : float | dict | None

If threshold is None, it will choose a t-threshold equivalent to p < 0.05 for the given number of (within-subject) observations. If a dict is used, then threshold-free cluster enhancement (TFCE) will be used.

n_permutations : int

The number of permutations to compute.

tail : -1 or 0 or 1 (default = 0)

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 : function

Function used to compute the statistical map.

connectivity : sparse matrix or None

Defines connectivity between features. The matrix is assumed to be symmetric and only the upper triangular half is used. This matrix must be square with dimension (n_vertices * n_times) or (n_vertices). Default is None, i.e, a regular lattice connectivity. Use square n_vertices matrix for datasets with a large temporal extent to save on memory and computation time.

verbose : bool, str, int, or None

If not None, override default verbose level (see mne.verbose).

n_jobs : int

Number of permutations to run in parallel (requires joblib package).

seed : int or None

Seed the random number generator for results reproducibility. Note that if n_permutations >= 2^(n_samples) [or (2^(n_samples-1)) for two-tailed tests], this value will be ignored since an exact test (full permutation test) will be performed.

max_step : int

When connectivity is a n_vertices x n_vertices matrix, specify the maximum number of steps between vertices along the second dimension (typically time) to be considered connected. This is not used for full or None connectivity matrices.

exclude : boolean array or None

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 == 0 will give a count of nodes in each cluster, t_power == 1 will weight each node by its statistical score.

out_type : str

For arrays with connectivity, this sets the output format for clusters. If ‘mask’, it will pass back a list of boolean mask arrays. If ‘indices’, it will pass back a list of lists, where each list is the set of vertices in a given cluster. Note that the latter may use far less memory for large datasets.

check_disjoint : bool

If True, the connectivity matrix (or list) will be examined to determine of it can be separated into disjoint sets. In some cases (usually with connectivity as a list and many “time” points), this can lead to faster clustering, but results should be identical.

buffer_size: int or None

The statistics will be computed for blocks of variables of size “buffer_size” at a time. This is option significantly reduces the memory requirements when n_jobs > 1 and memory sharing between processes is enabled (see set_cache_dir()), as X will be shared between processes and each process only needs to allocate space for a small block of variables.

Returns:

T_obs : array of shape [n_tests]

T-statistic observed for all variables

clusters : list

List type defined by out_type above.

cluster_pv : array

P-value for each cluster

H0 : array of shape [n_permutations]

Max cluster level stats observed under permutation.

Notes

Reference: Cluster permutation algorithm as described in Maris/Oostenveld (2007), “Nonparametric statistical testing of EEG- and MEG-data” Journal of Neuroscience Methods, Vol. 164, No. 1., pp. 177-190. doi:10.1016/j.jneumeth.2007.03.024

Examples using mne.stats.permutation_cluster_1samp_test