The difference between mean scores
from model 1 and
mean scores
from model 2 is used as the test statistic.
Under the null hypothesis of no difference, the actually observed
difference between mean scores should not be notably different from
the distribution of the test statistic under permutation.
As the computation of all possible permutations is only feasible for
small datasets, a random sample of permutations is used to obtain the
null distribution. The resulting p-value thus depends on the
.Random.seed
.
permutationTest(score1, score2, nPermutation = 9999,
plot = FALSE, verbose = FALSE)
a list of the following elements:
observed difference in mean scores, i.e.,
mean(score1) - mean(score2)
p-value of the permutation test
p-value of the corresponding
t.test(score1, score2, paired=TRUE)
numeric vectors of scores from models 1 and 2, respectively.
number of Monte Carlo replicates.
logical indicating if a truehist
of the nPermutation
permutation test statistics should be plotted with a vertical line
marking the observed difference of the means.
To customize the histogram, plot
can also be a list of
arguments for truehist
replacing internal defaults.
logical indicating if the results should be printed in one line.
Michaela Paul with contributions by Sebastian Meyer
For each permutation, we first randomly assign the membership of the n
individual scores to either model 1 or 2 with probability 0.5. We then
compute the respective difference in mean for model 1 and 2 in this
permuted set of scores. The Monte Carlo p-value is then given by
(1 + #{permuted differences larger than observed difference (in
absolute value)}) / (1 + nPermutation
).
Paul, M. and Held, L. (2011): Predictive assessment of a non-linear random effects model for multivariate time series of infectious disease counts. Statistics in Medicine, 30 (10), 1118-1136. tools:::Rd_expr_doi("10.1002/sim.4177")
Package coin for a comprehensive permutation test framework.
permutationTest(rnorm(50, 1.5), rnorm(50, 1), plot = TRUE)
Run the code above in your browser using DataLab