正如您从以下摘要中看到的,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