Detección de anomalías LOF
Detectar anomalías usando Local Outlier Factor. Utiliza el Local Outlier Factor (LOF) para medir la desviación de densidad local de los puntos de datos en…
Utiliza el Local Outlier Factor (LOF) para medir la desviación de densidad local de los puntos de datos en relación con sus vecinos. Los puntos con densidad significativamente menor se clasifican como anomalías.
¿Qué es el Factor de Outlier Local (LOF)?
El factor de atipicidad local (LOF) es un algoritmo de detección de anomalías basado en la densidad que identifica valores atípicos comparando la densidad local de un punto con la densidad de sus vecinos. A diferencia de los métodos globales, LOF puede detectar valores atípicos en conjuntos de datos con grupos de densidad variable: un punto puede ser normal dentro de un grupo disperso y anómalo junto a un grupo denso.
El algoritmo calcula la distancia de alcanzabilidad y la densidad local de alcanzabilidad (LRD) de cada punto a partir de sus k vecinos más cercanos. La puntuación LOF es el cociente entre la LRD del punto y la LRD media de sus vecinos. LOF ≈ 1 significa una densidad similar a la de los vecinos (normal); LOF >> 1 significa una densidad mucho menor (anomalía).
El número de vecinos (k) controla la localidad: un k pequeño se centra en la estructura muy local, mientras que un k grande suaviza sobre vecindarios más amplios. La razón de contaminación determina la fracción de puntos clasificados como anomalías según el orden de las puntuaciones LOF.
Formula: reach-dist(A,B) = max(k-dist(B), dist(A,B)) LRD(A) = 1 / (Σ reach-dist(A,Oᵢ) / k) LOF(A) = (Σ LRD(Oᵢ) / LRD(A)) / k LOF ≈ 1: normal, LOF >> 1: outlier
Ejemplo de cálculo
Con k=5 vecinos: el punto P₁, situado en un grupo denso, tiene LRD=10 y sus 5 vecinos tienen una LRD media de 9.5. LOF = 9.5/10 = 0.95 (normal). El punto P₂, próximo al borde del grupo, tiene LRD=2 y sus vecinos una LRD media de 8. LOF = 8/2 = 4.0 (valor atípico claro). Con contaminación=0.05, se marca el 5% de puntuaciones LOF más altas.
Cuándo usar esta calculadora
- Cuando sus datos tienen clusters de densidad variable — LOF detecta anomalías locales que métodos globales como Z-score o Isolation Forest perderían
- Durante inspección de calidad multivariante cuando mediciones de diferentes estaciones de prueba forman clusters naturales con diferentes dispersiones
- Al analizar datos de vibración o sensores de equipos donde los modos normales de operación tienen diferentes patrones y densidades características
- Cuando los resultados de detección de outliers de Isolation Forest parecen perder anomalías cerca de clusters densos — el enfoque basado en densidad de LOF maneja este caso
- Durante la resolución de problemas de proceso para identificar puntos de datos que son inusuales relativos a su vecindario local, incluso si caen dentro de rangos globales
Errores comunes que se deben evitar
- Establecer k (vecinos) demasiado pequeño, causando sensibilidad al ruido — valores de k muy pequeños hacen el algoritmo inestable; comience con k=20 y ajuste según resultados
- Usar LOF en datos de muy alta dimensionalidad — LOF depende de métricas de distancia que se vuelven menos significativas en altas dimensiones (maldición de la dimensionalidad); considere reducción de dimensionalidad primero
- Tratar todos los puntos con LOF > 1 como anomalías — LOF > 1 solo significa densidad ligeramente menor que los vecinos; use el umbral de contaminación o un corte significativo de LOF (p.ej., LOF > 2)
- No escalar características antes de aplicar LOF — las características con rangos numéricos mayores dominan el cálculo de distancia; estandarice todas las características a media cero y varianza unitaria
Cómo interpretar los resultados
- LOF ≈ 1.0 — el punto tiene densidad similar a sus vecinos; es un miembro normal de su cluster local
- LOF 1.5-3.0 — el punto está en un área de menor densidad relativa a sus vecinos; puede estar en el borde de un cluster o ser un outlier leve
- LOF > 3.0 — el punto tiene densidad mucho menor que sus vecinos; es un fuerte outlier local y debe investigarse
- LOF < 1.0 — el punto está en un área más densa que sus vecinos; esto es común para puntos en el centro de clusters compactos
- Si muchos puntos tienen puntuaciones LOF altas, los datos pueden no tener clusters bien definidos — considere si LOF es el método correcto para este conjunto de datos
Estándares y referencias relacionados
- Breunig, Kriegel, Ng & Sander (2000), "LOF: Identifying Density-Based Local Outliers", ACM SIGMOD — El artículo original que define la puntuación LOF calculada aquí
- ISO 16269-4 — Interpretación estadística de datos: detección y tratamiento de valores atípicos, el estándar que rige cómo manejar las observaciones señaladas
- ASTM E178 — Práctica estándar para el tratamiento de observaciones atípicas, el complemento clásico para decisiones univariadas sobre atípicos
- Aggarwal, Outlier Analysis (Springer) — Referencia exhaustiva que compara métodos basados en densidad como LOF con alternativas basadas en aislamiento y en distancia
Preguntas frecuentes
¿Cómo elijo el número de vecinos (k)?
Empiece con k=20 como valor predeterminado razonable. Un k más pequeño (5-10) detecta anomalías muy locales, pero es sensible al ruido. Un k más grande (50+) proporciona resultados más suaves, pero puede pasar por alto anomalías localizadas. Un enfoque práctico: pruebe varios valores de k y compruebe si se marcan sistemáticamente los mismos puntos; los valores atípicos que persisten con distintos valores de k tienen más probabilidad de ser anomalías reales.
¿Cuándo debo usar LOF en lugar de Isolation Forest?
Use LOF cuando sus datos presenten grupos de densidades diferentes, ya que LOF evalúa cada punto respecto a su vecindario local. Un punto alejado de un grupo denso pero cercano a un grupo disperso puede ser normal: LOF lo trata correctamente, mientras que los métodos globales podrían marcarlo. Use Isolation Forest con datos de alta dimensionalidad o con conjuntos de datos muy grandes, donde la complejidad O(n²) de LOF resulta prohibitiva.