【问题标题】:Univariate outlier detection单变量异常值检测
【发布时间】:2012-10-30 21:53:30
【问题描述】:

这一次,我不会像以前在我的一个问题中那样直接询问如何检测异常值。我确实阅读了一些与该主题相关的帖子,但没有得到我需要的东西。我有一组值如下:

y<-c(0.59, 0.61, 0.59, 1.55, 1.33, 3.50, 1.00, 1.22, 2.50, 3.00, 3.79, 3.98, 4.33, 4.45, 4.59, 4.72, 4.82, 4.90, 4.96, 7.92, 5.01, 5.01, 4.94, 5.05, 5.04, 5.03, 5.06, 5.10, 5.04, 5.06, 7.77, 5.07, 5.08, 5.08, 5.12, 5.12, 5.08, 5.17, 5.18)

现在,正如大多数研究人员所说,异常值检测过程不仅取决于数据,还取决于上下文。我使用了 R 中的几个包,例如异常值(grubbs 测试)、极值、mvoutlier(pcout 方法),但找不到使用它们的最佳方法。在这种情况下(取决于我的要求),7.77(obs no 31)、7.92(obs on 20)和 3.50(obs no 6)是异常值。使用异常值包的 grubbs 测试,我可以将 7.77 和 7.92 检测为异常值,但不能检测到 3.50。我不知道我是否可以在此处发布我的数据图,但在查看图上数据的趋势或分布后,观察号 6 将是明显的异常值。

我正在尝试为这些数据拟合一个非线性模型,但由于这些异常值,我找不到最佳拟合(最佳拟合不是唯一要求),无论如何我需要检测这些异常值,因为我会在这些异常值上拟合一个单独的模型。

我的问题很简单。是否有可能我可以使用一些标准包检测这 3 个异常值,或者如何使用我的非线性生成模型来帮助检测这些异常值?

最好的问候

沙赫扎德

【问题讨论】:

  • 您是否考虑过在 MASS 包中使用 rlm 来进行稳健的线性回归?
  • @tcash21 是的,我使用过它,它是一个线性回归。我也有 nlrob(稳健的非线性回归),但找不到用生成的模型检测上述异常值的方法。

标签: r statistics regression outliers


【解决方案1】:
install.packages("forecast")         
library(forecast)
tsoutliers(data)

R 中的这三个代码将回答您的问题。之后tsclean(data) 将清理您的数据。

步骤如下:

install.packages("forecast")
library(forecast)
t_s<- ts(y)
plot(t_s)
tsoutliers(t_s)
t_s_new<-tsclean(t_s)
plot(t_s_new)

如果问题仍然存在,请回复我。我会提供更复杂的异常检测器。

【讨论】:

  • 你应该详细解释你的答案
【解决方案2】:

只是说我按照上面的建议尝试使用detectAO(),但我的数据没有发现任何东西(看起来有点相似:持续趋势出现的短峰值)。谷歌搜索后,我发现 Hempel 过滤器(来自包 pracma 的函数 hempel())可以满足我的需求。我想我会在这里添加这个,以防其他人正在寻找解决方案。

【讨论】:

    【解决方案3】:
    library(TSA)
    ar = TSA::arima(y, c(1,0,0))
    detectAO(ar)
    

    准确显示这 3 个点(ind 是可能异常值的索引):

    > detectAO(ar)
                [,1]      [,2]      [,3]
    ind     6.000000 20.000000 31.000000
    lambda2 4.739695  5.957604  5.490739
    

    但要小心地将这种方法应用于任何类型的数据。

    【讨论】:

    • 谢谢。常规的 arima 顺序(此处为 1,0,0)是否取决于数据?
    • 我的意思是您应该了解数据的性质。
    • 例如:来自forecast 库的auto.arima() 函数在模型类中搜索最佳ARIMA 模型。但是使用这种估计,您将无法检测到异常值,因为这些点将被视为应与模型拟合的典型数据,而不是异常值。
    猜你喜欢
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2012-01-12
    • 2017-05-18
    • 2020-04-03
    • 2020-06-26
    • 2015-07-06
    • 2020-01-04
    相关资源
    最近更新 更多