hsAllPairsTest: Hayter-Stone All-Pairs Comparison Test

View source: R/hsAllPairsTest.R

hsAllPairsTestR Documentation

Hayter-Stone All-Pairs Comparison Test

Description

Performs the non-parametric Hayter-Stone all-pairs procedure to test against monotonically increasing alternatives.

Usage

hsAllPairsTest(x, ...)

## Default S3 method:
hsAllPairsTest(
  x,
  g,
  alternative = c("greater", "less"),
  method = c("look-up", "boot", "asympt"),
  nperm = 10000,
  ...
)

## S3 method for class 'formula'
hsAllPairsTest(
  formula,
  data,
  subset,
  na.action,
  alternative = c("greater", "less"),
  method = c("look-up", "boot", "asympt"),
  nperm = 10000,
  ...
)

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.

alternative

the alternative hypothesis. Defaults to greater.

method

a character string specifying the test statistic to use. Defaults to "look-up" that uses published Table values of Williams (1972).

nperm

number of permutations for the asymptotic permutation test. Defaults to 1000. Ignored, if method = "look-up".

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").

Details

Let X be an identically and idepentendly distributed variable that was n times observed at k increasing treatment levels. Hayter and Stone (1991) proposed a non-parametric procedure to test the null hypothesis, H: \theta_i = \theta_j ~~ (i < j \le k) against a simple order alternative, A: \theta_i < \theta_j.

The statistic for all-pairs comparisons is calculated as,

S_{ij} = \frac{2 \sqrt{6} \left(U_{ij} - n_i n_j / 2 \right)} {\sqrt{n_i n_j \left(n_i + n_j + 1 \right)}},

with the Mann-Whittney counts:

U_{ij} = \sum_{a=1}^{n_i} \sum_{b=1}^{n_j} I\left\{x_{ia} < x_{ja}\right\}.

Under the large sample approximation, the test statistic S_{ij} is distributed as h_{k,\alpha,v}. Thus, the null hypothesis is rejected, if S_{ij} > h_{k,\alpha,v}, with v = \infty degree of freedom.

If method = "look-up" the function will not return p-values. Instead the critical h-values as given in the tables of Hayter (1990) for \alpha = 0.05 (one-sided) are looked up according to the number of groups (k) and the degree of freedoms (v = \infty).

If method = "boot" an asymetric permutation test is conducted and p-values are returned.

If method = "asympt" is selected the asymptotic p-value is estimated as implemented in the function pHayStonLSA of the package NSM3.

Value

Either a list of class "PMCMR" or a list with class "osrt" that contains 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

the estimated statistic(s)

crit.value

critical values for \alpha = 0.05.

alternative

a character string describing the alternative hypothesis.

parameter

the parameter(s) of the test distribution.

dist

a string that denotes the test distribution.

There are print and summary methods available.

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.

Source

If method = "asympt" is selected, this function calls an internal probability function pHS. The GPL-2 code for this function was taken from pHayStonLSA of the the package NSM3:

Grant Schneider, Eric Chicken and Rachel Becvarik (2020) NSM3: Functions and Datasets to Accompany Hollander, Wolfe, and Chicken - Nonparametric Statistical Methods, Third Edition. R package version 1.15. https://CRAN.R-project.org/package=NSM3

References

Hayter, A. J.(1990) A One-Sided Studentised Range Test for Testing Against a Simple Ordered Alternative, Journal of the American Statistical Association 85, 778–785.

Hayter, A.J., Stone, G. (1991) Distribution free multiple comparisons for monotonically ordered treatment effects. Austral J Statist 33, 335–346.

See Also

hayterStoneTest sample

Examples

## Example from Shirley (1977)
## Reaction times of mice to stimuli to their tails.
x <- c(2.4, 3, 3, 2.2, 2.2, 2.2, 2.2, 2.8, 2, 3,
 2.8, 2.2, 3.8, 9.4, 8.4, 3, 3.2, 4.4, 3.2, 7.4, 9.8, 3.2, 5.8,
 7.8, 2.6, 2.2, 6.2, 9.4, 7.8, 3.4, 7, 9.8, 9.4, 8.8, 8.8, 3.4,
 9, 8.4, 2.4, 7.8)
g <- gl(4, 10)

## Shirley's test
## one-sided test using look-up table
shirleyWilliamsTest(x ~ g, alternative = "greater")

## Chacko's global hypothesis test for 'greater'
chackoTest(x , g)

## post-hoc test, default is standard normal distribution (NPT'-test)
summary(chaAllPairsNashimotoTest(x, g, p.adjust.method = "none"))

## same but h-distribution (NPY'-test)
chaAllPairsNashimotoTest(x, g, dist = "h")

## NPM-test
NPMTest(x, g)

## Hayter-Stone test
hayterStoneTest(x, g)

## all-pairs comparisons
hsAllPairsTest(x, g)

PMCMRplus documentation built on May 29, 2024, 8:34 a.m.