¿Podemos usar dejar una desviación media y estándar para revelar los valores atípicos?

17

Supongamos que normalmente tengo datos distribuidos. Para cada elemento de los datos, quiero verificar cuántas SD está lejos de la media. Puede haber un valor atípico en los datos (probablemente solo uno, pero también puede ser dos o tres) o no, pero este valor atípico es básicamente lo que estoy buscando. ¿Tiene sentido excluir temporalmente el elemento que estoy viendo actualmente del cálculo de la media y la DE? Mi opinión es que si está cerca de la media, no tiene ningún impacto. Si es un valor atípico, puede sesgar el cálculo de la media y la DE y disminuir la probabilidad de que se detecte. No soy estadístico, por lo que cualquier ayuda es apreciada.

Oliver
fuente
77
Tiene mucho sentido y es la base de muchas técnicas de detección de valores atípicos. Pero en lugar de inventar su propio método, que podría funcionar o no (y este último es mucho más probable incluso con métodos recién inventados por los estadísticos, por lo que necesitan un estudio cuidadoso), ¿por qué no utiliza uno que ha sido teóricamente comprobado y probado empíricamente?
whuber
Gracias por señalar eso. ¡Buscaré esas técnicas y veré si funcionan bien en mis datos!
Oliver
1
Consulte esta página sobre Diagnóstico de eliminación de regresión en R: stat.ethz.ch/R-manual/R-patched/library/stats/html/…
Ben Ogorek
.... Y esta respuesta para ilustrar por qué no se puede depender de ellos para encontrar más de un valor atípico.
usuario603
Grandes pensamientos anteriores sobre la idea de señalar valores atípicos. En algún momento, había escrito un artículo sobre la idea de los filtros de paso de pérdida para señalar anomalías. Espero que esto ayude a extender la idea presentada anteriormente. Enlace al artículo: datascience.com/blog/python-anomaly-detection
Pramit

Respuestas:

25

Puede parecer contrario a la intuición, pero usar el enfoque que describe no tiene sentido (para tomar su redacción, prefiero escribir "puede conducir a resultados muy diferentes de los previstos") y uno nunca debería hacerlo: los riesgos de no funciona son consecuentes y además, existe una alternativa más simple, mucho más segura y mejor establecida disponible sin costo adicional.

Primero, es cierto que si hay un solo valor atípico, eventualmente lo encontrará utilizando el procedimiento que sugiere. Pero, en general (cuando puede haber más de un valor atípico en los datos), el algoritmo que sugiere se descompone por completo, en el sentido de que puede llevarlo a rechazar un buen punto de datos como un valor atípico o mantener los valores atípicos como buenos datos. con consecuencias potencialmente catastróficas.

A continuación, doy un ejemplo numérico simple donde la regla que propone se desglosa y luego propongo una alternativa mucho más segura y establecida, pero antes de esto explicaré a) lo que está mal con el método que propone yb) lo que generalmente prefiere alternativa a esto es.

En esencia, no puede utilizar la distancia de una observación desde la desviación media y la desviación estándar de sus datos para detectar valores atípicos de manera confiable porque las estimaciones que usa (omita la desviación estándar y la media) aún pueden ser arrastradas hacia el resto valores atípicos: esto se llama efecto de enmascaramiento.

En pocas palabras, una manera simple de detectar de manera confiable los valores atípicos es utilizar la idea general que sugirió (distancia desde la estimación de ubicación y escala) pero reemplazando los estimadores que usó (omita una media, sd) por robustos, es decir, estimaciones diseñado para ser mucho menos susceptible a ser influido por valores atípicos.

Considere este ejemplo, donde agrego 3 valores atípicos a 47 observaciones genuinas extraídas de un Normal 0,1:

n    <- 50
set.seed(123)  # for reproducibility
x    <- round(rnorm(n,0,1), 1)
x[1] <- x[1]+1000
x[2] <- x[2]+10
x[3] <- x[3]+10

