RandomisePermutation-based nonparametric inference
| ![]() |
Permutation methods (also known as randomisation methods) are used for inference (thresholding) on statistic maps when the null distribution is not known. The null distribution is unknown because either the noise in the data does not follow a simple distribution, or because the analysis carried out means that that it is not possible to analytically predict the null distribution in the final statistic image. randomise is a simple permutation program enabling modelling and inference using standard GLM design setup as used for example in FEAT. It can output voxelwise and cluster-based tests, and also offers variance smoothing as an option.
Warning: randomise is a beta-release program that has not been extensively tested yet!
randomise implements a Monte Carlo permutation test, where permutations of the data are randomly generated. This will produce almost identical results to an exhaustive permutation test, where the data is systematically permuted.
For more detail on permutation testing see TE Nichols and AP Holmes. Nonparametric Permutation Tests for Functional Neuroimaging: A Primer with Examples. Human Brain Mapping, 15:1-25, 2002.
A typical simple call to randomise uses the following syntax:
randomise -i <4D_input_data> -o <output_rootname> -d design.mat -t
design.con -m <mask_image> -n 5000 -D
design.mat
and design.con
are text files
containing the design matrix and list of contrasts required; they
follow the same format as generated by FEAT (see below for
example). The -n 5000
option tells randomise to generate
5000 different permutations of the data when building up the null
distribution to test against. The -D
option tells
randomise to demean the data before continuing - this is necessary
(for example for FMRI time series data) if you are not modelling the
mean in the design matrix.
randomise outputs the following thresholding options:
-c
<c_thresh>
, where the threshold is used to form
supra-threshold clusters of voxels.
If you have "confound regressors", randomise needs those to be
removed before continuing. Therefore, unlike with FEAT, you need to
specify these as a separate design matrix and use the -x
option when calling randomise; randomise then regresses these out of
the data before continuing. Note that for this to make sense, your
confounds and design of interest need to be orthogonal. In fact, in
general in randomise, your regressors should be orthogonal to each
other.
If your design is simply all 1s (for example, a single group of
subjects) then randomise needs to work in a different way. Normally it
generates random samples by randomly permuting the rows of the design;
however in this case it does so by randomly inverting the sign of the
1s. In this case, then, instead of specifying design and contrast
matrices on the command line, use the -1
option.
You can potentially improve the estimation of the variance that
feeds into the final "t" statistic image by using the variance
smoothing option -v <std>
where you need to specify
the spatial extent of the smoothing in mm.
Example: One-Sample T-test.
To perform a nonparametric 1-sample t-test on, say, COPEs, create
a 4D image of all of the images. There should be no repeated measures,
i.e., there should only be one image per subject. Because this is a
single group simple design you don't need a design matrix or contrasts
setup. Just use:
randomise -i OneSamp4D -o OneSampT -1
Note you do not need the -D
option (as the mean is in the
model), and omit the -n
option, so that 5000 permutations
will be performed.
If you have fewer than 20 subjects (approx. 20 DF), then you will
usually see an increase in power by using variance smoothing, as in
randomise -i OneSamp4D -o OneSampT -1 -v 10
which does a 10 mm HWHM variance smoothing.
Example: Two-Sample Unpaired T-test.
To perform a nonparametric 2-sample t-test on, say, COPEs, create
4D image of all of the images, with the subjects in the right order!
Create appropriate design.mat and design.con files. Then run:
randomise -i TwoSamp4D -o TwoSampT -d design.mat -t design.con -m mask