Wilcoxon {base} | R Documentation

## Distribution of the Wilcoxon Rank Sum Statistic

### Description

Density, distribution function, quantile function and random generation for the distribution of the Wilcoxon rank sum statistic obtained from samples with size `m` and `n`, respectively.

### Usage

    dwilcox(x, m, n, log = FALSE)
    pwilcox(q, m, n, lower.tail = TRUE, log.p = FALSE)
    qwilcox(p, m, n, lower.tail = TRUE, log.p = FALSE)
    rwilcox(nn, m, n)

### Arguments

`x, q` | vector of quantiles.
`p` | vector of probabilities.
`nn` | number of observations to generate.
`m, n` | numbers of observations in the first and second sample, respectively.
`log, log.p` | logical; if TRUE, probabilities p are given as log(p).
`lower.tail` | logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x].

### Details

This distribution is obtained as follows. Let `x` and `y` be two random, independent samples of size `m` and `n`. Then the Wilcoxon rank sum statistic is the number of all pairs `(x[i], y[j])` for which `y[j]` is not greater than `x[i]`. This statistic takes values between `0` and `m * n`, and its mean and variance are `m * n / 2` and `m * n * (m + n + 1) / 12`, respectively.

### Value

`dwilcox` gives the density, `pwilcox` gives the distribution function, `qwilcox` gives the quantile function, and `rwilcox` generates random deviates.

### Author(s)

Kurt Hornik hornik@ci.tuwien.ac.at

### See Also

`dsignrank` etc, for the one-sample Wilcoxon rank statistic.

### Examples

    x <- -1:(4*6 + 1)
    fx <- dwilcox(x, 4, 6)
    all(fx == dwilcox(x, 6, 4))
    Fx <- pwilcox(x, 4, 6)
    all(abs(Fx - cumsum(fx)) < 10 * .Machine$double.eps)

    layout(rbind(1,2),width=1,heights=c(3,2))
    plot(x, fx,type='h', col="violet",
         main= "Probabilities (density) of Wilcoxon-Statist.(n=6,m=4)")
    plot(x, Fx,type="s", col="blue",
         main= "Distribution of Wilcoxon-Statist.(n=6,m=4)")
    abline(h=0:1, col="gray20",lty=2)
    layout(1)# set back

    N <- 200
    hist(U <- rwilcox(N, m=4,n=6), breaks=0:25 - 1/2, border="red", col="pink",
         sub = paste("N =",N))
    mtext("N * f(x),  f() = true ``density''", side=3, col="blue")
     lines(x, N*fx, type='h', col='blue', lwd=2)
    points(x, N*fx, cex=2)

    ## Better is a Quantile-Quantile Plot
    qqplot(U, qw <- qwilcox((1:N - 1/2)/N, m=4,n=6),
           main = paste("Q-Q-Plot of empirical and theoretical quantiles",
                         "Wilcoxon Statistic,  (m=4, n=6)",sep="\n"))
    n <- as.numeric(names(print(tU <- table(U))))
    text(n+.2, n+.5, labels=tU, col="red")