8 votos

Proceso iterativo para la eliminación de las muestras extremas

Mis muestras siga pesado de cola de las distribuciones. Yo uso un proceso para detectar y eliminar "extrema" de las muestras como sigue:

  1. Medida de la media y la desviación estándar de las muestras.
  2. Extraer las muestras más alto que la media de más de 4 desviaciones estándar.
  3. Repita desde el Paso 1 - para un total de 3 veces.

Si no hay ningún extremo muestras, a continuación, el proceso anterior elimina ninguno; si son muchos, a continuación, se sesgar media/std.dev, sin embargo, las múltiples iteraciones cuidar de eso.

Para mi problema, el algoritmo anterior elimina 0-5% de las muestras y las pruebas empíricas muestran que funciona bastante bien y parece bastante robusto.

Sin embargo, este proceso está el sonido? ¿Tiene un nombre formal para buscarlo?

Observe que, no puedo encontrar el "óptimo" número de desviaciones estándar por encima de la cual rechazamos las muestras, ya que todo este proceso debe ser automatizado para varios conjuntos de datos y ejecutar como parte de un sistema vivo. Los conjuntos de datos son similares pero no idénticos: a veces son pequeños y no hay valores atípicos (no de lujo de perder muestras); a veces son grandes y el número de ejemplos extremos que deben ser eliminados varía y puede ser bastante alta.

Los datos representan las acciones del usuario (una variable por tipo de acción) y tenemos varios conjuntos de usuarios tenemos que comparar (diferentes segmentaciones). Sin embargo, muchos de los "usuarios" son en realidad los robots que normalmente (pero no siempre) hacer las mismas acciones varias veces (de manera más veces de las que los seres humanos harían). Es justo decir que tenemos una mezcla de dos distribuciones que no podemos distinguir, los usuarios y bots. Nos preocupamos por las diferencias de comportamientos de los usuarios después de quitar tantos robots como sea posible. En el largo plazo vamos a construir un clasificador para los robots, pero por ahora estamos después de una rápida solución.

10voto

jpmuc Puntos 4817

El problema con su enfoque es que usted comienza suponiendo que sus datos están distribuidos normalmente, cuando ya sabes que no es. Algunas de las demás técnicas de detección son similares (es el sonido), pero que la misma suposición.

En lugar de utilizar la media y la desviación estándar, usted puede preferir el LOCO (mediana desviación absoluta) estimar, porque es más robusto en la estimación de la desviación a utilizar para el umbral de sus datos. Otra posibilidad es la de Tukey algoritmo de detección de outliers.

Aún así, lo que es más importante, señala que sus datos podrán ser bimodal (usuarios y bots). Lo que más me familiarizados con el estándar unimodal enfoque. Para tal caso, usted puede necesitar un poco de técnica como de GMM o estimación de densidad de kernel. Busqué en google un poco, y me encontré con este papel que parece muy interesante y se ajuste a tu problema bastante bien.

Por último, existen técnicas para la detección de valores atípicos, como SVMs que son de distribución agnóstico, y puede trabajar "fuera de la caja", proporcionaron suficientes datos.

0voto

OpenAndroid Puntos 116

Sólo una atención de advertencia! sea muy cuidadoso con la forma de implementar el algoritmo que se han mencionado. Personalmente, soy un poco escéptico.

La razón es la maldición de la dimensionalidad. En un problema de grandes dimensiones, ya que todos los puntos se encuentran en el límite, todos se ven como valores atípicos.

Como un simple ejemplo de contradecir a su algoritmo, digamos que tirar de 10 puntos en la primera carrera (con el sistema de medición de 4 desviaciones estándar (s).d.)). En la segunda carrera, su desviación estándar se reducirá debido a que han arrojado los puntos extremos. Ahora el 4.s.d. el valor para la segunda iteración será menor y por lo tanto se terminan lanzando más puntos. Si la distribución se ve algo como una sinusoide en descomposición de distancia desde el origen, usted podría terminar de tirar la mayoría de los puntos bajo el pretexto de la exageración.

Si usted piensa que mi análisis es malo (que muy bien podría ser) me gustaría conocer su opinión acerca de por qué estoy pensando esto de forma incorrecta

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X