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 R^n, 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 x,yinR^n é definida pela norma- 2 do vetor diferença:
dE(x,y) =|x-y|2 =raiz(x-y)^T(x-y),
É a forma mais direta de medir “o comprimento da reta” que une x e y.

Passo 3

A distância de Mahalanobis incorpora a estrutura de correlação e escala dos dados via a matriz de covariância Sigma. Para dois vetores x,yinR^n, ela é
dM(x,y) =raiz(x-y)^T,Sigma^-1,(x-y),
Aqui Sigma é, em geral, a matriz de covariância de uma amostra ou do modelo. A inversa Sigma^-1 “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 Sigma = In (matriz identidade de ordem n), então Sigma^-1=In e
dM(x,y) =raiz(x-y)^T In,(x-y) =raiz(x-y)^T(x-y) = dE(x,y),
Logo, a distância de Mahalanobis reduz-se à Euclidiana sempre que as variáveis forem não correlacionadas e com variância igual a 1 (ou, mais geralmente, quando Sigma 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 Sigma é a matriz identidade (ou equivalente a ela por escalar), pois nesse caso Sigma^-1=I e ambos os fórmulas tornam-se idênticas.

Exercícios relacionados