El siguiente código calcula el índice de periferia en función de la desviación estándar y la media de omisión (por ejemplo, el enfoque que sugiere).

out_1 <- rep(NA,n)
for(i in 1:n){  out_1[i] <- abs( x[i]-mean(x[-i]) )/sd(x[-i])  }

y este código produce la trama que ves a continuación.

plot(x, out_1, ylim=c(0,1), xlim=c(-3,20))
points(x[1:3], out_1[1:3], col="red", pch=16)

La imagen 1 representa el valor de su índice de periferia en función del valor de las observaciones (el más alejado de los valores atípicos está fuera del rango de este gráfico, pero los otros dos se muestran como puntos rojos). Como puede ver, excepto el más extremo, un índice de periferia construido como usted sugiere no revelaría los valores atípicos: de hecho, los valores atípicos segundo y tercero (más leves) ahora incluso tienen un valor (en su índice de periferia) menor que todos¡las observaciones genuinas! ... Bajo el enfoque que sugiere, uno mantendría estos dos valores atípicos extremos en el conjunto de observaciones genuinas, lo que lo llevaría a usar las 49 observaciones restantes como si vinieran del mismo proceso homogéneo, lo que le da un resultado final estimación de la media y la desviación estándar basada en estos 49 puntos de datos de 0.45 y 2.32, ¡una descripción muy pobre de cualquiera de las partes de su muestra!

imagen2

xiX

O(xi,X)=|ximed(X)|mad(X)

med(X)Xmad(X)

En R, este segundo índice de periferia se puede calcular como:

out_2 <- abs( x-median(x) )/mad(x)

y graficado (como antes) usando:

plot(x, out_2, ylim=c(0,15), xlim=c(-3,20))
points(x[1:3], out_2[1:3], col="red", pch=16)

imagen2

La imagen 2 traza el valor de este índice de periferia alternativo para el mismo conjunto de datos. Como puede ver, ahora los tres valores atípicos se revelan claramente como tales. Además, esta regla de detección de valores atípicos tiene algunas propiedades estadísticas establecidas. Esto lleva, entre otras cosas, a reglas de corte utilizables. Por ejemplo, si se puede suponer que la parte genuina de los datos se extrae de una distribución simétrica con un segundo momento finito, puede rechazar todos los puntos de datos para los que

|ximed(X)|mad(X)>3.5

como valores atípicos. En el ejemplo anterior, la aplicación de esta regla lo llevaría a marcar correctamente las observaciones 1,2 y 3. Rechazando estas, la media y la desviación estándar de las observaciones restantes es 0.021 y 0.93 receptivamente, una descripción mucho mejor de la parte genuina de la muestra !

usuario603
fuente
2
+1 a pesar de la primera oración, que usted contradice de inmediato (la propuesta del OP tiene sentido cuando se supone como máximo un valor atípico; su objeción se refiere a problemas con este procedimiento cuando se viola esa suposición).
whuber
1
Gracias. Mientras tanto, eliminé mi comentario anterior, anticipando que quedará obsoleto después de sus ediciones.
whuber
3
El fenómeno en el que varios valores atípicos hacen que la detección de valores atípicos ciegos a cualquiera de ellos a menudo se denomina enmascaramiento . Esto puede ayudar a las personas a localizar más información relacionada con el tema.
Glen_b -Reinstate Monica
1
@ user603 Buen trabajo creando un escenario ilustrativo pero creo que estás tirando al bebé con el agua del baño. Los diagnósticos de eliminación de regresión no son perfectos, pero son ampliamente aplicables y han resistido el paso del tiempo. Tomar la mediana está bien, pero me pregunto cómo extenderías tu enfoque a modelos basados ​​en probabilidades más complejos.
Ben Ogorek
2
+6, esta es una respuesta realmente excelente, explicada de forma clara y exhaustiva, ilustrada con código, figuras y fórmulas. Modifiqué ligeramente el formato del código para que sea un poco más fácil de leer. Si no te gusta, retrocede con mis disculpas.
gung - Restablece a Monica