2012-05-09 14 views
5

Tengo datos estadísticos de ventas en forma de matriz para calcular la desviación estándar o el promedio de estos datos.Encontrar un valor inusual en una matriz, list

stats = [100, 98, 102, 100, 108, 23, 120] 

Let dijo + -20% diferencial es una situación normal, es obviamente un caso especial.

¿Cuál es el mejor algoritmo (en cualquier idioma, pseudo o principio) para encontrar este valor inusual?

Respuesta

9

Puede convertirlos a Z-scores y buscar valores atípicos.

>>> import numpy as np 
>>> stats = [100, 98, 102, 100, 108, 23, 120] 
>>> mean = np.mean(stats) 
>>> std = np.std(stats) 
>>> stats_z = [(s - mean)/std for s in stats] 
>>> np.abs(stats_z) > 2 
array([False, False, False, False, False,  True, False], dtype=bool) 
+0

es limpio y claro thw @wim – aifarfa

2

Calcule el promedio y la desviación estándar. Trate a cualquier valor más de X desviaciones estándar del promedio como "inusual" (donde X probablemente estará en algún lugar alrededor de 2.5 a 3.0 o menos).

Existen bastantes variaciones de este tema. Si necesita algo que sea realmente sólido desde el punto de vista estadístico, es posible que desee examinar algunos de ellos; pueden eliminar cosas como defender la elección arbitraria de (digamos) 2.7 desviaciones estándar como línea divisoria.

2

encontrar el standard deviation, y los valores que están fuera 3 sigma + o - 3 sigma es un valor extravagante ...

En teoría, a + -3 sigma da una confidence value de más del 99%.

Cuestiones relacionadas