# mahalanobis: Mahalanobis Distance

## Description

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 - μ)

## Usage

 `1` ```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 x 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`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```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') ```