# mahalanobis

0th

Percentile

##### Mahalanobis Distance

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 - \mu)' \Sigma^{-1} (x - \mu)$$

Keywords
multivariate
##### 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$ or recyclable to that length. If set to FALSE, the centering step is skipped.
cov
covariance matrix ($p \times p$) of the distribution.
inverted
logical. If TRUE, cov is supposed to contain the inverse of the covariance matrix.
...
passed to solve for computing the inverse of the covariance matrix (if inverted is false).
cov, var
library(stats) 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 = 0.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^2)) abline(0, 1, col = 'gray')