Wilcoxon Signed-Ranks Test

Wilcoxon Signed-Ranks Test for Paired Samples

When the requirements for the t-test for two paired samples are not satisfied, the Wilcoxon Signed-Rank Test for Paired Samples non-parametric test can often be used.

In particular, we assume n subjects from a given population with two observations xi and yi for each subject i. This results in two paired samples {x1,…,xn} and {y1,…,yn} as described in Paired Sample t Test. The requirements for the Wilcoxon Signed-Rank Tests for Paired Samples where zi = yi  – xi for all i = 1, … , n, are as follows:

    • the zi are independent
    • xi and yi are interval data (and so a ranking can be applied and differences can be taken)

For this test we use the following null hypothesis:

H0: the distribution of difference scores in the population is symmetric about zero

I.e. any differences are due to chance. We show how to apply this test via a couple of examples.

Example 1: A researcher wanted to determine whether people’s ability to identify objects with their right eye differs from their ability with their left eye. 16 subjects were presented with a series of images and were scored on their abilities to identify objects which each eye. The results tabulated in Figure 1. Based on this data determine use the Wilcoxon Signed-Ranks Test to whether there is a difference between the two eyes.

Wilcoxon paired sample Excel

Figure 1 – Wilcoxon Signed-Ranks Test for Paired Samples

We perform a two-tailed Wilcoxon Signed-Ranks Test for Paired Samples with α = .05 to test the following null hypothesis:

H0: any differences between the two eyes is due to chance (essentially based on the median of the differences)

The scores for the two eyes are presented in columns B and C. Column D contains the differences between the scores for each subject. Column E contains the absolute value of these differences, eliminating any zero differences from further consideration. Column F contains the adjusted rankings of the non-zero values in column E. Column G reports the values in column F where the difference in column D is positive. Column H reports the values in column F where the difference in column D is negative.

Columns G and H are summed (in cells G19 and H19) to obtain T+ of 69.5 and T- of 35.5. The smaller of these values is the test statistic T = 35.5 (in cell K7).

The critical value for the T statistic is given in the Wilcoxon Signed-Ranks Table. Here we use α = .05 and n = 14 (i.e. the 15 subjects less the 1 subject where the difference value in column D is zero). From the table we find that Tcrit = 21 (two-tail test). Since Tcrit = 21 < 35.5 = T, we can’t reject the null hypothesis (i.e. p ≥ .05), and conclude there is no significant difference between the two eyes.

Observation: Generally for n > 25, an estimate using the normal distribution can be made (as seen in the next example). The actual threshold of 25 is not universally accepted and can be lowered to around 15 or raised to about 50.

Property 1: For n is sufficiently large, the T statistic (or even T+ or T-) has an approximately normal distribution N(μ, σ) where

image974

Click here for a proof of Property 1.

Example 2: A study is made to determine whether there is a difference between husbands and wives attitudes towards politics. A questionnaire measuring this was given to 30 couples with the results summarized in Figure 2.

Paired signed-ranks testFigure 2 – Wilcoxon Signed-Ranks Test for Paired Samples

The table above is similar to that in Figure 1. Since T = 90 < 98 = Tcrit (two-tail test), we conclude there is a significant difference between husbands and their wives regarding politics, Alternatively, we can conduct the analysis using the normal distribution approximation, as we did in Example 2 of Mann-Whitney Test. This time, we calculate a mean of 203 (cell N8), variance of 1928.5 (cell N9) and standard deviation of 43.9 (cell N10). From these we calculate a z-score of 2.57, which yields a p-value of .005 (one-tail test), which is less than α = .05, and so once again we reject the null hypothesis.

Real Statistics Excel Functions: The following functions are provided in the Real Statistics Pack:

SRankPair(R1) = T for a pair of samples contained in range R1, where R1 consists of two columns, one for each paired sample. R1 must contain only numeric values.

SRTESTPair(R1,,tails) = p-value for Signed-Ranks Test using the normal distribution approximation for the pair of samples contained in range R1, where R1 consists of two columns, one for each paired sample. R1 must contain only numeric values. tails = # of tails: 1 (default) or 2.

There are also versions of SRankPair and SRTEST which take two ranges, namely:

SRankPair(R1, R2) = T for a pair of samples contained in ranges R1 and R2, where both R1 and R2 have only one column, one for each paired sample. R1 and R2 must contain only numeric values and they must have the same number of elements.

SRTESTPair(R1, R2, tails) = p-value for Signed-Ranks test using the normal distribution approximation for the pair of samples contained in range R1 and R2, where both R1 and R2 have only one column, one for each paired sample. R1 and R2 must contain only numeric values and they must have the same number of elements. tails = # of tails: 1 (default) or 2.

These functions ignore any empty or non-numeric cells.

There are also the following two functions which relate to the Wilcoxon Signed Ranks Table.

SRankCRIT(n, α, tails) = critical value of the Signed-Ranks Test for samples of size n for the given value of alpha and tails = 1 (one tail) or 2 (two tails, default).

