# DunnTest: Dunn's Test of Multiple Comparisons In DescTools: Tools for Descriptive Statistics

## Description

Performs Dunn's test of multiple comparisons using rank sums.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ```DunnTest(x, ...) ## Default S3 method: DunnTest(x, g, method = c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none"), alternative = c("two.sided", "less", "greater"), out.list = TRUE, ...) ## S3 method for class 'formula' DunnTest(formula, data, subset, na.action, ...) ## S3 method for class 'DunnTest' print(x, digits = getOption("digits", 3), ...) ```

## Arguments

 `x` a numeric vector of data values, or a list of numeric data vectors. `g` a vector or factor object giving the group for the corresponding elements of `x`. Ignored if `x` is a list. `method` the method for adjusting p-values for multiple comparisons. The function is calling `p.adjust` and this parameter is directly passed through. `alternative` a character string specifying the alternative hypothesis, must be one of `"two.sided"` (default), `"greater"` or `"less"`. You can specify just the initial letter. `out.list` logical, indicating if the results should be printed in list mode or as a square matrix. Default is list (TRUE). `formula` a formula of the form `lhs ~ rhs` where `lhs` gives the data values and `rhs` the corresponding groups. `data` an optional matrix or data frame (or similar: see `model.frame`) containing the variables in the formula `formula`. By default the variables are taken from `environment(formula)`. `subset` an optional vector specifying a subset of observations to be used. `na.action` a function which indicates what should happen when the data contain `NA`s. Defaults to `getOption("na.action")`. `digits` controls the number of fixed digits to print. `...` further arguments to be passed to or from methods.

## Details

`DunnTest` performs the post hoc pairwise multiple comparisons procedure appropriate to follow the rejection of a Kruskal-Wallis test. The Kruskal-Wallis test, being a non-parametric analog of the one-way ANOVA, is an omnibus test of the null hypothesis that none of k groups stochastically dominate one another. Dunn's test is constructed in part by summing jointly ranked data. The rank sum test, itself a non-parametric analog of the unpaired t-test, is possibly intuitive, but inappropriate as a post hoc pairwise test, because (1) it fails to retain the dependent ranking that produced the Kruskal-Wallis test statistic, and (2) it does not incorporate the pooled variance estimate implied by the null hypothesis of the Kruskal-Wallis test.

If `x` is a list, its elements are taken as the samples to be compared, and hence have to be numeric data vectors. In this case, `g` is ignored, and one can simply use `DunnTest(x)` to perform the test. If the samples are not yet contained in a list, use `DunnTest(list(x, ...))`.

Otherwise, `x` must be a numeric data vector, and `g` must be a vector or factor object of the same length as `x` giving the group for the corresponding elements of `x`.

## Value

A list with class `"DunnTest"` containing the following components:

 `res` an array containing the mean rank differencens and the according p-values

## Author(s)

Andri Signorell <andri@signorell.net>, the interface is based on R-Core code

## References

Dunn, O. J. (1961) Multiple comparisons among means Journal of the American Statistical Association, 56(293):52-64.

Dunn, O. J. (1964) Multiple comparisons using rank sums Technometrics, 6(3):241-252.

`kruskal.test`, `wilcox.test`, `p.adjust`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25``` ```## Hollander & Wolfe (1973), 116. ## Mucociliary efficiency from the rate of removal of dust in normal ## subjects, subjects with obstructive airway disease, and subjects ## with asbestosis. x <- c(2.9, 3.0, 2.5, 2.6, 3.2) # normal subjects y <- c(3.8, 2.7, 4.0, 2.4) # with obstructive airway disease z <- c(2.8, 3.4, 3.7, 2.2, 2.0) # with asbestosis DunnTest(list(x, y, z)) ## Equivalently, x <- c(x, y, z) g <- factor(rep(1:3, c(5, 4, 5)), labels = c("Normal subjects", "Subjects with obstructive airway disease", "Subjects with asbestosis")) # do the kruskal.test first kruskal.test(x, g) # ...and the pairwise test afterwards DunnTest(x, g) ## Formula interface. boxplot(Ozone ~ Month, data = airquality) DunnTest(Ozone ~ Month, data = airquality) ```

### Example output ``` Dunn's test of multiple comparisons using rank sums : holm

mean.rank.diff   pval
2-1            1.8 1.0000
3-1           -0.6 1.0000
3-2           -2.4 1.0000
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Kruskal-Wallis rank sum test

data:  x and g
Kruskal-Wallis chi-squared = 0.77143, df = 2, p-value = 0.68

Dunn's test of multiple comparisons using rank sums : holm

mean.rank.diff
Subjects with obstructive airway disease-Normal subjects                     1.8
Subjects with asbestosis-Normal subjects                                    -0.6
Subjects with asbestosis-Subjects with obstructive airway disease           -2.4
pval
Subjects with obstructive airway disease-Normal subjects          1.0000
Subjects with asbestosis-Normal subjects                          1.0000
Subjects with asbestosis-Subjects with obstructive airway disease 1.0000
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Dunn's test of multiple comparisons using rank sums : holm

mean.rank.diff    pval
6-5    12.02991453 1.00000
7-5    41.21153846 9.9e-05 ***
8-5    38.53846154 0.00032 ***
9-5    11.99734748 0.74574
7-6    29.18162393 0.14891
8-6    26.50854701 0.20743
9-6    -0.03256705 1.00000
8-7    -2.67307692 1.00000
9-7   -29.21419098 0.01036 *
9-8   -26.54111406 0.02428 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
```

DescTools documentation built on June 17, 2021, 5:12 p.m.