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
在您的情况下,您可能会得到比预期更多的东西。
我想从我的数据框中提取异常值。就像 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
在您的情况下,您可能会得到比预期更多的东西。