Mahalanobis Entfernung in R

Ich habe die Funktion mahalanobis.dist im Paket StatMatch gefunden (http://cran.r-project.org/web/packages/StatMatch/StatMatch.pdf) aber es macht nicht genau das, was ich will. Es scheint, als würde der Mahalanobis-Abstand von jeder Beobachtung in data.y zu jeder Beobachtung in data.x berechnet

Ich möchte den Mahalanobis-Abstand einer Beobachtung in data.y zu allen Beobachtungen in data.x berechnen. Berechnen Sie grundsätzlich einen Mahalanobis-Abstand von einem Punkt zu einer "Punktwolke", wenn dies sinnvoll ist. Sozusagen die Vorstellung, dass eine Beobachtung Teil einer anderen Beobachtungsgruppe ist

Diese Person (http://people.revoledu.com/kardi/tutorial/Similarity/MahalanobisDistance.html) scheint dies zu tun und ich habe versucht, seinen Prozess in R zu replizieren, aber es schlägt fehl, wenn ich zum unteren Teil der Gleichung komme:

mahaldist = sqrt((inversepooledcov %*% t(meandiffmatrix)) %*% meandiffmatrix)

Der gesamte Code, mit dem ich arbeite, ist hier:

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)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage