我有数组形式的销售统计数据,以计算此数据的标准偏差或平均值。
stats = [100, 98, 102, 100, 108, 23, 120]
让p表示+ -20%差异是正常情况, 23 显然是一个特殊情况。
找到这个不寻常的值的最佳算法(用任何语言,伪或任何原理)是什么?
答案 0 :(得分: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)
答案 1 :(得分:2)
计算平均值和标准差。将任何超过X标准偏差的值视为“不寻常”(其中X可能大约在2.5到3.0左右)。
这个主题有很多变化。如果你需要一些真正统计上合理的东西,你可能想要研究其中的一些 - 它们可以消除诸如捍卫任意选择(比如)2.7标准差作为分界线之类的东西。
答案 2 :(得分:2)
找到standard deviation,位于3 sigma或+ - 3 sigma之外的值是一个令人发指的值......
理论上,+ -3西格玛给出的confidence value超过99%。