Permutation test
A permutation test (also called re-randomization test) is an exact statistical hypothesis test making use of the proof by contradiction in which the distribution of the test statistic under the null hypothesis is obtained by calculating all possible values of the test statistic under possible rearrangements of the observed data. Permutation tests are, therefore, a form of resampling. Permutation tests can be understood as surrogate data testing where the surrogate data under the null hypothesis are obtained through permutations of the original data. In other words, the method by which treatments are allocated to subjects in an  experimental design is mirrored in the analysis of that design. If the labels are exchangeable under the null hypothesis, then the resulting tests yield exact significance levels; see also exchangeability. Confidence intervals can then be derived from the tests. The theory has evolved from the works of Ronald Fisher and E. J. G. Pitman in the 1930s. Permutation tests should not be confused with randomized tests. Method. To illustrate the basic idea of a permutation test, suppose we collect random variables formula_1 and formula_2 for each individual from two groups formula_3 and formula_4 whose sample means are formula_5 and formula_6 , and that we want to know whether formula_1 and formula_2 come from the same distribution. Let formula_9 and formula_10 be the sample size collected from each group. The permutation test is designed to determine whether the observed difference between the sample means is large enough to reject, at some significance level, the null hypothesis Hformula_11 that the data drawn from formula_3 is from the same distribution as the data drawn from formula_4. The test proceeds as follows. First, the difference in means between the two samples is calculated: this is the observed value of the test statistic, formula_14. Next, the  observations of groups formula_3 and formula_4 are pooled, and the difference in sample means is calculated and recorded for every possible way of dividing the pooled values into two groups of size formula_9 and formula_10 (i.e., for every permutation of the group labels A and B). The set of these calculated differences is the exact distribution of possible differences (for this sample) under the null hypothesis that group labels are exchangeable (i.e., are randomly assigned). The one-sided p-value of the test is calculated as the proportion of sampled permutations where the difference in means was greater than formula_14 . The two-sided p-value of the test is calculated as the proportion of sampled permutations where the absolute difference was greater than formula_20. Alternatively, if the only purpose of the test is to reject or not reject the null hypothesis, one could sort the recorded differences, and then observe if formula_14 is contained within the middle formula_22% of them, for some significance level formula_23. If it is not, we reject the hypothesis of identical probability curves at the formula_24 significance level. Relation to parametric tests. Permutation tests are a subset of non-parametric statistics. Assuming that our experimental data  come from data measured from two treatment groups, the method simply generates the distribution of mean differences under the assumption that the two groups are not distinct in terms of the measured variable. From this, one then uses the observed statistic (formula_14 above) to see to what extent this statistic is special, i.e., the likelihood of observing the magnitude of such a value (or larger) if the treatment labels had simply been randomized after treatment. In contrast to permutation tests, the distributions underlying many popular "classical" statistical tests, such as the "t"-test, "F"-test, "z"-test, and "χ" test, are obtained from  theoretical probability distributions. Fisher's exact test is an example of a commonly used permutation test for evaluating the association between two dichotomous variables. When sample sizes are very large, the Pearson's chi-square test will give accurate results. For small samples, the chi-square reference distribution cannot be assumed to give a correct description of the probability distribution of the test statistic, and in this situation the use of Fisher's exact test becomes more appropriate. Permutation tests exist in many situations where parametric tests do not (e.g., when deriving an optimal test when losses are proportional  to the size of an error rather than its square). All simple and many relatively complex parametric tests have a corresponding permutation test version that is defined by using the same test statistic as the parametric test, but obtains the p-value from the sample-specific permutation distribution of that statistic, rather than from the theoretical distribution derived from the parametric assumption. For example, it is possible in this manner to construct a permutation "t"-test, a permutation "χ" test of association, a permutation version of Aly's test for comparing variances and so on. The major drawbacks to permutation tests  are that they Advantages. Permutation tests exist for any test statistic, regardless of whether or not its distribution is known. Thus one is always free to choose the statistic which best discriminates between hypothesis and alternative and which minimizes losses. Permutation tests can be used for analyzing unbalanced designs and for combining dependent tests on mixtures of categorical, ordinal, and metric data (Pesarin, 2001) . They can also be used to analyze qualitative data that has been quantitized (i.e., turned into numbers). Permutation tests may be ideal for analyzing quantitized data that do not satisfy statistical assumptions underlying traditional parametric tests  (e.g., t-tests, ANOVA), see PERMANOVA. Before the 1980s, the burden of creating the reference distribution was overwhelming except for data sets with small sample sizes. Since the 1980s, the confluence of relatively inexpensive fast computers and the development of new sophisticated path algorithms applicable in special situations made the application of permutation test methods practical for a wide range of problems. It also initiated the addition of exact-test options in the main statistical software packages and the appearance of specialized software for performing a wide range of uni- and multi-variable exact tests and computing test-based "exact  confidence intervals. Limitations. An important assumption behind a permutation test is that the observations are exchangeable under the null hypothesis. An important consequence of this assumption is that tests of difference in location (like a permutation t-test) require equal variance under the normality assumption. In this respect, the permutation t-test shares the same weakness as the classical Student's t-test (the Behrens–Fisher problem). A third alternative in this situation is to use a bootstrap-based test. Good (2005) explains the difference between permutation tests and bootstrap tests the following way: Permutations test hypotheses concerning distributions; bootstraps  test hypotheses concerning parameters. As a result, the bootstrap entails less-stringent assumptions." Bootstrap tests are not exact. In some cases, a permutation test based on a properly studentized statistic can be asymptotically exact even when the exchangeability assumption is violated. Monte Carlo testing. An asymptotically equivalent permutation test can be created when there are too many possible orderings of the data to allow complete enumeration in a convenient manner. This is done by generating the reference distribution by Monte Carlo sampling, which takes a small (relative to the total number of permutations) random sample of the possible replicates. The  realization that this could be applied to any permutation test on any dataset was an important breakthrough in the area of applied statistics. The earliest known references to this approach are Eden and Yates (1933) and Dwass (1957). This type of permutation test is known under various names: "approximate permutation test", "Monte Carlo permutation tests" or "random permutation tests". After formula_26 random permutations, it is possible to obtain a confidence interval for the p-value based on the Binomial distribution, see Binomial proportion confidence interval. For example, if after formula_27 random permutations the p-value is estimated to be formula_28 , then a 99% confidence interval for the true formula_29 (the one that would result from trying all possible permutations) is formula_30. On the other hand, the purpose of estimating the p-value is most often to decide whether formula_31, where formula_32 is the threshold at which the null hypothesis will be rejected (typically formula_33). In the example above, the confidence interval only tells us that there is roughly a 50% chance that the p-value is smaller than 0.05, i.e. it is completely unclear whether the null hypothesis should be rejected at a level formula_34. If it is only important  to know whether formula_35 for a given formula_23, it is logical to continue simulating until the statement formula_35 can be established to be true or false with a very low probability of error. Given a bound formula_38 on the admissible probability of error (the probability of finding that formula_39 when in fact formula_35 or vice versa), the question of how many permutations to generate can be seen as the question of when to stop generating permutations, based on the outcomes of the simulations so far, in order to guarantee that the conclusion (which is either formula_35 or formula_42) is correct  with probability at least as large as formula_43. (formula_38 will typically be chosen to be extremely small, e.g. 1/1000.) Stopping rules to achieve this have been developed which can be incorporated with minimal additional computational cost. In fact, depending on the true underlying p-value it will often be found that the number of simulations required is remarkably small (e.g. as low as 5 and often not larger than 100) before a decision can be reached with virtual certainty. Literature. Original references: Modern references: Computational methods: