Ansari-Bradley Test

Performs the Ansari-Bradley two-sample test for a difference in scale parameters.

ansari.test(x, ...)
"ansari.test"(x, y, alternative = c("two.sided", "less", "greater"), exact = NULL, = FALSE, conf.level = 0.95, ...)
"ansari.test"(formula, data, subset, na.action, ...)
numeric vector of data values.
numeric vector of data values.
indicates the alternative hypothesis and must be one of "two.sided", "greater" or "less". You can specify just the initial letter.
a logical indicating whether an exact p-value should be computed.
a logical,indicating whether a confidence interval should be computed.
confidence level of the interval.
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.
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).
an optional vector specifying a subset of observations to be used.
a function which indicates what should happen when the data contain NAs. Defaults to getOption("na.action").
further arguments to be passed to or from methods.

Suppose that x and y are independent samples from distributions with densities $f((t-m)/s)/s$ and $f(t-m)$, respectively, where $m$ is an unknown nuisance parameter and $s$, the ratio of scales, is the parameter of interest. The Ansari-Bradley test is used for testing the null that $s$ equals 1, the two-sided alternative being that $s != 1$ (the distributions differ only in variance), and the one-sided alternatives being $s > 1$ (the distribution underlying x has a larger variance, "greater") or $s < 1$ ("less").

By default (if exact is not specified), an exact p-value is computed if both samples contain less than 50 finite values and there are no ties. Otherwise, a normal approximation is used.

Optionally, a nonparametric confidence interval and an estimator for $s$ are computed. If exact p-values are available, an exact confidence interval is obtained by the algorithm described in Bauer (1972), and the Hodges-Lehmann estimator is employed. Otherwise, the returned confidence interval and point estimate are based on normal approximations.

Note that mid-ranks are used in the case of ties rather than average scores as employed in Hollander & Wolfe (1973). See, e.g., Hajek, Sidak and Sen (1999), pages 131ff, for more information.


A list with class "htest" containing the following components:
the value of the Ansari-Bradley test statistic.
the p-value of the test.
the ratio of scales $s$ under the null, 1.
a character string describing the alternative hypothesis.
the string "Ansari-Bradley test".
a character string giving the names of the data.
a confidence interval for the scale parameter. (Only present if argument = TRUE.)
an estimate of the ratio of scales. (Only present if argument = TRUE.)


To compare results of the Ansari-Bradley test to those of the F test to compare two variances (under the assumption of normality), observe that $s$ is the ratio of scales and hence $s^2$ is the ratio of variances (provided they exist), whereas for the F test the ratio of variances itself is the parameter of interest. In particular, confidence intervals are for $s$ in the Ansari-Bradley test but for $s^2$ in the F test.


David F. Bauer (1972), Constructing confidence sets using rank statistics. Journal of the American Statistical Association 67, 687--690.

Jaroslav Hajek, Zbynek Sidak and Pranab K. Sen (1999), Theory of Rank Tests. San Diego, London: Academic Press.

Myles Hollander and Douglas A. Wolfe (1973), Nonparametric Statistical Methods. New York: John Wiley & Sons. Pages 83--92.

See Also

fligner.test for a rank-based (nonparametric) $k$-sample test for homogeneity of variances; mood.test for another rank-based two-sample test for a difference in scale parameters; var.test and bartlett.test for parametric tests for the homogeneity in variance.

ansari_test in package \href{}{\pkg{#1}}coincoin for exact and approximate conditional p-values for the Ansari-Bradley test, as well as different methods for handling ties.

  • ansari.test
  • ansari.test.default
  • ansari.test.formula
library(stats) ## Hollander & Wolfe (1973, p. 86f): ## Serum iron determination using Hyland control sera ramsay <- c(111, 107, 100, 99, 102, 106, 109, 108, 104, 99, 101, 96, 97, 102, 107, 113, 116, 113, 110, 98) jung.parekh <- c(107, 108, 106, 98, 105, 103, 110, 105, 104, 100, 96, 108, 103, 104, 114, 114, 113, 108, 106, 99) ansari.test(ramsay, jung.parekh) ansari.test(rnorm(10), rnorm(10, 0, 2), = TRUE) ## try more points - failed in 2.4.1 ansari.test(rnorm(100), rnorm(100, 0, 2), = TRUE)
Documentation reproduced from package stats, version 3.2.5, License: Part of R 3.2.5

Community examples

Looks like there are no examples yet.