R - 从数据框中打印异常值

时间:2015-04-01 11:34:34

标签: r statistics outliers

我想从数据框中提取异常值。像1000个数据点中的10个可能是异常值,或者不在95%置信区间内。有一些方法可以找到它与样本均值之间差异最大的值。

> a <- c(1,3,2,4,5,2,3,90,78,56,78,23,345)
> require("outliers")
> outlier(a)
[1] 345

我不想从我的数据框或箱图中删除异常值。我想打印或子集它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

鉴于数据:

a <- c(1,3,2,4,5,2,3,90,78,56,78,23,345)

如果您想获得不在95%置信度范围内的值。你必须要记住,信心是概率的概念,真正的意思是&#34;。

在这种情况下:

> mean(a)
[1] 53.07692

要回答的第一个问题:53是&#34;正常&#34;您最有可能期望的价值? 我为什么要问它?因为如果要打印的值不在95%以内:

a[a > mean(a) + qt(0.975, df = length(a) - 1) * mean(a) / sqrt(length(a)) |
    a < mean(a) - qt(0.975, df = length(a) - 1) * mean(a) / sqrt(length(a))]

[1]   1   3   2   4   5   2   3  90 345

在您的情况下,您可能得到的远远超出您的预期。