2012-05-09 10 views
5

I dati statistici delle vendite sono in forma di matrice per calcolare la deviazione standard o la media da questi dati.Ricerca di un valore insolito in una matrice, lista

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

let detto + -20% differenziale è situazione normale, è ovviamente un caso speciale.

qual è il miglior algoritmo (in qualsiasi lingua, pseudo né alcun principio) per trovare questo valore insolito?

risposta

9

È possibile convertirli in Z-scores e cercare valori anomali.

>>> 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

suo pulito e chiaro thks @wim – aifarfa

2

Calcolare la deviazione standard e standard. Tratta qualsiasi valore più di X deviazioni standard dalla media come "insolito" (dove X sarà probabilmente da qualche parte tra 2,5 e 3,0 o giù di lì).

Ci sono alcune varianti di questo tema. Se hai bisogno di qualcosa che sia statisticamente valido, potresti voler esaminare alcuni di essi - possono eliminare cose come difendere la scelta arbitraria di (diciamo) 2.7 deviazioni standard come linea di demarcazione.

2

trovare il standard deviation, e dei valori che giace al di fuori 3 sigma + o - 3 sigma è un valore scandaloso ...

In teoria, un + -3 Sigma dà una confidence value superiore al 99%.

Problemi correlati