相关疑难解决方法(0)

R中的马哈拉诺比斯距离

我在程序包StatMatch(http://cran.r-project.org/web/packages/StatMatch/StatMatch.pdf)中找到了mahalanobis.dist函数,但它并没有完全符合我的要求.它似乎是计算数据中每次观察的马哈拉诺比斯距离.对于data.x中的每次观察

我想计算data.y中一个观测值的mahalanobis距离到data.x中的所有观测值.如果有意义的话,基本上计算一个点的马哈拉诺比斯距离到点的"云".有点想到观察成为另一组观察的一部分的概念

这个人(http://people.revoledu.com/kardi/tutorial/Similarity/MahalanobisDistance.html)似乎正在这样做,我试图在R中复制他的过程但是当我到达底部时它失败了等式:

mahaldist = sqrt((inversepooledcov %*% t(meandiffmatrix)) %*% meandiffmatrix)
Run Code Online (Sandbox Code Playgroud)

我正在使用的所有代码都在这里:

a = rbind(c(2,2), c(2,5), c(6,5),c(7,3))

colnames(a) = c('x', 'y')

b = rbind(c(6,5),c(3,4))

colnames(b) = c('x', 'y')

acov = cov(a)
bcov = cov(b)

meandiff1 = mean(a[,1]) - mean(b[,1])

meandiff2 = mean(a[,2]) - mean(b[,2])

meandiffmatrix = rbind(c(meandiff1,meandiff2))

totaldata = dim(a)[1] + dim(b)[1]

pooledcov = (dim(a)[1]/totaldata * acov) + (dim(b)[1]/totaldata * bcov)

inversepooledcov = solve(pooledcov)

mahaldist = sqrt((inversepooledcov %*% t(meandiffmatrix)) %*% meandiffmatrix)
Run Code Online (Sandbox Code Playgroud)

r distance

6
推荐指数
3
解决办法
2万
查看次数

每组有多个观测值的马哈拉诺比斯距离

我想计算物种群体之间的马哈拉诺比斯距离,其中:

  • i) 有两个以上的类群(两个以上的物种)。
  • ii) 有多个变量(此类物种的特征)需要考虑。
  • iii)每组有多个观察值(在数据框中,这意味着每个物种有不止一行)。

我试图了解在这种条件下如何在 R 中运行mahalanobis函数。这个问题类似于:

超过 2 个组的 R 上的马哈拉诺比斯距离

但在那里,只使用了一个变量。如果有多个变量怎么办呢?

下面有一个示例,我相信它再现了我的实际数据。

Sp. X1  X2  X3
A   0.7 11  215
B   0.8 7   214
B   0.8 6.5 187
C   0.3 4   456
D   0.4 3   111
A   0.1 7   205
A   0.2 7   196
C   0.1 9.3 77
D   0.6 8   135
D   0.8 4   167
B   0.4 6   228
C   0.1 5   214
A   0.4 7   156
C   0.5 2   344
Run Code Online (Sandbox Code Playgroud)

Sp。= …

statistics r cluster-analysis similarity mahalanobis

1
推荐指数
1
解决办法
2581
查看次数