ระยะทาง Mahalanobis Pairwise
ฉันจำเป็นต้องคำนวณตัวอย่างระยะทาง Mahalanobis ใน R ระหว่างการสังเกตทุกคู่ในเมทริกซ์n×pn×pn \times pของ covariates ฉันต้องการวิธีแก้ปัญหาที่มีประสิทธิภาพเช่นคำนวณระยะทางn(n−1)/2n(n−1)/2n(n-1)/2เท่านั้นและนำไปใช้ใน C / RCpp / Fortran เป็นต้นฉันคิดว่าเมทริกซ์ความแปรปรวนร่วมของประชากรไม่เป็นที่รู้จักและใช้ตัวอย่าง เมทริกซ์ความแปรปรวนร่วมในสถานที่ΣΣ\Sigma ฉันสนใจเป็นพิเศษในคำถามนี้เนื่องจากดูเหมือนจะไม่มีวิธี "ฉันทามติ" สำหรับการคำนวณระยะทาง Mahalanobis ในระดับ R แบบ pairwiseนั่นคือมันไม่ได้ใช้งานในdistฟังก์ชั่นหรือในcluster::daisyฟังก์ชั่น mahalanobisฟังก์ชั่นไม่ได้คำนวณระยะทางจากจำนวนโดยไม่ต้องทำงานเพิ่มขึ้นจากโปรแกรมเมอร์ นี่ถูกถามแล้วที่นี่ระยะทาง Pairwise Mahalanobis ใน Rแต่การแก้ปัญหาที่นั่นดูเหมือนไม่ถูกต้อง นี่คือที่ถูกต้อง แต่ไม่มีประสิทธิภาพชะมัด (ตั้งแต่n×nn×nn \times nระยะทางคำนวณ) วิธีการ: set.seed(0) x0 <- MASS::mvrnorm(33,1:10,diag(c(seq(1,1/2,l=10)),10)) dM = as.dist(apply(x0, 1, function(i) mahalanobis(x0, i, cov = cov(x0)))) …