Investigue a relação entre as distâncias Euclidiana e de Mahalanobis.
Apresente as funções matemáticas para cada uma delas.
- Em que caso elas coincidem?
- Apresente exemplos computacionais
Passo 1
O enunciado pede para comparar duas medidas de distância em espaços vetoriais: a distância Euclidiana e a distância de Mahalanobis. Vamos precisar do conceito de norma em
, de matriz de covariância e de álgebra linear básica para entender como se define cada uma dessas distâncias. Também faremos exemplos computacionais em Python para ilustrar.
Passo 2
A distância Euclidiana entre dois vetores
é definida pela norma-
do vetor diferença:
É a forma mais direta de medir “o comprimento da reta” que une
e
.
Passo 3
A distância de Mahalanobis incorpora a estrutura de correlação e escala dos dados via a matriz de covariância
. Para dois vetores
, ela é
Aqui
é, em geral, a matriz de covariância de uma amostra ou do modelo. A inversa
“pesa” cada direção de acordo com sua variância e correlação.
Passo 4
Para ver quando as duas distâncias coincidem, note que se escolhêssemos
(matriz identidade de ordem
), então
e
Logo, a distância de Mahalanobis reduz-se à Euclidiana sempre que as variáveis forem não correlacionadas e com variância igual a
(ou, mais geralmente, quando
for múltiplo escalar da identidade).
Passo 5
Exemplos computacionais em Python:
import numpy as np
from scipy.spatial.distance import mahalanobis
# Definimos dois vetores em \(R^2\)
x \(=\) np.array([\(1.0\), \(2.0\)])
y \(=\) np.array([\(4.0\), \(6.0\)])
# \(1\)) Distância Euclidiana
dE \(=\) np.linalg.norm(x - y) # \(=5.0\)
# \(2\)) Caso Sigma \(=\) I
Sigma \(=\) np.eye(\(2\))
\(Sigma_inv =\) np.linalg.inv(Sigma)
\(dM_id =\) np.sqrt((x - y) @ \(Sigma_inv\) @ (x - y)) # também \(5.0\)
# \(3\)) Caso Sigma diagonal com variâncias diferentes
Sigma\(2=\) np.diag([\(2.0\), \(1.0\)])
\(Sigma2_inv =\) np.linalg.inv(Sigma\(2\))
dM\(2=\) np.sqrt((x - y) @ \(Sigma2_inv\) @ (x - y)) # ~\(=4.527\)
print("dE \(=\)", dE)
print("dM (Sigm\(a=I\)) \(=\)", \(dM_id\))
print("dM (Sigm\(a=d\)iag(\(2,1\))) \(=\)", dM\(2\))
Saída esperada:
dE \(=5.0\)
dM (Sigm\(a=I\)) \(=5.0\)
dM (Sigm\(a=d\)iag(\(2,1\))) \(\approx 4.5277\)
Resposta
A distância de Mahalanobis coincide com a distância Euclidiana exatamente quando a matriz de covariância
é a matriz identidade (ou equivalente a ela por escalar), pois nesse caso
e ambos os fórmulas tornam-se idênticas.