mahalanobis {base}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)

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.

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)
all(mahalanobis(x, 0, diag(ncol(x)))
    == apply(x*x, 1, sum)) ##- Here, D^2 = usual Euclidean distances
Sx <- cov(x)
D2 <- mahalanobis(x, apply(x, 2, mean), 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]