The Wilcoxon signedrank test is a nonparametric statistical hypothesis test used to compare 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 ttest, ttest for matched pairs, or the ttest for dependent samples when the population cannot be assumed to be normally distributed.^{[1]} A Wilcoxon signedrank test is a nonparametric test that can be used to determine whether two dependent samples were selected from populations having the same distribution.
History
The test is named for Frank Wilcoxon (18921965) who, in a single paper, proposed both it and the ranksum test for two independent samples (Wilcoxon, 1945).^{[2]} The test was popularized by Sidney Siegel (1956) in his influential textbook on nonparametric statistics.^{[3]} Siegel used the symbol T for a value related to, but not the same as, $W$. In consequence, the test is sometimes referred to as the Wilcoxon T test, and the test statistic is reported as a value of T.
Assumptions
 Data are paired and come from the same population.
 Each pair is chosen randomly and independently^{[]}.
 The data are measured on at least an interval scale when, as is usual, withinpair differences are calculated to perform the test (though it does suffice that withinpair comparisons are on an ordinal scale).
Test procedure
Let $N$ be the sample size, i.e., the number of pairs. Thus, there are a total of 2N data points. For pairs $i=1,...,N$, let $x_{1,i}$ and $x_{2,i}$ denote the measurements.
 H_{0}: difference between the pairs follows a symmetric distribution around zero
 H_{1}: difference between the pairs does not follow a symmetric distribution around zero.
 For $i=1,...,N$, calculate $x_{2,i}x_{1,i}$ and $\operatorname {sgn} (x_{2,i}x_{1,i})$, where $\operatorname {sgn}$ is the sign function.
 Exclude pairs with $x_{2,i}x_{1,i}=0$. Let $N_{r}$ be the reduced sample size.
 Order the remaining $N_{r}$ pairs from smallest absolute difference to largest absolute difference, $x_{2,i}x_{1,i}$.
 Rank the pairs, starting with the smallest as 1. Ties receive a rank equal to the average of the ranks they span. Let $R_{i}$ denote the rank.
 Calculate the test statistic $W$
 $W=\sum _{i=1}^{N_{r}}[\operatorname {sgn}(x_{2,i}x_{1,i})\cdot R_{i}]$, the sum of the signed ranks.
 Under null hypothesis, $W$ follows a specific distribution with no simple expression. This distribution has an expected value of 0 and a variance of ${\frac {N_{r}(N_{r}+1)(2N_{r}+1)}{6}}$.
 $W$ can be compared to a critical value from a reference table.^{[1]}
 The twosided test consists in rejecting $H_{0}$ if $W>W_{critical,N_{r}}$.
 As $N_{r}$ increases, the sampling distribution of $W$ converges to a normal distribution. Thus,
 For $N_{r}\geq 10$, a zscore can be calculated as $z={\frac {W}{\sigma _{W}}},\sigma _{W}={\sqrt {\frac {N_{r}(N_{r}+1)(2N_{r}+1)}{6}}}$.
 To perform a twosided test, reject $H_{0}$ if $z>z_{critical}$.
 Alternatively, onesided tests can be performed with either the exact or the approximative distribution. pvalues can also be calculated.
Original test
The original Wilcoxon's proposal used a different statistic. Denoted by Siegel as the T statistic, it is the smaller of the 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 and the test is equivalent to the twosided test described above; however, the distribution of the statistic under $H_{0}$ has to be adjusted.
Example
$i$

$x_{2,i}$

$x_{1,i}$

$x_{2,i}x_{1,i}$


$\operatorname {sgn}$

${\text{abs}}$


1

125

110

1

15
 2

115

122

1

7
 3

130

125

1

5
 4

140

120

1

20
 5

140

140


0
 6

115

124

1

9
 7

140

123

1

17
 8

125

137

1

12
 9

140

135

1

5
 10

135

145

1

10


order by absolute difference

$i$

$x_{2,i}$

$x_{1,i}$

