Correlation

這些基於相關的距離是否滿足三角不等式?

  • January 27, 2015

對於層次聚類,我經常看到以下兩個“指標”(它們並不完全正確)用於測量兩個隨機變量之間的距離和:

任何一個都滿足三角不等式嗎?如果是這樣,除了進行蠻力計算之外,我應該如何證明它?如果它們不是指標,那麼簡單的反例是什麼?

你的三角不等式會產生:

這似乎是一個很容易克服的不平等。我們可以通過使右手邊盡可能小(正好是一個)和獨立的。那麼我們能不能找到一個左邊超過一?

如果和和有相同的方差,那麼同樣對於, 所以左邊遠高於 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

引用自:https://stats.stackexchange.com/questions/135171

comments powered by Disqus