1

データフレームがtableあり、データフレームの列の可能なペアごとにマハラノビスを計算したいと思います。

           A1        A2          A3
     121.4984  219.5448    250.7575
     121.5195  219.5451    250.7500
     121.5089  219.4667    250.5645
     121.5510  219.6235    250.5645
     121.8034  219.4235    250.0005 

とととA1との間の距離を計算したいと思います... 最大 50 の列があるかもしれません。A2A1A3A2A3

4

2 に答える 2

0

マハラノビスは次のように計算されます。

ここに画像の説明を入力

マハラノビス距離を実行する私の考えは次のとおりです。

Mahalanob <- function(data){
  CovMat <- cov(data)
  S <- apply(data, 2, FUN = function(x) { x - mean(x) })
  dmahal <- S %*% solve(as.matrix(CovMat)) %*% t(S)
  return(dmahal)
}

データセットを指定する場合は、y 変数を含めx-mean(x) て forを変更できますx-y

于 2018-06-14T11:18:25.193 に答える