【问题标题】:Outliers in data数据中的异常值
【发布时间】:2021-10-02 19:28:14
【问题描述】:

我有一个这样的数据集 -

15643, 14087, 12020, 8402, 7875, 3250, 2688, 2654, 2501, 2482, 1246, 1214, 1171, 1165, 1048, 897, 849, 579, 382, 285, 222, 168, 115, 92, 71, 57, 56, 51, 47, 43, 40, 31, 29, 29, 29, 29, 28, 22, 20, 19, 18, 18, 17, 15, 14, 14, 12, 12, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1

根据领域知识,我知道更大的值是我们想要包含在分析中的唯一值。我如何确定在哪里切断我们的分析?应该不包括15及以下或50及以下等?

【问题讨论】:

  • 我不会给出顶级答案,因为我不知道域是什么,但我看到这些是按降序排列的,并且元素之间的差异在之后永远不会大于 10第 26 个元素。

标签: pandas statistics median outliers standard-deviation


【解决方案1】:

您可以使用分位数功能进行分布检查。然后,您可以删除低于最低 1 个百分位或 2 个百分位的值。下面是一个例子:

import numpy as np
data = np.array(data)
print(np.quantile(data, (.01, .02)))

另一种方法是计算四分位数间距 (IQR),并设置分析的最低条为 Q1-1.5*IQR

Q1, Q3 = np.quantile(data, (0.25, 0.75))
data_floor = Q1 - 1.5 * (Q3 - Q1) 

【讨论】:

  • 我不能使用这个,因为问题中数据集的data_floor 值是- 64.375,但是没有负值,并且这个数据集中永远不会有任何负值。
  • 那么你可以使用第一个
  • 第一个和第二个百分位数都是1.0,因为我的数据集中有很多。
  • 如果您已经知道可能的可接受最小值,那您为什么需要查看统计数据???
  • 我不知道可能的最小值。我知道它应该大于 15 或其他东西。 >1 似乎不正确。
猜你喜欢
  • 2015-07-06
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 2015-03-13
相关资源
最近更新 更多