corKendall {copula} | R Documentation |
(Fast) Computation of Pairwise Kendall's Taus
Description
For a data matrix x
, compute the Kendall's tau
“correlation” matrix, i.e., all pairwise Kendall's taus
between the columns of x
.
By default and when x
has no missing values
(NA
s), the fast O(n log(n))
algorithm of
cor.fk()
is used.
Usage
corKendall(x, checkNA = TRUE,
use = if(checkNA && anyNA(x)) "pairwise" else "everything")
Arguments
x |
data, a n x p matrix (or less efficiently a data.frame), or a numeric vector which is treated as n x 1 matrix. |
checkNA |
logical indicating if |
use |
a string to determine the treatment of |
Value
The p \times p
matrix K
of pairwise Kendall's taus, with
K[i,j] := tau(x[,i], x[,j])
.
See Also
cor.fk()
from pcaPP (used by default
when there are no missing values (NA
s) in x
).
etau()
or fitCopula(*, method = "itau")
make use of corKendall()
.
Examples
## If there are no NA's, corKendall() is faster than cor(*, "kendall")
## and gives the same :
system.time(C1 <- cor(swiss, method="kendall"))
system.time(C2 <- corKendall(swiss))
stopifnot(all.equal(C1, C2, tol = 1e-5))
## In the case of missing values (NA), corKendall() reverts to
## cor(*, "kendall", use = "pairwise") {no longer very fast} :
swM <- swiss # shorter names and three missings:
colnames(swM) <- abbreviate(colnames(swiss), min=6)
swM[1,2] <- swM[7,3] <- swM[25,5] <- NA
(C3 <- corKendall(swM)) # now automatically uses the same as
stopifnot(identical(C3, cor(swM, method="kendall", use="pairwise")))
## and is quite close to the non-missing "truth":
stopifnot(all.equal(unname(C3), unname(C2), tol = 0.06)) # rel.diff.= 0.055
try(corKendall(swM, checkNA=FALSE)) # --> Error
## the error is really from pcaPP::cor.fk(swM)