Wilcoxon signed-rank test
The Wilcoxon signed-rank test is a non-parametric statistical hypothesis test used when comparing two related samples, matched samples, or repeated measurements on a single sample to assess whether their population mean ranks differ (i.e. it is a paired difference test). It can be used as an alternative to the paired Student's t-test, t-test for matched pairs, or the t-test for dependent samples when the population cannot be assumed to be normally distributed.
The Wilcoxon signed-rank test is not the same as the Wilcoxon rank-sum test, although both are nonparametric and involve summation of ranks.
The test is named for Frank Wilcoxon (1892–1965) who, in a single paper, proposed both it and the rank-sum test for two independent samples (Wilcoxon, 1945). The test was popularized by Sidney Siegel (1956) in his influential text book on non-parametric statistics. Siegel used the symbol T for a value related to, but not the same as, . In consequence, the test is sometimes referred to as the Wilcoxon T test, and the test statistic is reported as a value of T.
- Data are paired and come from the same population.
- Each pair is chosen randomly and independently.
- The data are measured at least on an ordinal scale, but need not be normal.
Let be the sample size, the number of pairs. Thus, there are a total of 2N data points. For , let and denote the measurements.
- H0: median difference between the pairs is zero
- H1: median difference is not zero.
- For , calculate and , where is the sign function.
- Exclude pairs with . Let be the reduced sample size.
- Order the remaining pairs from smallest absolute difference to largest absolute difference, .
- Rank the pairs, starting with the smallest as 1. Ties receive a rank equal to the average of the ranks they span. Let denote the rank.
- Calculate the test statistic
- , the absolute value of the sum of the signed ranks.
- As increases, the sampling distribution of converges to a normal distribution. Thus,
The T statistic used by Siegel is the smaller of two sums of ranks of given sign; in the example given below, therefore, T would equal 3+4+5+6=18. Low values of T are required for significance. As will be obvious from the example below, T is easier to calculate by hand than W.
Excluding zeros is not a statistically justified method and such an approach can lead to enormous calculation errors. A more stable method is:
- Calculate , (assume sgn(0) = 0)
- Calculate sampling probabilities
- For use normal appoximation
|order by absolute difference||
- is the sign function, is the absolute value, and is the rank. Notice that pairs 3 and 9 are tied in absolute value. They would be ranked 1 and 2, so each gets the average of those ranks, 1.5.
- Mann-Whitney-Wilcoxon test (the variant for two independent samples)
- Sign test (Like Wilcoxon test, but without the assumption of symmetric distribution of the differences around the median, and without using the magnitude of the difference)
- Lowry, Richard. "Concepts & Applications of Inferential Statistics". Retrieved 24 March 2011.
- Wilcoxon, Frank (Dec 1945). "Individual comparisons by ranking methods". Biometrics Bulletin 1 (6): 80–83.
- Siegel, Sidney (1956). Non-parametric statistics for the behavioral sciences. New York: McGraw-Hill. pp. 75–83.
- Ikewelugo Cyprian Anaene Oyeka (Apr 2012). "Modified Wilcoxon Signed-Rank Test". Open Journal of Statistics: 172–176.
- Wilcoxon Signed-Rank Test in R
- Description of how to calculate p for the Wilcoxon signed-ranks test
- Example of using the Wilcoxon signed-rank test
- An online version of the test
- A table of critical values for the Wilcoxon signed-rank test
- ALGLIB includes implementation of the Wilcoxon signed-rank test in C++, C#, Delphi, Visual Basic, etc.
- The free statistical software R includes an implementation of the test as
wilcox.test(x,y, paired=TRUE), where x and y are vectors of equal length.
- GNU Octave implements various one-tailed and two-tailed versions of the test in the
- SciPy includes an implementation of the Wilcoxon signed-rank test in Python