Üçgen eşitsizliği senin üzerinde doğuracak:
d1
d1( X, Z)1 - | C o r ( X, Z) |⟹| C o r (X, Y) | + | C o r ( Y, Z) |≤ d1( X, Y) + d1( Y, Z)≤ 1 - | C o r ( X, Y) | + 1 - | C o r ( Y, Z) |≤ 1 + | C o r ( X, Z) |
Bu yenmek için oldukça kolay bir eşitsizlik gibi görünüyor. ve bağımsız hale getirerek sağ tarafı mümkün olduğunca küçük (tam olarak bir) yapabiliriz . O zaman sol tarafın birini aştığı bir bulabilir miyiz ?Z YXZY
Eğer ve ve , daha sonra aynı varyans ve benzer için , yani sol taraf birin üzerindedir ve eşitsizlik ihlal edilir. ve çok değişkenli bir normalin bileşenleri olduğu R'deki bu ihlale örnek :X Z C o r ( X , Y ) = √Y= X+ ZXZCor(Y,Z)XZC o r (X, Y) = 2√2≈ 0.707S o r ( Y, Z)XZ
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
Bu yapının çalışmadığına dikkat edin :d2
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
üzerine teorik bir saldırı başlatmak yerine , bu aşamada güzel bir karşı örnek ortaya çıkana kadar R'deki kovaryans matrisi ile oynamayı daha kolay buldum . İzin , ve verir:V a r ( X ) = 2 V a r ( Z ) = 1 C o v ( X , Z ) = 1d2Sigma
V a r (X) = 2V a r (Z) = 1C o v (X, Z) = 1
V a r (Y) = V a r ( X+ Y) = V a r ( X) + V a r ( Z) + 2 C o v ( X, Z) = 2 + 1 + 2 = 5
Kovaryansları da araştırabiliriz:
C o v ( Y , Z ) = C o v ( X + Z , Z
C o v (X, Y) = C o v ( X, X+ Z) = C o v ( X, X) + C o v ( X, Z) = 2 + 1 = 3
C o v (Y, Z) = C o v ( X+ Z, Z) = C o v ( X, Z) + C o v ( Z, Z) = 1 + 1 = 2
Kareli korelasyonlar şu şekilde olur:
Cor(X,Y)2=Cov(X,Y)2
C o r (X, Z)2= C o v ( X, Z)2V a r (X) V a r ( Z)= 122 × 1= 0,5
Cor(Y,Z)2=Cov(Y,Z)2C o r (X, Y)2= C o v ( X, Y)2V a r (X) V a r ( Y)= 322 × 5= 0.9
C o r ( Y, Z)2= C o v ( Y, Z)2V a r (Y) V a r ( Z)= 225 × 1= 0.8
Sonra iken ve böylece üçgen eşitsizliği önemli bir farkla ihlal edilir.d 2 ( X , Y ) = 0,1 d 2 ( Y , Z ) = 0,2d2( X, Z) = 0,5d2( X, Y) = 0.1d2( Y, Z) = 0.2
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