【问题标题】:R: Winsorizing (robust HD) not compatible with NAs?R: Winsorizing (robust HD) 与 NA 不兼容?
【发布时间】:2014-07-22 11:53:38
【问题描述】:

我想使用“robustHD”包中提供的 winsorize 函数,但它似乎不适用于 NA,如示例中所示

## generate data
set.seed(1234)     # for reproducibility
x <- rnorm(10)     # standard normal
x[1] <- x[1] * 10  # introduce outlier

x[11]<- NA ## adding NA

## winsorize data
x
winsorize(x)

我用谷歌搜索了这个问题,但没有找到解决方案,甚至没有找到有类似问题的人。 winorizing 可能被认为是一种“坏”技术,或者您如何解释这种信息的缺乏?

【问题讨论】:

    标签: r na outliers


    【解决方案1】:

    如果您只有一个向量要进行winsorize,则可以通过在代码中为medianmad 函数设置na.rm = TRUE 轻松修改定义herewinsor2 函数。这提供了与 winsorize{robustHD} 相同的功能,但有 1 个区别:winsorize 调用 robStandardize,其中包括对非常小的值的一些调整。我不明白它在做什么,所以如果你放弃它,请自告奋勇。

    如果您想对矩阵的各个列进行微调(与使用公差椭圆的多元微调相反,该公差椭圆可用作winsorize 中的另一个选项),您应该能够从winsorize.default 和@987654330 中挖掘必要的代码@。它们与winsor2 做同样的事情,但采用矩阵形式。同样,您需要根据需要将自己的 na.rm = TRUE 设置添加到函数中。

    【讨论】:

      【解决方案2】:

      一些可能有用的想法:

      1. Stack Overflow 是一个编程板,用于询问与编程相关的问题并给出答案。对于某些统计程序是否合适或被认为“不好”的问题,您更有可能在交叉验证中找到知识渊博的人。
      2. 统计方法和统计方法在特定软件环境中的实现通常是相当独立的。也就是说,如果一个包的开发者没有在他的包中包含某些特性(例如NA处理),这对于方法本身来说意义不大。话虽如此,当然可以。确定是否有意遗漏包功能的唯一方法是实际询问包的开发人员。如果问题更倾向于统计数据和存在缺失值的方法的有效性,则交叉验证可能更有帮助。
      3. 我不知道您为什么找不到有关此主题的任何信息。我可以自信地说,这是我第一次听到“winsorized”这个词。我实际上不得不查找它,我可以肯定地说我从未遇到过这种方法,而且我个人永远不会使用它。

      从计算的角度来看,解决问题的一个简单方法是在开始使用函数之前忽略所有不完整的情况。具有缺失值的案例不能轻易地进行缩尾处理,这也具有直观的意义。首先,无论如何都必须对完整的案例进行均值和标准差的计算,然后不清楚将哪个值分配给具有缺失值的那些,因为它们可能不一定是异常值,即使它们可能是。

      如果省略不完整的案例不是您的选择,您可能需要寻找插补方法(在 CV 上)。

      【讨论】:

      • 是的,我意识到这可能是错误的论坛。我正在尝试删除所有 NA,然后使用 winsorize 函数。但是我通常在努力的是执行一项任务(即拆分数据框->执行所需的任务(可能在一个子集上)并将所有内容按原样重新组合在一起。我的大部分代码问题在于“把它重新组合在一起”,我想这可能是对编程语言 (S) 新手甚至整个领域的新手来说最常见的问题。
      • 在您的情况下,您是否尝试过complete.cases?否则,对于所谓的split-apply-combine-routines,Hadley Wickham 的软件包往往(以我的拙见)非常方便。尝试例如plyr。其他包如dplyrdata.table 稍快一些,但语法较少R-ish,因此需要更多时间来学习如何使用它们。
      • 再次感谢您的帮助。我正在尝试使用 ddply 函数的 plyr,因为它看起来很直观,但我在语法上苦苦挣扎。
      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 2018-07-04
      • 1970-01-01
      • 2023-03-08
      • 2018-12-17
      • 2020-10-27
      • 1970-01-01
      • 2013-03-14
      相关资源
      最近更新 更多