# How to do a Wilcoxon signed-rank test for matched pairs (in R)

## Task

Assume we have two samples of data that come in matched pairs, $x_1, x_2, x_3, \ldots x_k$ and $x’_1, x’_2, x’_3, \ldots x’_k$, which we might pair up as $(x_1,x’_1),(x_2,x’_2),\ldots,(x_k,x’_k)$. The two samples may be from different populations. Also assume that the sample sizes are small or the populations are not normally distributed.

Consider measuring the difference in each pair, $x_1-x’_1,x_2-x’_2,\ldots,x_k-x’_k$. We want to perform tests that compare the median of those differences, $m_D$, to a hypothesized value (equal, greater, or less). One method is the Wilcoxon Signed-Rank Test for Matched Pairs.

Related tasks:

- How to do a Kruskal-Wallis test
- How to do a Wilcoxon rank-sum test
- How to do a Wilcoxon signed-rank test

## Solution

The method we will use is equivalent to subtracting the two samples and then performing the signed-rank test. See how to do a Wilcoxon signed-rank test to compare the two methods.

We’re going to use fake data for illustrative purposes, but you can replace our fake data with your real data.

1
2
3

# Replace sample1 and sample2 with your data
sample1 <- c(156, 133, 90, 176, 119, 120, 40, 52, 167, 80)
sample2 <- c(45, 36, 78, 54, 12, 25, 39, 48, 52, 70)

We choose a value, $0 \le \alpha \le 1$, as the Type I Error Rate. We’ll let $\alpha$ be 0.05.

### Two-tailed test

To test the null hypothesis $H_0: m_D = 0$, we use a two-tailed test:

1

wilcox.test(sample1, sample2, alternative = "two.sided", mu = 0, paired = TRUE)

1
2
3
4
5

Wilcoxon signed rank exact test
data: sample1 and sample2
V = 55, p-value = 0.001953
alternative hypothesis: true location shift is not equal to 0

Our p-value, 0.00195, is less than $\alpha=0.05$, so we have sufficient evidence to reject the null hypothesis. The median difference is significantly different from zero.

### Right-tailed test

To test the null hypothesis $H_0: m_D \le 0$, we use a right-tailed test:

1

wilcox.test(sample1, sample2, alternative = "greater", mu = 0, paired = TRUE)

1
2
3
4
5

Wilcoxon signed rank exact test
data: sample1 and sample2
V = 55, p-value = 0.0009766
alternative hypothesis: true location shift is greater than 0

Our p-value, 0.0009766, is less than $\alpha=0.05$, so we have sufficient evidence to reject the null hypothesis. The median difference is significantly greater than zero.

### Left-tailed test

To test the null hypothesis $H_0: m_D \ge 0$, we use a left-tailed test:

1

wilcox.test(sample1, sample2, alternative = "less", mu = 0, paired = TRUE)

1
2
3
4
5

Wilcoxon signed rank exact test
data: sample1 and sample2
V = 55, p-value = 1
alternative hypothesis: true location shift is less than 0

Our p-value, 1.0, is greater than $\alpha$, so we do not have sufficient evidence to reject the null hypothesis. We should continue to assume that the mean difference may be less than (or equal to) zero.

NOTE: If there are ties in the data and there are fewer than 50 observations in each sample, then R will compute a $p$-value using the normal approximation, and there will be an error message indicating that the exact $p$-value cannot be calculated.

Content last modified on 24 July 2023.

See a problem? Tell us or edit the source.

Contributed by Elizabeth Czarniak (CZARNIA_ELIZ@bentley.edu)