| mahalanobis {stats} | R Documentation | 
Returns the squared Mahalanobis distance of all rows in x and the
vector mu = center with respect to
Sigma = cov.
This is (for vector x) defined as
D^2 = (x - μ)' Σ^-1 (x - μ)
mahalanobis(x, center, cov, inverted=FALSE, ...)
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   | 
... | 
 passed to   | 
require(graphics)
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 squared Euclidean distances
Sx <- cov(x)
D2 <- mahalanobis(x, colMeans(x), Sx)
plot(density(D2, bw=.5),
     main="Squared 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')