Как я могу найти фактические выбросы в поле в R - PullRequest
0 голосов
/ 14 января 2020

У меня есть коробочное поле, которое выглядит следующим образом: boxplot

Из того, что я понимаю о выбросах, точки выше максимальной линии являются выбросами, но как мне найти точки, которые на самом деле являются выбросами, так как я не думаю, что все предполагаемые выбросы на самом деле являются выбросами?

Ответы [ 2 ]

4 голосов
/ 14 января 2020

Использовать функциональность boxplot объекта:

set.seed(59737908)

x <- c(rnorm(10), 10, -55)

outliers <- boxplot(x, plot = F)$out
outliers
#[1]  10 -55

PS @alan был первым

4 голосов
/ 14 января 2020

Согласно этой записи , которая соответствует моим воспоминаниям, усы рассчитываются как (псевдокод):

upper whisker = min(max(x), Q_3 + 1.5 * IQR)
lower whisker = max(min(x), Q_1 – 1.5 * IQR) 

Любые точки за пределами усов считаются выбросами.

Если вы хотите проверить точки выброса, вы можете назначить вывод boxplot и посмотреть на поле out, как подсказывает страница справки:

 out: the values of any data points which lie beyond the extremes
      of the whiskers.

Что-то как

box <- boxplot(rnorm(100))
box$out
...