1. 马氏距离定义
2. 源代码
输入mahanobis 即可得到代码:
> mahalanobis
function (x, center, cov, inverted = FALSE, ...)
{
x <- if (is.vector(x))
matrix(x, ncol = length(x))
else as.matrix(x)
if (!isFALSE(center))
x <- sweep(x, 2L, center)
if (!inverted)
cov <- solve(cov, ...)
setNames(rowSums(x %*% cov * x), rownames(x))
}
<bytecode: 0x0000000003e30778>
<environment: namespace:stats>
3. 案例操作
数据:7个变量(x1,x2,……x7);12个样本
目标:计算每个样本到总体的马氏距离
数据录入:
classX1<-data.frame(
x1=c(6.60, 6.60, 6.10, 6.10, 8.40, 7.2, 8.40, 7.50,
7.50, 8.30, 7.80, 7.80),
x2=c(39.00,39.00, 47.00, 47.00, 32.00, 6.0, 113.00, 52.00,
52.00,113.00,172.00,172.00),
x3=c(1.00, 1.00, 1.00, 1.00, 2.00, 1.0, 3.50, 1.00,
3.50, 0.00, 1.00, 1.50),
x4=c(6.00, 6.00