View source: R/tamhaneT2Test.R
tamhaneT2Test | R Documentation |
Performs Tamhane's T2 (or T2') all-pairs comparison test for normally distributed data with unequal variances.
tamhaneT2Test(x, ...)
## Default S3 method:
tamhaneT2Test(x, g, welch = TRUE, ...)
## S3 method for class 'formula'
tamhaneT2Test(formula, data, subset, na.action, welch = TRUE, ...)
## S3 method for class 'aov'
tamhaneT2Test(x, welch = TRUE, ...)
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 |
welch |
indicates, whether Welch's approximate solution for
calculating the degree of freedom shall be used or, as usually,
|
formula |
a formula of the form |
data |
an optional matrix or data frame (or similar: see
|
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 |
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\}
A list with class "PMCMR"
containing the following components:
a character string indicating what type of test was performed.
a character string giving the name(s) of the data.
lower-triangle matrix of the estimated quantiles of the pairwise test statistics.
lower-triangle matrix of the p-values for the pairwise tests.
a character string describing the alternative hypothesis.
a character string describing the method for p-value adjustment.
a data frame of the input data.
a string that denotes the test distribution.
T2 test is basically an all-pairs pairwise-t-test. Similar results
can be obtained with pairwise.t.test(..., var.equal=FALSE, p.adjust.mehod = FALSE)
.
A warning message appears in the modified T2' test, if none of in Tamhane (1979) given conditions for nearly balanced sample sizes and nearly balanced standard errors is true.
Thanks to Sirio Bolaños for his kind suggestion for adding T2' test into this function.
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.
dunnettT3Test
uryWigginsHochbergTest
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))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.