我想从数据框中提取异常值。像1000个数据点中的10个可能是异常值,或者不在95%置信区间内。有一些方法可以找到它与样本均值之间差异最大的值。
> a <- c(1,3,2,4,5,2,3,90,78,56,78,23,345)
> require("outliers")
> outlier(a)
[1] 345
我不想从我的数据框或箱图中删除异常值。我想打印或子集它们。
有什么想法吗?
答案 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
在您的情况下,您可能得到的远远超出您的预期。