Distancia de Mahalobis

Generación de Datos

Primero, generaremos un conjunto de datos multivariantes. Usaremos una distribución normal para crear dos variables correlacionadas.

# Cargar librerías necesarias
library(MASS)

# Establecer la semilla para reproducibilidad
set.seed(123)

# Generar datos
n <- 100  # número de observaciones
mu <- c(0, 0)  # media
sigma <- matrix(c(1, 0.8, 0.8, 1), nrow=2)  # matriz de covarianza

datos <- mvrnorm(n, mu, sigma)  # generar datos
datos <- as.data.frame(datos)  # convertir a dataframe
colnames(datos) <- c("V1", "V2")  # nombrar columnas

# Visualizar los datos
plot(datos$V1, datos$V2, main="Datos Generados", xlab="Variable 1", ylab="Variable 2")

Cálculo de la Distancia de Mahalanobis

A continuación, calcularemos la distancia de Mahalanobis para cada punto respecto a la media del conjunto de datos.

# Calcular la media y la matriz de covarianza
media <- colMeans(datos)
cov_matrix <- cov(datos)

# Calcular la distancia de Mahalanobis
distancias_mahalanobis <- mahalanobis(datos, center = media, cov = cov_matrix)

# Agregar las distancias al dataframe
datos$distancia_mahalanobis <- distancias_mahalanobis

Identificación de Datos Atípicos

Usaremos un umbral para identificar los puntos atípicos. Un criterio común es considerar como atípicos aquellos puntos cuya distancia sea mayor que un cierto percentil (por ejemplo, el percentil 95).

# Definir el umbral para identificar atípicos
umbral <- quantile(distancias_mahalanobis, 0.95)

# Identificar puntos atípicos
datos$atipico <- ifelse(datos$distancia_mahalanobis > umbral, TRUE, FALSE)

# Visualizar los resultados
plot(datos$V1, datos$V2, col = ifelse(datos$atipico, "red", "blue"), 
     main="Identificación de Datos Atípicos", xlab="Variable 1", ylab="Variable 2")
legend("topright", legend=c("Atípico", "Normal"), col=c("red", "blue"), pch=1)

Resumen de Pasos

  1. Generación de Datos: Se crean datos multivariantes con correlación.
  2. Cálculo de Distancia: Se calcula la distancia de Mahalanobis para cada punto.
  3. Identificación Atípicos: Se definen y visualizan los puntos atípicos basados en un umbral.