2012-05-09 10 views
5

私はこのデータから標準偏差または平均を計算するための配列形式の販売統計データを持っています。配列内の異常な値を見つけるリスト

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

letが+ -20%の差は、通常の状況であるは明らかに特殊なケースであると述べました。

この異常な値を見つけるには、(どの言語でも、擬似的に、または何らかの原理で)最良のアルゴリズムは何ですか?

答えて

9

Z-scoresに変換してアウトライヤーを探すことができます。

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

清潔で澄んだスティック@ウィム – aifarfa

2

平均と標準偏差を計算します。平均値からのX標準偏差以上の値は、 "普通でない"ものとして扱います(Xはおそらく2.5〜3.0程度になります)。

このテーマにはかなりのバリエーションがあります。実際に統計的に健全なものが必要な場合は、それらのいくつかを調べることができます。分割線としての2.7の標準偏差の任意の選択を防御するなどの方法を排除できます。

2

standard deviationを見つけ、値が外部3シグマまたは+横たわっ - + -3シグマは99%以上のconfidence valueを与え、3シグマ法外な値である...理論的に

を。

関連する問題