Wilcoxon Signed-rank test
Table Of Contents
Introduction
A Wilcoxon Signed-rank test is a non-parametric version of a paired t test. The case where you want to use a Wilcoxon Signed-rank test is the same as a Mann-Whitney's U test, and the data are paired (i.e., the samples are independent).
What does Wilcoxon Signed-rank do?
Now we are looking at how a Wilcoxon Signed-rank test works. If you haven't read the Mann-Whitney's U test page, it would be good to read it before going ahead because the explanation is kind of similar.
As a Mann-Whitney's U test, a Wilcoxon Signed-rank test is that it treats the data as ordinal data. So what a Wilcoxon Signed-rank test is also to calculate the rank for each value, but calculate them based on the differences between the two groups. Let's think about some data from a 7-Likert scale question and say you have the following data.
| Group A | 1 | 3 | 2 | 4 | 2 | 5 | 4 | 1 | 6 | 2 |
|---|---|---|---|---|---|---|---|---|---|---|
| Group B | 3 | 5 | 6 | 4 | 2 | 4 | 7 | 6 | 3 | 2 |
Each column represents the paired data. You make the difference for each paired data point.
| Group A | 1 | 3 | 2 | 4 | 3 | 5 | 4 | 1 | 6 | 2 |
|---|---|---|---|---|---|---|---|---|---|---|
| Group B | 3 | 5 | 6 | 4 | 2 | 4 | 7 | 6 | 3 | 2 |
| Sign | - | - | - | + | + | - | - | + | ||
| Abs(Diff) | 2 | 2 | 4 | 0 | 1 | 1 | 3 | 5 | 3 | 0 |
Then, calculate the ranks for the differences.
| Group A | 1 | 3 | 2 | 4 | 3 | 5 | 4 | 1 | 6 | 2 |
|---|---|---|---|---|---|---|---|---|---|---|
| Group B | 3 | 5 | 6 | 4 | 2 | 4 | 7 | 6 | 3 | 2 |
| Sign | - | - | - | + | + | - | - | + | ||
| Abs(Diff) | 2 | 2 | 4 | 0 | 1 | 1 | 3 | 5 | 3 | 0 |
| Rank | 3.5 | 3.5 | 7.0 | 0 | 1.5 | 1.5 | 5.5 | 8.0 | 5.5 | 0 |
And combine the sign for each rank.
| Group A | 1 | 3 | 2 | 4 | 3 | 5 | 4 | 1 | 6 | 2 |
|---|---|---|---|---|---|---|---|---|---|---|
| Group B | 3 | 5 | 6 | 4 | 2 | 4 | 7 | 6 | 3 | 2 |
| Sign | - | - | - | + | + | - | - | + | ||
| Abs(Diff) | 2 | 2 | 4 | 0 | 1 | 1 | 3 | 5 | 3 | 0 |
| Rank | 3.5 | 3.5 | 7.0 | 0 | 1.5 | 1.5 | 5.5 | 8.0 | 5.5 | 0 |
| Signed Rank | -3.5 | -3.5 | -7.0 | 0 | +1.5 | +1.5 | -5.5 | -8.0 | +5.5 | 0 |
Now calculate the sums of the positive and negative ranks, which is called W value. The positive W is 8.5, and the negative W is 27.5. And we use the smaller W value, which is 8.5. A Wilcoxon Signed-rank test checks how likely it would be W=8.5.
Effect size
The calculation of the effect size of Wilcoxon Signed-rank test is fairly easy.
where N is the total number of the samples. Here is the standard value of r for small, medium, and large sizes.
| small size | medium size | large size | |
|---|---|---|---|
| abs(r) | 0.1 | 0.3 | 0.5 |
R code example
Let's prepare the data. Create the data like the results from a 5-Likert scale question (the response is 1, 2, 3, 4, or 5), and you have two groups (Group) to compare.
> GroupA <- c(1,3,2,4,3,2,1,1,3,2) > GroupB <- c(3,5,6,4,2,4,7,6,3,5)
Then, do a Wilcoxon Sign-rank test.
> wilcox.test(GroupA, GroupB, paired=T)
And you get the result.
Wilcoxon signed rank test with continuity correction data: GroupA and GroupB V = 1, p-value = 0.02024 alternative hypothesis: true location shift is not equal to 0 Warning messages: 1: In wilcox.test.default(GroupA, GroupB, paired = T) : cannot compute exact p-value with ties 2: In wilcox.test.default(GroupA, GroupB, paired = T) : cannot compute exact p-value with zeroes
From this result, we can see that the statistic to be used for a Wilcoxon test is 1. It is usually denoted as "W", but in R, it is presented as "V". However, as you can see here, the exact p value cannot be calculated because of ties. To address this, we need to use coin package.
> library(coin)
Then, do another Mann-Whitney test. But you have to format the data for Mann-Whitney test with coin.
> wilcoxsign_test(GroupA ~ GroupB, distribution="exact")
Now you get another result.
Exact Wilcoxon-Signed-Rank Test data: y by x (neg, pos) stratified by block Z = -2.3922, p-value = 0.01562 alternative hypothesis: true mu is not equal to 0
Thus, we have a significant effect of Group. You also calculate the effect size:
> 2.3922 / sqrt(20)
0.5349122
How to report
You can report the results of Mann-Whitney's U test as follows: The medians of Group A and Group B were 2.0 and 4.5, respectively. A Wilcoxon Signed-rank test shows that there is a significant effect of Group (W = 1, Z = -2.39, p < 0.05, r = 0.53).
References
For the effect size, please see: Field, A. Discovering statistics using SPSS. (2nd edition).
Can I know why do you divided it the Z value with sqrt(20). I thought this is a within subject design, so the value of N should be 10 - since you have 10 participants with two level of dependent variables (Group A and B)..
Thanks!