SRankPROB(x, n, tails, iter) = an approximate p-value for signed ranks test x (= T) for a sample of size n and tails = 1 (one tail) or 2 (two tails, default) based on a linear interpolation of the values in the Wilcoxon Signed Ranks Table, using iter number of iterations (default = 40).

Note that the values for α in the table in Wilcoxon Signed Ranks Table range from .01 to .1 for tails = 2 and .005 to .05 for tails = 1. If the p-value is less than .01 (tails = 2) or .005 (tails = 1) then the p-value is given as 0 and if the p-value is greater than .1 (tails = 2) or .05 (tails = 1) then the p-value is given as 1.

Observation:  In Example 1, we can use the supplemental function SRankPair(B4:C18) = 35.5, which is the same value we calculated in cell K7 of Figure 1. Also SRankCRIT(K6,K4,K5) = SRankCRIT(14,.05, 2) = 21 (the value in cell K8 of Figure 1). Finally note that the p-value = WPROB(K7,K6,K5) = WPROB(35.5, 14, 2) = 1 > .05 = α, and so once again we can’t reject the null hypothesis. That WPROB(35.5, 14, 2) = 1 simply means that the p-value > .1. If T had been equal to 22 instead of 35.5, we would obtain a p-value = WPROB(22, 14, 2) = .0625.

Similarly in Example 2 we can use the supplemental function to arrive at the same value for T, namely SRankPair(B4:C33) = 90, as well as the same p-value (assuming a normal approximation), namely SRTESTPair(B4:C33) = 0.005039.

We can also use the two argument versions of these functions to get the same results, namely SRankPair(B4:B33, C4:C33) = 90 and SRTESTPair(B4:B33, C4:C33) = 0.005039.

Observation: As for the Wilcoxon test for independent samples, we can use the correlation coefficient r as a measure of effect size where

image7001

Here  2n = the number of observations, including the cases where the difference is 0. For Example 2

image7002

which represents a medium-sized effect.

Real Statistics Function: The Real Statistics Pack also provides the following array function for the samples in ranges R1 and R2 where alpha is the α value (default .05) and tails is the number of tails (1 or 2 = default).

SRANK_TEST(R1, R2, lab, alpha, tails): returns the following values in a 7 × 1 column range: T, alpha, tails, z, r, T-crit, p-value. If lab = TRUE then an extra column with labels is included.

For Example 2, =SRANK_TEST(B4:B33,C4:C33,TRUE) returns the following array:

Signed-ranks paired test

Figure 2a – Output from SRANK_TEST for paired samples

Real Statistics Data Analysis Tool: The Real Statistics Resource Pack also provides a data analysis tool which performs the Wilcoxon signed-ranks test for paired samples, automatically calculating the medians, T test statistic, z-score, p-value and effect size r.

For example, to use this data analysis tool for Example 2, enter Ctrl-m and choose T Tests and Non-parametric Equivalents for the menu. A dialog box will appear as in Figure 3 in Mann-Whitney Test for Independent Sample. Enter B3:C33 in the Input Range, check Column headings included with data, choose the Paired samples and Non-parametric options and click on the OK button. The output is shown in Figure 3.

Signed-ranks test ExcelFigure 3 – Wilcoxon signed-ranks data analysis for paired samples

Note that rows 16 through 23 of the figure show the results of the Wilcoxon signed-ranks test using the normal approximation, while the bottom two rows show the results of the test using the critical value from the Wilcoxon Signed-Ranks Table. These last two rows are only displayed when the values of n and α are in the table.

Wilcoxon Signed-Ranks Test for a Single Sample

We can also use the Wilcoxon Signed-Ranks Test to test the following null hypothesis:

H0: the median of the population is some given value ν

The approach we use is to apply the Wilcoxon Signed-Ranks test for paired samples, as described above, on a single sample {x1, …, xn} where we assume the second sample consists of n values all of which are ν. We demonstrate approach this in Example 3 using the following supplemental functions.

Real Statistics Excel Functions: The following functions are provided in the Real Statistics Pack: 

SRank(R1, n) = T for a single sample contained in range R1 less n, where R1 can be of any size and shape but must contain only numeric values. If the second argument is omitted it defaults to zero.

SRTEST(R1, n, tails) = p-value for the Signed-Ranks test using the normal distribution approximation for the sample contained in range R1 less n, where R1 can be of any size and shape but must contain only numeric values. If the second argument is omitted it defaults to zero. tails = # of tails: 1 (default) or 2.

These functions ignore any empty or non-numeric cells. The SRankCRIT and SRankPROB functions, as described above, can also be used for single sample signed-ranks tests.

Example 3: Determine whether the memory loss program described in Example 1 of the Sign Test  is effective using the Wilcoxon Signed-Ranks Test.

We repeat the data from this example in Figure 4.

Wilcoxon signed ranks test

Figure 4 – Wilcoxon Signed-Ranks Test for a Single Sample