$x_{2,i}x_{1,i}$


$\operatorname {sgn}$

${\text{abs}}$

$R_{i}$

$\operatorname {sgn} \cdot R_{i}$


5

140

140


0


 3

130

125

1

5

1.5

1.5
 9

140

135

1

5

1.5

1.5
 2

115

122

1

7

3

3
 6

115

124

1

9

4

4
 10

135

145

1

10

5

5
 8

125

137

1

12

6

6
 1

125

110

1

15

7

7
 7

140

123

1

17

8

8
 4

140

120

1

20

9

9


 $\operatorname {sgn}$ is the sign function, ${\text{abs}}$ is the absolute value, and $R_{i}$ 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.
 $N_{r}=101=9,W=1.5+1.53456+7+8+9=9.$
 $W>W_{\alpha =0.05,\ 9{\text{, twosided}}}=6$
 $\therefore {\text{reject }}H_{0}.$
Limitation
As demonstrated in the example, when the difference between the groups is zero, the observations are discarded. This is of particular concern if the samples are taken from a discrete distribution. In these scenarios the modification to the Wilcoxon test by Pratt 1959, provides an alternative which incorporates the zero differences.^{[4]}^{[5]} This modification is more robust for data on an ordinal scale.^{[5]}
Effect size
To compute an effect size for the signedrank test, one can use the rank correlation.
If the test statistic W is reported, the rank correlation r is equal to the test statistic W divided by the total rank sum S, or r = W/S.
^{[6]}
Using the above example, the test statistic is W = 9. The sample size of 9 has a total rank sum of S = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) = 45. Hence, the rank correlation is 9/45, so r = 0.20.
If the test statistic T is reported, an equivalent way to compute the rank correlation is with the difference in proportion between the two rank sums, which is the Kerby (2014) simple difference formula.^{[6]} To continue with the current example, the sample size is 9, so the total rank sum is 45. T is the smaller of the two rank sums, so T is 3 + 4 + 5 + 6 = 18. From this information alone, the remaining rank sum can be computed, because it is the total sum S minus T, or in this case 45  18 = 27. Next, the two ranksum proportions are 27/45 = 60% and 18/45 = 40%. Finally, the rank correlation is the difference between the two proportions (.60 minus .40), hence r = .20.
Implementations
 ALGLIB includes implementation of the Wilcoxon signedrank 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.^{[7]}
 GNU Octave implements various onetailed and twotailed versions of the test in the
wilcoxon_test
function.
 SciPy includes an implementation of the Wilcoxon signedrank test in Python
 Accord.NET includes an implementation of the Wilcoxon signedrank test in C# for .NET applications
See also
 MannWhitneyWilcoxon 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)
References
 ^ ^{a} ^{b} Lowry, Richard. "Concepts & Applications of Inferential Statistics". Retrieved 2011.
 ^ Wilcoxon, Frank (Dec 1945). "Individual comparisons by ranking methods" (PDF). Biometrics Bulletin. 1 (6): 8083. doi:10.2307/3001968.
 ^ Siegel, Sidney (1956). Nonparametric statistics for the behavioral sciences. New York: McGrawHill. pp. 7583.
 ^ Pratt, J (1959). "Remarks on zeros and ties in the Wilcoxon signed rank procedures". Journal of the American Statistical Association. 54 (287): 655667. doi:10.1080/01621459.1959.10501526.
 ^ ^{a} ^{b} Derrick, B; White, P (2017). "Comparing Two Samples from an Individual Likert Question". International Journal of Mathematics and Statistics. 18 (3): 113.
 ^ ^{a} ^{b} Kerby, Dave S. (2014), "The simple difference formula: An approach to teaching nonparametric correlation.", Comprehensive Psychology, 3, doi:10.2466/11.IT.3.1
 ^ Dalgaard, Peter (2008). Introductory Statistics with R. Springer Science & Business Media. pp. 99100. ISBN 9780387790534.
External links