mahalanobis {stats}R Documentation

Mahalanobis Distance

Description

Returns the Mahalanobis distance of all rows in x and the vector μ=center with respect to Σ=cov. This is (for vector x) defined as

D^2 = (x - μ)' Σ^{-1} (x - μ)

Usage

mahalanobis(x, center, cov, inverted=FALSE, tol.inv = 1e-7)

Arguments

x vector or matrix of data with, say, p columns.
center mean vector of the distribution or second data vector of length p.
cov covariance matrix (p x p) of the distribution.
inverted logical. If TRUE, cov is supposed to contain the inverse of the covariance matrix.
tol.inv tolerance to be used for computing the inverse (if inverted is false), see solve.

Author(s)

Friedrich Leisch

See Also

cov, var

Examples

ma <- cbind(1:6, 1:3)
(S <-  var(ma))
mahalanobis(c(0,0), 1:2, S)

x <- matrix(rnorm(100*3), ncol = 3)
stopifnot(mahalanobis(x, 0, diag(ncol(x))) == rowSums(x*x))
        ##- Here, D^2 = usual Euclidean distances
Sx <- cov(x)
D2 <- mahalanobis(x, rowMeans(x), Sx)
plot(density(D2, bw=.5), main="Mahalanobis distances, n=100, p=3"); rug(D2)
qqplot(qchisq(ppoints(100), df=3), D2,
       main = expression("Q-Q plot of Mahalanobis" * ~D^2 *
                         " vs. quantiles of" * ~ chi[3]^2))
abline(0, 1, col = 'gray')

[Package Contents]