¿Qué algoritmos o métodos se pueden usar para detectar un valor atípico de este conjunto de datos?

8

Supongamos que tengo un conjunto de datos: Amount of money (100, 50, 150, 200, 35, 60 ,50, 20, 500). He buscado en Google la web en busca de técnicas que se pueden utilizar para encontrar un posible valor atípico en este conjunto de datos, pero que terminó confundido.

Mi pregunta es : ¿Qué algoritmos, técnicas o métodos se pueden usar para detectar posibles valores atípicos en este conjunto de datos?

PD : Tenga en cuenta que los datos no siguen una distribución normal. Gracias.

Nación Chirara
fuente
¿Cómo se reconoce un valor atípico en este pequeño conjunto? ¿Cómo haría "a mano" en datos un poco más grandes?
Laurent Duval

Respuestas:

5

Puede usar BoxPlot para análisis atípicos. Te mostraría cómo hacerlo en Python:

Considere sus datos como una matriz:

a = [100, 50, 150, 200, 35, 60 ,50, 20, 500]

Ahora, usa seaborn para trazar el diagrama de caja:

import seaborn as sn
sn.boxplot(a)

Entonces, obtendrías una trama que se parece a esto:

ingrese la descripción de la imagen aquí

Parece que 500 es lo único atípico para mí. Pero, todo depende del análisis y el nivel de tolerancia del analista o el estadístico y también la declaración del problema.

Puede echar un vistazo a una de mis respuestas en el SE CrossValidated para obtener más pruebas.

Y hay varias preguntas interesantes sobre los valores atípicos y los algoritmos y técnicas para detectarlos.

Mi favorito personal es la técnica de distancia Mahalanobis .

Dawny33
fuente
Bueno, gracias, una buena explicación de hecho. ¿Puedo aplicar la técnica de distancia de Mahalanobis en este caso o funciona para datos multivariados?
Nación Chirara
Usted puede. Pero está sobrecalificado para datos univariados. Solo un análisis de Boxplot con algún valor umbral establecido debería hacer el trabajo para estos datos.
Dawny33
5

Una forma de pensar en la detección de valores atípicos es que está creando un modelo predictivo, luego está verificando si un punto cae dentro del rango de predicciones. Desde un punto de vista teórico de la información, puede ver cuánto aumenta cada observación la entropía de su modelo.

Si está tratando estos datos solo como una colección de números, y no tiene un modelo propuesto para la forma en que se generan, también podría mirar el promedio. Si está seguro de que los números no se distribuyen normalmente, no puede hacer declaraciones sobre qué tan 'alejado' está un número determinado del promedio, pero puede verlo en términos absolutos.

Aplicando esto, puede tomar el promedio de todos los números, luego excluir cada número y tomar el promedio de los demás. El promedio más diferente del promedio global es el mayor valor atípico. Aquí hay algo de python:

def avg(a):
    return sum(a)/len(a)

l = [100, 50, 150, 200, 35, 60 ,50, 20, 500]
m = avg(l)
for idx in range(len(l)):
    print("outlier score of {0}: {1}".format(l[idx], abs(m - avg([elem for i, elem in enumerate(l) if i!=idx]))))
>>
outlier score of 100: 4
outlier score of 50: 10
outlier score of 150: 3
outlier score of 200: 9
outlier score of 35: 12
outlier score of 60: 9
outlier score of 50: 10
outlier score of 20: 14
outlier score of 500: 46 
Tristan Reid
fuente
Bueno, gracias por la respuesta. Estoy seguro de que los números no se distribuyen normalmente, ¿su método todavía se aplica en ese contexto?
Nación Chirara
Sí, siempre hay un modelo subyacente que implica predicciones sobre los datos. Si obtenemos un nuevo punto de datos, podemos adivinar cuál es ese valor. Si no tenemos otra información sobre el modelo (es solo una colección de números), entonces la mejor suposición es que se verá similar a los números que ya tenemos. Si termina con un modelo específico para los datos, es importante incorporarlo en su predicción. El uso de la media no implica que estemos asumiendo una distribución normal, pero otros modelos podrían usar algo diferente a la media.
Tristan Reid
Hola. Por lo general, no creo que sea una buena idea usar el promedio para datos distribuidos no normales. De hecho, por ejemplo, muchas pruebas estadísticas no paramétricas utilizan la mediana en lugar de la media. Pero eso es solo una opinión ...
Michael Hooreman
Es justo, pero creo que es seguro decir que si cree que sus datos se distribuyen simétricamente, significa que es una muy buena idea, de lo contrario, la mediana es una mejor medida de un valor 'típico'.
Tristan Reid
3

Un enfoque simple sería usar lo mismo que las gráficas de caja: lejos de 1.5 (mediana-q1) o 1.5 (q3-mediana) = valor atípico.

Lo encuentro útil en muchos casos, incluso si no es perfecto y tal vez demasiado simple.

Tiene la ventaja de no suponer normalidad.

Michael Hooreman
fuente