Возможно, напишите функцию обрезки.Эта функция удаляет выбросы, которые определены как более чем 1,5-кратный межквартильный диапазон от среднего значения. (Это определение выброса, используемое на блоках Тьюки.)
trim <- function(x){
x[(x > mean(x)-1.5*IQR(x)) & (x < mean(x)+1.5*IQR(x))]
}
hist(trim(x))
Или, обрезать по процентили.
trim_q <- function(x, lb, ub){
x[(x > quantile(x, lb)) & (x < quantile(x, ub))]
}
hist(trim_q(x, 0.01, 0.99))
Обрезает данные между первым и девяносто девятым процентилем.
Редактировать
Первая функция обрезки не совсем правильная.Я думаю, что Тьюки определил это в 1,5 × межквартильный диапазон выше и ниже первого и третьего квартиля, а не среднее значение, как я сделал здесь.Оно должно быть следующим:
trim_t <- function(x){
x[(x > quantile(x, 0.25)-1.5*IQR(x)) & (x < quantile(x, 0.75)+1.5*IQR(x))]
}
hist(trim_t(x))