This time we compare the data from the single sample with the hypothetical median of 20%. We calculate T to be 40.5 using the formula SRank(D4:D18). We find the critical value for T when n = 14 to be 21 (two-tail test) from the Wilcoxon Signed-Ranks Table. Since 40.5 > 21, we cannot reject the null hypothesis and conclude again that there is no significant difference between the median of the data and 20%.

Using the normal distribution approximation, we see that SRTEST(B4:B18,20) = SRTEST(D4:D18) = .225629 > .05 = α, and so again conclude there is no significant difference between the median of the data and 20% (one-tail test).

Note that one way to calculate that n = 14 is to use the formula:

=COUNTIF(B4:B18,”<>”&20).

Real Statistics Function: The Real Statistics Pack also provides the following array function for the sample in range R1 where hyp is the hypothesized median (default = 0), alpha is the α value (default .05) and tails is the number of tails: 1 or 2 (default).

SRANK_TEST(R1, hyp, lab, alpha, tails): returns the following values in a 7 × 1 column range: T, alpha, tails, z, r, T-crit, p-value. If lab = TRUE then an extra column with labels is included.

For Example 3 (two-tailed) =SRANK_TEST(B4:B33,C4:C33,TRUE) returns the following array:

Signed-ranks single sample

Figure 4a – Output from SRANK_TEST for single sample

Real Statistics Data Analysis Tool: The Real Statistics Resource Pack also provides a data analysis tool which performs the Wilcoxon signed-ranks test for one sample, automatically calculating the median, T test statistic, z-score, p-value and effect size r.

For example, to use this data analysis tool for Example 3, enter Ctrl-m and choose T Tests and Non-parametric Equivalents for the menu. A dialog box will appear as in Figure 3 in Mann-Whitney Test for Independent Sample. Enter B3:B18 in the Input Range, check Column headings included with data and enter 20 for the Hypothetical Mean/Mean. Next choose the One sample and Non-parametric options and click on OK. The output is shown in Figure 5.

Wilcoxon signed-ranks testFigure 5 – Wilcoxon Signed-Ranks data analysis for a Single Sample

9 Responses to Wilcoxon Signed-Ranks Test

  1. Dinos says:

    Hi,
    I have downloaded your functions which are very helpul and thanks a lot for this.
    The problem lies in SRankPair()which does not calculate.
    Pls let me know whether you plan to fix the bug.
    Much appreciating your assistance.

    • admin says:

      Hi Dinos,
      I am pleased that you found the functions useful. I am sorry that the SRankPair function didn’t work. I will test the function tonight and see what the problem is. Sorry for any delay, but I am moving house and so things are a bit delayed.
      Charles

    • admin says:

      Dinos,

      I just tested the SRankPair() function and I found that it works just fine on my computer. Please make sure that you give the function one argument, consisting of a range with two columns. For example to calculate the value of the function for two samples in ranges E1:E10 and F1:F10 use the function SRankPair(E1:F10) and not SRankPair(E1:E10,F1:F10). The two samples must be contained in two contiguous columns of the same size starting in the same rows. I will introduce a two argument version of the function in a future release.

      If this doesn’t address your problem, please send me the data that you used and range where the data was entered and I will try to duplicate the problem.

      Charles

      Update (20 July 2013): The new release of the Real Statistics Resource Pack, R1.4, now removes the restriction that the two ranges be contiguous. You can use the function SRankPai(R1, R2) where R1 and R2 are not contiguous.

  2. Robin says:

    Hi Charles,

    Thank you very much for putting all this information up for free – its all really useful. I have data very similar to that in Example 1. Would you be able to walk me through how to get the results as shown in columns F and K? I am assuming I use the SRankPair function for column F (inputting the data from columns A and B), but how do I get column K?

    Thanks in advance,

    Robin

    • Charles says:

      Hi Robin,

      Column F is calculated using the RANK.AVG function in Excel 2010/2013 (or the RANK_SUM supplemental function with earlier versions of Excel).

      Cell K6 uses the formula =COUNT(E4:E18), cell K7 uses the formula =MIN(G19:H19), cell K8 uses the supplemental formula =SRankCRIT(K6,K4,K5) (or you can look up the value in the Wilcoxon Signed Rank Table).

      You can check all of this out by downloading the Real Statistics Examples Workbook, which contains the worksheets for all the examples in the website.

      Charles

  3. Gary says:

    Charles,

    Can you double check your formula for calculating the effect size for the Wilcoxon Signs Rank Test?

    This source uses N, whereas yours uses 2N:

    http://www.let.rug.nl/~heeringa/statistics/stat03_2013/lect09.pdf

    Thanks,

    Gary

    • Charles says:

      Gary,
      In the reference N is the total number of observations on which z is based. I believe N = 2n where n = total number of paired samples since each pair has two observations.
      Charles

  4. kiconco chrissy says:

    which parametric test matches with wilcoxon test

    • Charles says:

      The Wilcoxon signed ranks test for a single sample matches with the one-sample t test.
      The Wilcoxon signed ranks test for paired samples with the paired samples t test.
      Charles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>