正如您從以下摘要中看到的,9月1日的計數(1542677)遠低於每月的平均計數。如何查找低於(或高於)平均值的值
from StringIO import StringIO
myst="""01/01/2016 8781262
01/02/2016 8958598
01/03/2016 8787628
01/04/2016 9770861
01/05/2016 8409410
01/06/2016 8924784
01/07/2016 8597500
01/08/2016 6436862
01/09/2016 1542677
"""
u_cols=['month', 'count']
myf = StringIO(myst)
import pandas as pd
df = pd.read_csv(StringIO(myst), sep='\t', names = u_cols)
是否有一個數學公式可以定義(曖昧)的概念這個「低於或太高的方式」?
如果我定義一個限制(例如9或10%),這很容易。但是我希望腳本能夠爲我決定,如果最低值和倒數第二低值之間的差值超過整體5%,則返回值。在這種情況下,應該返回9月的月數。
如果我改變四月值從9770861至977086.它不會返回任何東西。在這種情況下,我預計四月和九月。可能超過2個月超出範圍! – shantanuo
@shantanuo當然,你正在用很少的觀察來重新定義分佈的樣子。如果這些只是你的觀察結果,那麼4月份的新價值就意味着9月份的價值不再像我們想象的那樣「奇怪」了。你仍然可以通過將你的閾值從'2'降低到'1.5'來捕獲這兩者,我不建議這樣做。或者你可以相信,由於你有更多的觀測值來計算平均值,所以這兩個值實際上會被識別爲異常值。 – piRSquared
將閾值從2改爲1.5解決了我的問題。這正是我所期待的。有沒有什麼特別的原因,你不推薦這個? – shantanuo