【问题标题】:R: Find outliers with mvBACONR:使用 mvBACON 查找异常值
【发布时间】:2018-05-01 11:22:05
【问题描述】:

我是 R 新手,并且正在处理一项任务,我应该复制线性回归的结果(具有 1360 个观察值和 52 个变量的时间序列数据(回归模型中的 11 个变量))。在最初的研究中,研究人员使用 Hadi 方法确定了异常值。似乎这在 R 中使用 mvBacon 函数做得最好,这是正确的吗?我似乎找不到关于如何使用它的好答案,谁能告诉我如何使用这个函数来查找异常值? (我非常感谢尽可能简单地解释的答案,因为 R 对我来说很新)。 非常感谢!

【问题讨论】:

    标签: r outliers


    【解决方案1】:

    是的,mvBACON 用于基于一定距离的异常值识别。默认值是马氏距离。 以下代码将引导您通过 mtcars 子数据集上的一个简单示例,了解如何使用 mvBACON 识别异常值:

    # load packages
    library(dplyr)
    library(magrittr)
    
    # Use mtcars (sub)dataset and plot it
    data <- mtcars %>% select(mpg, disp)
    plot(data, main = "mtcars")
    

    # Add some outliers and plot again
    data <- rbind(data, 
                  data.frame(mpg = c(1, 80), disp = c(800, 1000)))
    plot(data, main = "mtcars")
    

    # Use mvBacon to calculate the distances and get the ouliers
    # install.packages("robustX) # uncomment line to install package
    library(robustX)
    
    #compute distance - default is Mahalonobis
    distances <- mvBACON(data)
    
    # Plot it again...
    plot(data, main = "mtcars")
    
    # ...with highlighting the outliers
    points(data[!distances$subset, ], col = "red", pch = 19)
    

    # Some fine tuning, since many of the outliers seem to be still good for regression
    distances <- mvBACON(data, alpha = 0.6)
    
    # update plot
    plot(data, main = "mtcars")
    points(data[!distances$subset, ], col = "red", pch = 19)
    

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2023-03-15
      • 2020-06-04
      相关资源
      最近更新 更多