删除r中的异常值

1 r outliers

我有一大堆来自excel文件(保存为csv)的数据,其中包含试验(X)和时间(Y).我知道有一个代码可以通过使用卡方检验代码在试验中取出单个异常值.但是,我希望能够取出数据集中具有异常值的整个列,同时保持文件中的其他数据不变.我很难找到/想出一个允许这样做的代码.有什么建议吗?!

gun*_*ica 11

鉴于您对@ user603的响应,我收集您想要从数据集中删除整个X变量,即使只有一个观察值对该变量有异常值.在R中这很简单.使用您的首选策略来识别异常值并将其分配给变量:

outs = c(...)
data = data[,-outs]
Run Code Online (Sandbox Code Playgroud)

或者,您可以不在模型公式中包含这些变量,并保持data.frame不变.


另一方面,我认为这是一个非常糟糕的主意,我怀疑必须有一些混乱,促使你相信这是你应该做的事情.让我列出几件事:

  1. 将协变量视为具有异常值通常没有意义.我们通常认为异常值在响应变量中.在这种情况下,一种可能性是删除(即data = data[-outs,]).
  2. 如果确实有异常值,删除观察结果通常是最糟糕的选择.使用强大的损失函数会更好,例如Tukey的bisquare.

  • (+ 1)我认为你已经做了一个很好的工作,在你的上一次评论中将一个非主题问题转化为一个主题问题:) (4认同)