Learn R Programming

PMCMRplus (version 1.9.3)

tamhaneT2Test: Tamhane's T2 Test

Description

Performs Tamhane's T2 (or T2') all-pairs comparison test for normally distributed data with unequal variances.

Usage

tamhaneT2Test(x, ...)

# S3 method for default tamhaneT2Test(x, g, welch = TRUE, ...)

# S3 method for formula tamhaneT2Test(formula, data, subset, na.action, welch = TRUE, ...)

# S3 method for aov tamhaneT2Test(x, welch = TRUE, ...)

Arguments

x

a numeric vector of data values, a list of numeric data vectors or a fitted model object, usually an aov fit.

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.

welch

indicates, whether Welch's approximate solution for calculating the degree of freedom shall be used or, as usually, \(df = N - 2\). Defaults to TRUE.

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 normally distributed residuals but unequal groups variances the T2 test (or T2' test) of Tamhane can be performed. Let \(X_{ij}\) denote a continuous random variable with the \(j\)-the realization (\(1 \le j \le n_i\)) in the \(i\)-th group (\(1 \le i \le k\)). Furthermore, the total sample size is \(N = \sum_{i=1}^k n_i\). A total of \(m = k(k-1)/2\) hypotheses can be tested: The null hypothesis is H\(_{ij}: \mu_i = \mu_j ~~ (i \ne j)\) is tested against the alternative A\(_{ij}: \mu_i \ne \mu_j\) (two-tailed). Tamhane T2 all-pairs test statistics are given by

$$ t_{ij} \frac{\bar{X}_i - \bar{X_j}} {\left( s^2_j / n_j + s^2_i / n_i \right)^{1/2}}, ~~ (i \ne j) $$

with \(s^2_i\) the variance of the \(i\)-th group. The null hypothesis is rejected (two-tailed) if

$$ \mathrm{Pr} \left\{ |t_{ij}| \ge t_{v_{ij}\alpha'/2} | \mathrm{H} \right\}_{ij} = \alpha. $$

T2 test uses Welch's approximate solution for calculating the degree of freedom.

$$ v_{ij} = \frac{\left( s^2_i / n_i + s^2_j / n_j \right)^2} {s^4_i / n^2_i \left(n_i - 1\right) + s^4_j / n^2_j \left(n_j - 1\right)}. $$

T2' test applies the following approximation for the degree of freedom $$ v_{ij} = n_i + n_j - 2 $$

The p-values are computed from the TDist-distribution and adjusted according to Dunn-Sidak. $$ p'_{ij} = \min \left\{1, ~ (1 - (1 - p_{ij})^m)\right\} $$

References

Tamhane, A. C. (1979) A Comparison of Procedures for Multiple Comparisons of Means with Unequal Variances, Journal of the American Statistical Association 74, 471--480.

See Also

dunnettT3Test uryWigginsHochbergTest

Examples

Run this code
# NOT RUN {
fit <- aov(weight ~ feed, chickwts)
shapiro.test(residuals(fit))
bartlett.test(weight ~ feed, chickwts) # var1 = varN
anova(fit)

## also works with fitted objects of class aov
res <- tamhaneT2Test(fit)
summary(res)
summaryGroup(res)
res

## compare with pairwise.t.test
WT <- pairwise.t.test(chickwts$weight,
                      chickwts$feed,
                      pool.sd = FALSE,
                      p.adjust.method = "none")
p.adj.sidak <- function(p, m) sapply(p, function(p) min(1, 1 - (1 - p)^m))
p.raw <- as.vector(WT$p.value)
m <- length(p.raw[!is.na(p.raw)])
PADJ <- matrix(ans <- p.adj.sidak(p.raw, m),
               nrow = 5, ncol = 5)
colnames(PADJ) <- colnames(WT$p.value)
rownames(PADJ) <- rownames(WT$p.value)
PADJ

## same without Welch's approximate solution
summary(T2b <- tamhaneT2Test(fit, welch = FALSE))

# }

Run the code above in your browser using DataLab