Correlation
這些基於相關的距離是否滿足三角不等式?
對於層次聚類,我經常看到以下兩個“指標”(它們並不完全正確)用於測量兩個隨機變量之間的距離和:
任何一個都滿足三角不等式嗎?如果是這樣,除了進行蠻力計算之外,我應該如何證明它?如果它們不是指標,那麼簡單的反例是什麼?
你的三角不等式會產生:
這似乎是一個很容易克服的不平等。我們可以通過使右手邊盡可能小(正好是一個)和獨立的。那麼我們能不能找到一個左邊超過一?
如果和和有相同的方差,那麼同樣對於, 所以左邊遠高於 1,違反了不等式。R 中的這種違規示例,其中和是多元正態的分量:
library(MASS) set.seed(123) d1 <- function(a,b) {1 - abs(cor(a,b))} Sigma <- matrix(c(1,0,0,1), nrow=2) # covariance matrix of X and Z matrixXZ <- mvrnorm(n=1e3, mu=c(0,0), Sigma=Sigma, empirical=TRUE) X <- matrixXZ[,1] # mean 0, variance 1 Z <- matrixXZ[,2] # mean 0, variance 1 cor(X,Z) # nearly zero Y <- X + Z d1(X,Y) # 0.2928932 d1(Y,Z) # 0.2928932 d1(X,Z) # 1 d1(X,Z) <= d1(X,Y) + d1(Y,Z) # FALSE
儘管請注意此結構不適用於您的:
d2 <- function(a,b) {1 - cor(a,b)^2} d2(X,Y) # 0.5 d2(Y,Z) # 0.5 d2(X,Z) # 1 d2(X,Z) <= d2(X,Y) + d2(Y,Z) # TRUE
而不是發起理論上的攻擊,在這個階段,我發現在 R 中使用協方差矩陣更容易,
Sigma
直到彈出一個很好的反例。允許,和給出:我們還可以研究協方差:
那麼平方相關是:
然後儘管和所以三角不等式被大大違反了。
Sigma <- matrix(c(2,1,1,1), nrow=2) # covariance matrix of X and Z matrixXZ <- mvrnorm(n=1e3, mu=c(0,0), Sigma=Sigma, empirical=TRUE) X <- matrixXZ[,1] # mean 0, variance 2 Z <- matrixXZ[,2] # mean 0, variance 1 cor(X,Z) # 0.707 Y <- X + Z d2 <- function(a,b) {1 - cor(a,b)^2} d2(X,Y) # 0.1 d2(Y,Z) # 0.2 d2(X,Z) # 0.5 d2(X,Z) <= d2(X,Y) + d2(Y,Z) # FALSE