shanTest function

Testing against Ordered Alternatives (Shan-Young-Kang Test)

Testing against Ordered Alternatives (Shan-Young-Kang Test)

Performs the Shan-Young-Kang test for testing against ordered alternatives.

shanTest(x, ...) ## Default S3 method: shanTest(x, g, alternative = c("greater", "less"), ...) ## S3 method for class 'formula' shanTest( formula, data, subset, na.action, alternative = c("greater", "less"), ... )

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

Returns

A list with class "htest" 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: the estimated quantile of the test statistic.
  • p.value: the p-value for the test.
  • parameter: the parameters of the test statistic, if any.
  • alternative: a character string describing the alternative hypothesis.
  • estimates: the estimates, if any.
  • null.value: the estimate under the null hypothesis, if any.

Details

The null hypothesis, H0:θ1=θ2==θk_0: \theta_1 = \theta_2 = \ldots = \theta_k

is tested against a simple order hypothesis, Hc("_\\mathrm{A}: \\theta_1 \\le \\theta_2 \\le \\ldots \\le\n", "thetak, theta1<thetak\\theta_k,~\\theta_1 < \\theta_k").

Let RijR_{ij} be the rank of XijX_{ij}, where XijX_{ij} is jointly ranked from {1,2,,N},  N=i=1kni\left\{1, 2, \ldots, N \right\}, ~~ N = \sum_{i=1}^k n_i, the the test statistic is

S=i=1k1j=i+1kDij, S = \sum_{i = 1}^{k-1} \sum_{j = i + 1}^k D_{ij},%SEE PDF

with

Dij=l=1nim=1nj(RjmRil) I(Xjm>Xil), D_{ij} = \sum_{l = 1}^{n_i} \sum_{m=1}^{n_j} \left(R_{jm} - R_{il} \right)~ \mathrm{I}\left(X_{jm} > X_{il} \right),%SEE PDF

where

I(u)={1, u>00, u0. \mathrm{I}(u) = \left\{\begin{array}{c}1, \qquad \forall~ u > 0 \\0, \qquad \forall~ u \le 0\end{array}\right..%SEE PDF.

The test statistic is asymptotically normal distributed:

z=SμSsS2SEEPDF z = \frac{S - \mu_{\mathrm{S}}}{\sqrt{s^2_{\mathrm{S}}}}SEE PDF

The p-values are estimated from the standard normal distribution.

Note

The variance estimation (see Theorem 2.1, Shan et al. 2014) can become negative for certain combinations of c("N, ni, k\nN,~n_i,~k\n", "qquad(1leilek)\\qquad (1 \\le i \\le k)"). In these cases the function will return a warning and the returned p-value will be NaN.

Factor labels for g must be assigned in such a way, that they can be increasingly ordered from zero-dose control to the highest dose level, e.g. integers {0, 1, 2, ..., k} or letters {a, b, c, ...}. Otherwise the function may not select the correct values for intended zero-dose control.

It is safer, to i) label the factor levels as given above, and to ii) sort the data according to increasing dose-levels prior to call the function (see order, factor).

Examples

## Example from Sachs (1997, p. 402) x <- c(106, 114, 116, 127, 145, 110, 125, 143, 148, 151, 136, 139, 149, 160, 174) g <- gl(3,5) levels(g) <- c("A", "B", "C") ## Chacko's test chackoTest(x, g) ## Cuzick's test cuzickTest(x, g) ## Johnson-Mehrotra test johnsonTest(x, g) ## Jonckheere-Terpstra test jonckheereTest(x, g) ## Le's test leTest(x, g) ## Spearman type test spearmanTest(x, g) ## Murakami's BWS trend test bwsTrendTest(x, g) ## Fligner-Wolfe test flignerWolfeTest(x, g) ## Shan-Young-Kang test shanTest(x, g)

References

Shan, G., Young, D., Kang, L. (2014) A New Powerful Nonparametric Rank Test for Ordered Alternative Problem. PLOS ONE 9, e112924. https://doi.org/10.1371/journal.pone.0112924

See Also

kruskalTest and shirleyWilliamsTest

of the package PMCMRplus, kruskal.test of the library stats.

  • Maintainer: Thorsten Pohlert
  • License: GPL (>= 3)
  • Last published: 2024-09-08

Useful links