【问题标题】:Multivariate Outlier Detection using R with probability使用 R 概率进行多变量异常值检测
【发布时间】:2017-05-18 15:23:00
【问题描述】:

我一直在到处寻找使用 R 识别多元异常值的最佳方法,但我认为我还没有找到任何可信的方法。

我们可以以虹膜数据为例,因为我的数据也包含多个字段

data(iris)
df <- iris[, 1:4] #only taking the four numeric fields

首先,我使用库 MVN 中的 Mahalanobis 距离

library(MVN)
result <- mvOutlier(df, qqplot = TRUE, method = "quan") #non-adjusted
result <- mvOutlier(df, qqplot = TRUE, method = "adj.quan") #adjusted Mahalonobis distance

两者都导致大量异常值(150 个中的 50 个为未调整的,49/150 个为调整的),我认为这需要进一步完善。不幸的是,我似乎无法在 mvOutlier 方法中找到一个变量来设置阈值(说增加一个点成为异常值的概率,以便我们有一个较小的数字)

其次,我使用了异常值库。这是为了找到单变量异常值。因此,我的计划是在数据的每个维度上找到异常值,并且那些在所有维度上都是异常值的点被视为数据集的异常值。

library(outliers)
result <- scores(df, type="t", prob=0.95) #t test, probability is 0.95
result <- subset(result, result$Sepal.Length == T & result$Sepal.Width == T & result$Petal.Length == T & result$Petal.Width == T)

为此我们可以设置概率,但我认为它不能代替多元异常值检测。

我尝试过的其他一些方法

  • library(mvoutlier):这仅显示情节。很难 自动找出异常值。而且我不知道如何添加 概率成这个
  • cook's distance (link): 一个男人说他用cook's 距离,但我认为没有任何强有力的学术证据可以证明 证明这没问题。

【问题讨论】:

    标签: r outliers multivariate-testing mahalanobis


    【解决方案1】:

    我会给你这两个链接,第一个是关于多元异常值检测的不同方法的论文,而第二个是研究如何在 R 中实现这些。

    库克距离是查看数据点影响的有效方法,因此有助于检测离群点。马氏距离也经常使用。

    对于您的测试示例,鸢尾花数据集没有用处。它用于分类问题,因为它显然是可分离的。您排除 50 个数据点将摆脱整个物种。

    多元数据中的异常值检测-

    http://www.m-hikari.com/ams/ams-2015/ams-45-48-2015/13manojAMS45-48-2015-96.pdf

    R 实现

    http://r-statistics.co/Outlier-Treatment-With-R.html

    【讨论】:

    • 您好安德鲁,感谢您的评论。库克的距离似乎不错,但是当所有数据字段都等效独立时,当您必须制作一条拟合线 lm(Y~., data) 时,我不知道在 Y 中放入什么。对于 Mahalanobis 距离,我认为我没有看到任何 R 实现。此外,该论文没有提及增加/减少阈值。我想知道如果我将异常值的阈值降低到厨师距离的 3 倍平均值会发生什么。最后,您是否知道如何测试这些方法的置信度/准确性?
    【解决方案2】:

    有很多有趣的选择。

    第一个,Rlof 包,它计算局部异常值因子。它计算反映观察异常程度的分数(称为局部异常值因子)。它测量一个点的局部密度相对于其邻居的偏差。这个想法是检测密度大大低于其邻居的样本。 在实践中,局部密度是从 k 个最近邻中获得的。

    第二,solitude包。

    它应用了一种名为 Isolation Forest 的随机森林启发方法。

    两者都生成不同的分数,这不是概率,但允许确定阈值,根据该阈值分配问题类型和主题知识认为合适的异常数据数量。

    【讨论】:

      猜你喜欢
      • 2012-01-12
      • 2013-12-23
      • 2021-03-24
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多