brunnermunzel.permutation.test {brunnermunzel} R Documentation

## permuted Brunner-Munzel test

### Description

This function performs the permuted Brunner-Munzel test.

### Usage

brunnermunzel.permutation.test(x, ...)

## Default S3 method:
brunnermunzel.permutation.test(
x,
y,
alternative = c("two.sided", "greater", "less"),
force = FALSE,
est = c("original", "difference"),
...
)

## S3 method for class 'formula'
brunnermunzel.permutation.test(formula, data, subset = NULL, na.action, ...)

## S3 method for class 'matrix'
brunnermunzel.permutation.test(x, ...)

## S3 method for class 'table'
brunnermunzel.permutation.test(x, ...)


### Arguments

 x the numeric vector of data values from the sample 1, or 2 x n matrix of table (number of row must be 2 and column is ordinal variables). ... further arguments to be passed to or from methods (This argument is for only formula). y the numeric vector of data values from the sample 2. If x is matrix or table, y must be missing. alternative a character string specifying the alternative hypothesis, must be one of two.sided (default), greater or less. User can specify just the initial letter. force FALSE(default): If sample size is too large [number of combinations > 40116600 = choose(28, 14)], use brunnermunzel.test. TRUE: perform permuted Brunner-Munzel test regardless sample size. est a method to calculate estimate and confidence interval, must be either original (default) or difference. original(default): return p = P(X < Y) + 0.5 * P(X = Y) difference: return mean difference. i.e. P(X < Y) - P(X > Y) = 2 * p - 1 This change is proposed by Dr. Julian D. Karch. formula a formula of the form lhs ~ rhs where lhs is a numeric variable giving the data values and rhs a factor with two levels giving 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 containing the following components:

 method the characters “permuted Brunner-Munzel Test” data.name a character string giving the name of the data. p.value the p-value of the test. estimate an estimate of the effect size

### Note

FORTRAN subroutine 'combination' in combination.f is derived from the program by shikino (http://slpr.sakura.ne.jp/qp/combination) (CC-BY-4.0). Thanks to shikono for your useful subroutine.

### References

Karin Neubert and Edgar Brunner, “A studentized permutation test for the non-parametric Behrens-Fisher problem”, Computational Statistics and Data Analysis, Vol. 51, pp. 5192-5204 (2007).

This function is made in reference to following cite (in Japanese): Prof. Haruhiko Okumura (https://oku.edu.mie-u.ac.jp/~okumura/stat/brunner-munzel.html).

### Examples

## Hollander & Wolfe (1973), 29f.
## Hamilton depression scale factor measurements in 9 patients with
##  mixed anxiety and depression, taken at the first (x) and second
##  (y) visit after initiation of a therapy (administration of a
##  tranquilizer).
x <- c(1.83,  0.50,  1.62,  2.48, 1.68, 1.88, 1.55, 3.06, 1.30)
y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)

brunnermunzel.permutation.test(x, y)
##
##       permuted Brunner-Munzel Test
##
## data:  x and y
## p-value = 0.158
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##        0.2839506

## 'est' option
## if 'est = "difference"' return P(X<Y) - P(X>Y)
brunnermunzel.permutation.test(x, y, est = "difference")
##
##       permuted Brunner-Munzel Test
##
## data:  x and y
## p-value = 0.158
## sample estimates:
## P(X<Y)-P(X>Y)
##    -0.4320988

## Formula interface.
dat <- data.frame(
value = c(x, y),
group = factor(rep(c("x", "y"), c(length(x), length(y))),
levels = c("x", "y"))
)

brunnermunzel.permutation.test(value ~ group, data = dat)
##
##       permuted Brunner-Munzel Test
##
## data:  value by group
## p-value = 0.158
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##        0.2839506

## Pain score on the third day after surgery for 14 patients under
## the treatment Y and 11 patients under the treatment N
## (see Brunner and Munzel, 2000; Neubert and Brunner, 2007).

Y <- c(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 1, 1)
N <- c(3, 3, 4, 3, 1, 2, 3, 1, 1, 5, 4)

brunnermunzel.permutation.test(Y, N)

##
##       permuted Brunner-Munzel Test
##
## data:  Y and N
## p-value = 0.008038
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##         0.788961

## Formula interface.
dat <- data.frame(
value = c(Y, N),
group = factor(rep(c("Y", "N"), c(length(Y), length(N))),
levels = c("Y", "N"))
)

brunnermunzel.permutation.test(value ~ group, data = dat)

##
##       permuted Brunner-Munzel Test
##
## data:  value by group
## p-value = 0.008038
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##         0.788961

## Matrix or Table interface.
##
dat1 <- matrix(c(4, 4, 2, 1, 5, 4), nr = 2, byrow = TRUE)
dat2 <- as.table(dat1)

brunnermunzel.permutation.test(dat1)  # matrix
##
##       permuted Brunner-Munzel Test
##
## data:  Group1 and Group2
## p-value = 0.1593
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##             0.68

brunnermunzel.permutation.test(dat2)  # table
##
##       Brunner-Munzel Test
##
##       permuted Brunner-Munzel Test
##
## data:  A and B
## p-value = 0.1593
## sample estimates:
## P(X<Y)+.5*P(X=Y)
##             0.68



[Package brunnermunzel version 2.0 Index]