Learn R Programming

PMCMRplus (version 1.9.3)

kwAllPairsNemenyiTest: Nemenyi's All-Pairs Rank Comparison Test

Description

Performs Nemenyi's non-parametric all-pairs comparison test for Kruskal-type ranked data.

Usage

kwAllPairsNemenyiTest(x, ...)

# S3 method for default kwAllPairsNemenyiTest(x, g, dist = c("Tukey", "Chisquare"), ...)

# S3 method for formula kwAllPairsNemenyiTest( formula, data, subset, na.action, dist = c("Tukey", "Chisquare"), ... )

Arguments

x

a numeric vector of data values, or a list of numeric data vectors.

further arguments to be passed to or from methods.

g

a vector or factor object giving the group for the corresponding elements of "x". Ignored with a warning if "x" is a list.

dist

the distribution for determining the p-value. Defaults to "Tukey".

formula

a formula of the form response ~ group where response gives the data values and group a vector or factor of 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 NAs. Defaults to getOption("na.action").

Value

A list with class "PMCMR" containing the following components:

method

a character string indicating what type of test was performed.

data.name

a character string giving the name(s) of the data.

statistic

lower-triangle matrix of the estimated quantiles of the pairwise test statistics.

p.value

lower-triangle matrix of the p-values for the pairwise tests.

alternative

a character string describing the alternative hypothesis.

p.adjust.method

a character string describing the method for p-value adjustment.

model

a data frame of the input data.

dist

a string that denotes the test distribution.

Details

For all-pairs comparisons in an one-factorial layout with non-normally distributed residuals Nemenyi's non-parametric test can be performed. A total of \(m = k(k-1)/2\) hypotheses can be tested. The null hypothesis H\(_{ij}: \theta_i(x) = \theta_j(x)\) is tested in the two-tailed test against the alternative A\(_{ij}: \theta_i(x) \ne \theta_j(x), ~~ i \ne j\).

Let \(R_{ij}\) be the rank of \(X_{ij}\), where \(X_{ij}\) is jointly ranked from \(\left\{1, 2, \ldots, N \right\}, ~~ N = \sum_{i=1}^k n_i\), then the test statistic under the absence of ties is calculated as

$$ t_{ij} = \frac{\bar{R}_j - \bar{R}_i} {\sigma_R \left(1/n_i + 1/n_j\right)^{1/2}} \qquad \left(i \ne j\right), $$

with \(\bar{R}_j, \bar{R}_i\) the mean rank of the \(i\)-th and \(j\)-th group and the expected variance as $$ \sigma_R^2 = N \left(N + 1\right) / 12. $$

A pairwise difference is significant, if \(|t_{ij}|/\sqrt{2} > q_{kv}\), with \(k\) the number of groups and \(v = \infty\) the degree of freedom.

Sachs(1997) has given a modified approach for Nemenyi's test in the presence of ties for \(N > 6, k > 4\) provided that the kruskalTest indicates significance: In the presence of ties, the test statistic is corrected according to \(\hat{t}_{ij} = t_{ij} / C\), with $$ C = 1 - \frac{\sum_{i=1}^r t_i^3 - t_i}{N^3 - N}. $$

The function provides two different dist for \(p\)-value estimation:

Tukey

The \(p\)-values are computed from the studentized range distribution (alias Tukey), \(\mathrm{Pr} \left\{ t_{ij} \sqrt{2} \ge q_{k\infty\alpha} | mathrm{H} \right\} = \alpha\).

Chisquare

The \(p\)-values are computed from the Chisquare distribution with \(v = k - 1\) degree of freedom.

References

Nemenyi, P. (1963) Distribution-free Multiple Comparisons. Ph.D. thesis, Princeton University.

Sachs, L. (1997) Angewandte Statistik. Berlin: Springer.

Wilcoxon, F., Wilcox, R. A. (1964) Some rapid approximate statistical procedures. Pearl River: Lederle Laboratories.

See Also

Tukey, Chisquare, p.adjust, kruskalTest, kwAllPairsDunnTest, kwAllPairsConoverTest

Examples

Run this code
# NOT RUN {
## Data set InsectSprays
## Global test
kruskalTest(count ~ spray, data = InsectSprays)

## Conover's all-pairs comparison test
## single-step means Tukey's p-adjustment
ans <- kwAllPairsConoverTest(count ~ spray, data = InsectSprays,
                             p.adjust.method = "single-step")
summary(ans)

## Dunn's all-pairs comparison test
ans <- kwAllPairsDunnTest(count ~ spray, data = InsectSprays,
                             p.adjust.method = "bonferroni")
summary(ans)

## Nemenyi's all-pairs comparison test
ans <- kwAllPairsNemenyiTest(count ~ spray, data = InsectSprays)
summary(ans)
# }

Run the code above in your browser using DataLab