Удалить выбросы из набора данных в R

Опубликовано: 12 Сентября, 2022

В этой статье мы рассмотрим подход к удалению выбросов из набора данных с помощью встроенных функций языка программирования R.

Выбросы — это точки данных, которые не соответствуют шаблону остального набора данных. Лучший способ обнаружить выбросы в заданном наборе данных - построить блок-диаграмму набора данных, а точка, расположенная за пределами блока в блок-диаграмме, - это все выбросы в наборе данных. В этом подходе для удаления выбросов из заданного набора данных пользователю нужно просто построить блок-график данного набора данных с помощью простой функции boxplot(), и если обнаружено наличие выбросов в заданных данных, пользователю необходимо вызовите функцию boxplot.stats(), которая является базовой функцией языка R, и передайте необходимые параметры в эту функцию, что в дальнейшем приведет к удалению выбросов, присутствующих в заданных наборах данных.

Функция boxplot.stats() обычно вызывается другой функцией для сбора статистики, необходимой для построения блочных диаграмм, но может вызываться отдельно.

Syntax: boxplot.stats(x, coef = 1.5, do.conf = TRUE, do.out = TRUE)

Parameters:

  • x: a numeric vector for which the boxplot will be constructed.
  • coef: determines how far the plot ‘whiskers’ extend out from the box.
  • do.conf, do.out: logicals; if FALSE, the conf or out component respectively will be empty in the result.

Давайте сначала посмотрим на обычный график, не удаляя выбросы.

Пример: начальный сюжет

R




gfg<-rnorm(500)
  
gfg[1:10]<-c(-4,2,5,6,4,1,-5,8,9,-6)
  
boxplot(gfg)

Выход:

Теперь давайте снова визуализируем приведенный выше график, но на этот раз без выбросов, применяя данный подход.

Пример. Удаление выбросов с помощью функции boxplot.stats().

R




gfg<-rnorm(500)
  
gfg[1:10]<-c(-4,2,5,6,4,1,-5,8,9,-6)
  
gfg <- gfg[!gfg %in% boxplot.stats(gfg)$out]   
  
boxplot(gfg)

Выход: