R - 从数据框中打印离群值

R - print outlier from a datafram

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

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

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

有什么想法吗?

给定数据:

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

如果您想获得置信度不在 95% 以内的值。您必须记住,置信度是 "true mean".

概率的概念

在这种情况下:

> mean(a)
[1] 53.07692

要回答的第一个问题:53 是您最有可能期望的 "normal" 值吗? 我为什么要问它?因为如果要打印不在 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

在您的情况下,您可能会得到比预期更多的东西。