# spearman.test

##### Spearman's rank correlation test with improved accuracy

This function is a modified copy of the part of the function cor.test(), which evaluates Spearman's rank correlation test. There are two modifications described below, which improve the accuracy of the p-value.

- Keywords
- htest

##### Usage

```
spearman.test(x, y,
alternative = c("two.sided", "less", "greater"),
method = "spearman",
exact = NULL, conf.level = 0.95, ...)
```

##### Arguments

- x, y, alternative, exact, conf.level, ...
- have exactly
the same meaning as in
`cor.test`

. See the corresponding help page. - method
- defaults to
`"spearman"`

and this should not be changed.

##### Details

In cases, where the correlation is positive, AS 89 is called with S+2 instead
of S+1, which is used in `cor.test`

. Since AS 89 assumes an even input,
this increases accuracy.

Function `cor.test`

uses AS 89 only if ```
n <= 1290<="" code=""> and less
accurate approximation using Student's t distribution otherwise.
The code of
```

`cor.test`

contains a comment `n*(n^2 - 1) does not overflow`

at the line with the test ```
n <= 1290<="" code="">, which possibly tries to explain the reason
for this restriction. However, this comment is probably related to older versions
of the code. Currently,
```

`n`

is used in the C code after conversion to
`double`

and no integer overflow occurs for `n > 1290`

.
Hence, the function `spearman.test`

uses AS 89 in all cases, unless the
user explicitly specifies `exact=FALSE`

.

##### Value

- A list with class
`"htest"`

with the same structure as the value of the function`cor.test(method="spearman")`

. Except of the p-value, also the contents is identical.

##### concept

- Spearman correlation coefficient
- Spearman's rho

##### Examples

```
x <- 1:10
y <- c(5:1,6,10:7)
out1 <- cor.test(x,y,method="spearman")
out2 <- spearman.test(x,y)
# out1$p.value = 0.05169460
# out2$p.value = 0.05444507
# the correct p-value in this case is 0.05443067
c(out1$p.value, out2$p.value)
out2$p.value <- out1$p.value
# except of the p-value, the output is identical
identical(out1,out2)
# for negative correlation, there is no difference
out3 <- cor.test(x,-y,method="spearman")
out4 <- spearman.test(x,-y)
identical(out3,out4)
```

*Documentation reproduced from package pspearman, version 0.1-10, License: GPL*