A desigualdade de triângulo no seu renderia:
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−|Cor(Y,Z)|≤1+|Cor(X,Z)|
Parece uma desigualdade bastante fácil de derrotar. Podemos tornar o lado direito o menor possível (exatamente um), tornando e independentes. Então, podemos encontrar um para o qual o lado esquerdo excede um?Z YXZY
Se e e tiverem variação idêntica, então e da mesma forma para , então o lado esquerdo está bem acima de um e a desigualdade é violada. Exemplo desta violação em R, onde e são componentes de uma normal multivariada:X Z C O r ( X , Y ) = √Y=X+ZXZCOR(Y,Z)XZC o r (X, Y) = 2√2≈ 0,707C 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
Observe que essa construção não funciona com o seu :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
Em vez de lançar um ataque teórico em , nesse estágio, achei mais fácil brincar com a matriz de covariância em R até que um bom contra-exemplo tenha surgido. Permitindo , e fornece: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
Também podemos investigar as covariâncias:
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
Cov(Y,Z)=Cov(X+Z,Z)=Cov(X,Z)+Cov(Z,Z)=1+1=2
As correlações ao quadrado são:
Cor(X,Y)2=COv(X,Y)2
Cor(X,Z)2=Cov(X,Z)2Var(X)Var(Z)=122×1=0.5
Cor(Y,Z)2=COv(Y,Z)2Cor(X,Y)2=Cov(X,Y)2Var(X)Var(Y)=322×5=0.9
Cor(Y,Z)2=Cov(Y,Z)2Var(Y)Var(Z)=225×1=0.8
Então enquanto e assim a desigualdade triangular é violada por uma margem substancial.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