【问题标题】:How to find the outlier (40, 10) in this case using IQR rule?在这种情况下如何使用 IQR 规则找到异常值 (40, 10)?
【发布时间】:2021-01-12 11:27:56
【问题描述】:

假设我需要使用 IQR 规则去除异常值,即 (40, 10) 在这种情况下(参考下面的图),我该怎么做?

与相邻点相比,(40, 10) 绝对是一个异常值。然而,
第一季度 = 11.25,
第三季度 = 35.75
1.5 * IQR = 1.5 * (Q3 - Q1) = 36.75
只有 y-val 小于 11.25-36.75 或大于 35.75+36.75 的点才被视为异常值。
如果必须使用 IQR 规则,如何使用 IQR 规则查找和删除 (40, 10)?

这是我的代码:

import pandas as pd
import matplotlib.pyplot as plt

test = pd.DataFrame({'x': range(50), 'y': [i if i != 40 else 10 for i in range(50)]})

plt.figure(**FIGURE)
plt.scatter(test['x'], test['y'], marker='x')
plt.show()

这是上面代码生成的图。

【问题讨论】:

标签: python pandas statistics data-science


【解决方案1】:

您使用 IQR 的方式仅考虑 X 轴分量。如果不包括 Y 轴分量,则 (40, 10) 处的点不是异常值。

您应该使用考虑 2D 实例的方法,例如 Local Outlier Factor 或其他任何方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2019-01-12
    • 2013-03-21
    • 2012-12-16
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多