Меньше выбросов обнаружено с помощью бокса
Я хочу определить выбросы во фрейме данных, используя квантили и 1,5*IQR. Я использовал функцию boxplot и сравнил результирующие выбросы с вычисленными с использованием квантилей и iqr.
Я замечаю разницу между этими двумя методами. Метод boxplot обнаруживает меньше выбросов, чем вычисление Q1-1.5*IQR, Q3+1.5*IQR. Я пытался установить range
в boxplot до 1,5, но он все еще обнаруживает меньше выбросов. Является ли диапазон правильной опцией boxplot, чтобы установить или есть другая опция, которую мне нужно установить?
Любая помощь с благодарностью.
x <- c(-8.4849, -8.4848, -8.8485, -8.4848, -8.4848, -8.4848, -8.7879, -8.4848,
-8.4849, -8.6061, -8.3838, -8.2424, -8.4849, -8.3636, -8.2424, -8.7273)
qnt = quantile(x, probs=c(.25, .75))
iqt = 1.5 * IQR(x)
x[x < (qnt[1] - iqt)]
[1] -8.8485 -8.7879 -8.6061 -8.7273
x[x > (qnt[2] + iqt)]
[1] -8.2424 -8.3636 -8.2424
boxplot(x, range = 1.5)$out
[1] -8.8485 -8.7879 -8.2424 -8.2424 -8.7273
1 ответ
Обе функции quantile () и IQR() в R имеют аргумент типа. Существует 9(!) Типов квантилей. Большинство из них добавляют некоторое плавное поведение этой изначально прерывистой функции. Вы можете прочитать полные определения типов в документации quantile ().
Точное определение квантиля, используемого в boxplot(), можно найти в документации boxplot.stats (), и оно близко к квантилю типа 2.
Таким образом, ответ заключается в том, что нет никакой возможности заставить boxplot() вести себя как quantile (), но есть возможность заставить quantile () вести себя (почти) как boxplot()