ConoverTest.Rd
Perform Conover's test of multiple comparisons using rank sums as post hoc test following a significant kruskal.test
.
a numeric vector of data values, or a list of numeric data vectors.
a vector or factor object giving the group for the
corresponding elements of x
. Ignored if x
is a
list.
the method for adjusting p-values for multiple comparisons. The function is calling p.adjust
and this parameter is directly passed through.
a character string specifying the alternative hypothesis, must be one of "two.sided"
(default), "greater"
or "less"
. You can specify just the initial letter.
logical, indicating if the results should be printed in list mode or as a square matrix. Default is list (TRUE).
a formula of the form lhs ~ rhs
where lhs
gives the data values and rhs
the corresponding groups.
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)
.
an optional vector specifying a subset of observations to be used.
a function which indicates what should happen when
the data contain NA
s. Defaults to
getOption("na.action")
.
further arguments to be passed to or from methods.
ConoverTest
performs the post hoc pairwise multiple comparisons procedure appropriate to follow the rejection of a Kruskal-Wallis test.
Conover's test is more powerful than Dunn's post hoc multiple comparisons test (DunnTest
). The interpretation of stochastic dominance requires an assumption that the CDF of one group does not cross the CDF of the other.
ConoverTest makes m = k(k-1)/2 multiple pairwise comparisons based on the Conover-Iman t-test-statistic for the rank-sum differences:
$$\left | \bar{R}_{i}-\bar{R}_{j} \right | > t_{1-\alpha/2, n-k} \cdot \sqrt{ s^2 \cdot \left [
\frac{n-1-\hat{H}^*}{n-k} \right ] \cdot \left [ \frac{1}{n_i} + \frac{1}{n_j} \right ] } $$
with the (tie corrected) statistic of the Kruskal Wallis test
$$\hat{H}^* = \frac{\frac{12}{n \cdot (n+1)} \cdot \sum_{i=1}^{k}\frac{R_{i}^2}{n_i} - 3\cdot(n+1) } {1-\frac{\sum_{i=1}^{r} \left ( t_i^3-t_i \right )}{n^3-n}} $$
and the \(s^2\) being
$$s^2 = \frac{1}{n-1} \cdot \left [ \sum{R_i^2} - n \cdot \frac{(n+1)^2}{4} \right ]$$
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 ConoverTest(x)
to perform the test. If the samples are not yet contained in a
list, use ConoverTest(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
.
A list with class "DunnTest"
containing the following components:
an array containing the mean rank differencens and the according p-values
Conover W. J., Iman R. L. (1979) On multiple-comparisons procedures, Tech. Rep. LA-7677-MS, Los Alamos Scientific Laboratory.
Conover, W. J. (1999) Practical Nonparametric Statistics Wiley, Hoboken, NJ. 3rd edition.
## 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
ConoverTest(list(x, y, z))
#>
#> Conover's test of multiple comparisons : 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
#>
## 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)
#>
#> Kruskal-Wallis rank sum test
#>
#> data: x and g
#> Kruskal-Wallis chi-squared = 0.77143, df = 2, p-value = 0.68
#>
# ...and the pairwise test afterwards
ConoverTest(x, g)
#>
#> Conover's test of multiple comparisons : 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
#>
## Formula interface.
boxplot(Ozone ~ Month, data = airquality)
ConoverTest(Ozone ~ Month, data = airquality)
#>
#> Conover's test of multiple comparisons : holm
#>
#> mean.rank.diff pval
#> 6-5 12.02991453 0.8843
#> 7-5 41.21153846 0.000019 ***
#> 8-5 38.53846154 0.000067 ***
#> 9-5 11.99734748 0.5424
#> 7-6 29.18162393 0.0721 .
#> 8-6 26.50854701 0.1109
#> 9-6 -0.03256705 1.0000
#> 8-7 -2.67307692 1.0000
#> 9-7 -29.21419098 0.0031 **
#> 9-8 -26.54111406 0.0084 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>