SymmetryTests {coin} | R Documentation |
Testing the symmetry of a response for repeated measurements in a complete block design.
## S3 method for class 'formula': friedman_test(formula, data, subset = NULL, ...) ## S3 method for class 'SymmetryProblem': friedman_test(object, distribution = c("asymptotic", "approximate"), ...) ## S3 method for class 'formula': wilcoxsign_test(formula, data, subset = NULL, ...) ## S3 method for class 'IndependenceProblem': wilcoxsign_test(object, distribution = c("asymptotic", "approximate"), ...)
formula |
a formula of the form y ~ x | block where y
is a numeric variable giving the data values and
x a factor with two (wilcoxsign_test )
or more levels giving the corresponding groups. block is an
optional factor (which is generated automatically when omitted). |
data |
an optional data frame containing the variables in the model formula. |
subset |
an optional vector specifying a subset of observations to be used. |
object |
an object inheriting from class SymmetryProblem . |
distribution |
a character, the null distribution of the test statistic
can be approximated by its asymptotic distribution (asympt )
or via Monte-Carlo resampling (approx ).
Alternatively, the functions
approximate or asymptotic can be
used to specify how the exact conditional distribution of the test statistic
should be calculated or approximated. |
... |
further arguments to be passed to or from methods. |
The null hypothesis of symmetry of y
across x
is
tested. In case x
is an ordered factor friedman_test
performs the Page test, scores can be altered by the scores
argument (see symmetry_test
).
An object inheriting from class IndependenceTest
with
methods show
, pvalue
and statistic
.
Myles Hollander & Douglas A. Wolfe (1999), Nonparametric Statistical Methods, 2nd Edition. New York: John Wiley & Sons.
### Hollander & Wolfe (1999), Table 7.1, page 274 ### Comparison of three methods ("round out", "narrow angle", and ### "wide angle") for rounding first base. RoundingTimes <- data.frame( times = c(5.40, 5.50, 5.55, 5.85, 5.70, 5.75, 5.20, 5.60, 5.50, 5.55, 5.50, 5.40, 5.90, 5.85, 5.70, 5.45, 5.55, 5.60, 5.40, 5.40, 5.35, 5.45, 5.50, 5.35, 5.25, 5.15, 5.00, 5.85, 5.80, 5.70, 5.25, 5.20, 5.10, 5.65, 5.55, 5.45, 5.60, 5.35, 5.45, 5.05, 5.00, 4.95, 5.50, 5.50, 5.40, 5.45, 5.55, 5.50, 5.55, 5.55, 5.35, 5.45, 5.50, 5.55, 5.50, 5.45, 5.25, 5.65, 5.60, 5.40, 5.70, 5.65, 5.55, 6.30, 6.30, 6.25), methods = factor(rep(c("Round Out", "Narrow Angle", "Wide Angle"), 22)), block = factor(rep(1:22, rep(3, 22)))) ### classical global test friedman_test(times ~ methods | block, data = RoundingTimes) ### parallel coordinates plot matplot(t(matrix(RoundingTimes$times, ncol = 3, byrow = TRUE)), type = "l", col = 1, lty = 1, axes = FALSE, ylab = "Time", xlim = c(0.5, 3.5)) axis(1, at = 1:3, labels = levels(RoundingTimes$methods)) axis(2) ### where do the differences come from? ### Wilcoxon-Nemenyi-McDonald-Thompson test ### Hollander & Wolfe (1999), page 295 if (require(multcomp)) { ### all pairwise comparisons rtt <- symmetry_test(times ~ methods | block, data = RoundingTimes, teststat = "maxtype", xtrafo = function(data) trafo(data, factor_trafo = function(x) model.matrix(~ x - 1) %*% t(contrMat(table(x), "Tukey")) ), ytrafo = function(data) trafo(data, numeric_trafo = rank, block = RoundingTimes$block) ) ### a global test, again print(pvalue(rtt)) ### simultaneous P-values for all pair comparisons ### Wide Angle vs. Round Out differ (Hollander and Wolfe, 1999, page 296) print(pvalue(rtt, method = "single-step")) } ### Strength Index of Cotton, Hollander & Wolfe (1999), Table 7.5, page 286 sc <- data.frame(block = factor(c(rep(1, 5), rep(2, 5), rep(3, 5))), potash = ordered(rep(c(144, 108, 72, 54, 36), 3)), strength = c(7.46, 7.17, 7.76, 8.14, 7.63, 7.68, 7.57, 7.73, 8.15, 8.00, 7.21, 7.80, 7.74, 7.87, 7.93)) ### Page test for ordered alternatives ft <- friedman_test(strength ~ potash | block, data = sc) ft ### one-sided p-value 1 - pnorm(sqrt(statistic(ft))) ### approximate null distribution via Monte-Carlo pvalue(friedman_test(strength ~ potash | block, data = sc, distribution = approximate(B = 9999)))