friedman.test {stats} | R Documentation

## Friedman Rank Sum Test

### Description

Performs a Friedman rank sum test with unreplicated blocked data.

### Usage

    friedman.test(y, ...)

    ## Default S3 method:
    friedman.test(y, groups, blocks, ...)

    ## S3 method for class 'formula':
    friedman.test(formula, data, subset, na.action, ...)

### Arguments

`y` | either a numeric vector of data values, or a data matrix.
`groups` | a vector giving the group for the corresponding elements of `y` if this is a vector; ignored if `y` is a matrix. If not a factor object, it is coerced to one.
`blocks` | a vector giving the block for the corresponding elements of `y` if this is a vector; ignored if `y` is a matrix. If not a factor object, it is coerced to one.
`formula` | a formula of the form `a ~ b | c`, where `a`, `b` and `c` give the data values and corresponding groups and blocks, respectively.
`data` | an optional data frame containing the variables in the model 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 `NA`s. Defaults to `getOption("na.action")`.
`...` | further arguments to be passed to or from methods.

### Details

`friedman.test` can be used for analyzing unreplicated complete block designs (i.e., there is exactly one observation in `y` for each combination of levels of `groups` and `blocks`) where the normality assumption may be violated.

The null hypothesis is that apart from an effect of `blocks`, the location parameter of `y` is the same in each of the `groups`.

If `y` is a matrix, `groups` and `blocks` are obtained from the column and row indices, respectively. `NA`'s are not allowed in `groups` or `blocks`; if `y` contains `NA`'s, corresponding blocks are removed.

### Value

A list with class `"htest"` containing the following components:

`statistic` | the value of Friedman's chi-squared statistic.
`parameter` | the degrees of freedom of the approximate chi-squared distribution of the test statistic.
`p.value` | the p-value of the test.
`method` | the character string `"Friedman rank sum test"`.
`data.name` | a character string giving the names of the data.

### References

Myles Hollander & Douglas A. Wolfe (1973), Nonparametric statistical inference. New York: John Wiley & Sons. Pages 139–146.

### See Also

`quade.test`.

### Examples

    ## Hollander & Wolfe (1973), p. 140ff.
    ## Comparison of three methods ("round out", "narrow angle", and
    ##  "wide angle") for rounding first base.  For each of 18 players
    ##  and the three method, the average time of two runs from a point on
    ##  the first base line 35ft from home plate to a point 15ft short of
    ##  second base is recorded.
    RoundingTimes <-
    matrix(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),
           nr = 22,
           byrow = TRUE,
           dimnames = list(1 : 22,
                           c("Round Out", "Narrow Angle", "Wide Angle")))
    friedman.test(RoundingTimes)
    ## => strong evidence against the null that the methods are equivalent
    ##    with respect to speed

    data(warpbreaks)
    wb <- aggregate(warpbreaks$breaks,
                    by = list(w = warpbreaks$wool,
                              t = warpbreaks$tension),
                    FUN = mean)
    wb
    friedman.test(wb$x, wb$w, wb$t)
    friedman.test(x ~ w | t, data = wb)

[Package Contents]