在R中,当我绘制特定数据集的箱线图时,我使用了outline = FALSE参数来排除异常值。这个方法非常有效,但是让我想知道它是如何确定哪些元素是异常值的。
boxplot(x, horizontal = TRUE, axes = FALSE, outline = FALSE)
boxplot(x, horizontal = TRUE, axes = FALSE, outline = FALSE)
boxplot
,离群值是指在"须"(whiskers)之上或之下的点。默认情况下,须的长度为数据点与箱子之间四分位数距离(interquartile range)乘以range
参数。默认的range
值为1.5,但您可以更改它,从而也可以更改离群值列表。
您还可以使用boxplot.stats
函数查看其计算过程,该函数执行图形所使用的计算。
例如,如果您有以下向量:
v <- c(runif(10), -0.5, -1)
boxplot(v)
默认情况下,只有-1的值被视为异常值。您可以通过boxplot.stats
来查看:
boxplot.stats(v)$out
[1] -1
但是如果您更改range
参数(或boxplot.stats
的coef
参数),那么-1将不再被视为异常值:
boxplot(v, range=2)
boxplot.stats(v, coef=2)$out
numeric(0)
boxplot()
中并不明显。请看range
参数:range
的值与四分位距和箱子(由四分位数给出)一起用于确定须的结束位置。而须之外的所有内容都是异常值。