Как идентифицировать выбросы в sas (с примером)
Выброс — это наблюдение, которое аномально далеко от других значений в наборе данных. Выбросы могут быть проблематичными, поскольку они могут повлиять на результаты анализа.
Самый распространенный способ выявления выбросов в наборе данных — использование межквартильного диапазона.
Межквартильный размах (IQR) — это разница между 75-м процентилем (Q3) и 25-м процентилем (Q1) в наборе данных. Он измеряет распределение средних 50% значений.
Обычно мы определяем наблюдение как выброс, если оно в 1,5 раза превышает межквартильный размах выше третьего квартиля (Q3) или в 1,5 раза превышает межквартильный размах ниже первого квартиля (Q1).
Выбросы = Наблюдения > Q3 + 1,5*IQR или < Q1 – 1,5*IQR
В следующем примере показано, как использовать эту формулу для выявления выбросов в наборе данных в SAS.
Пример: выявление выбросов в SAS
Предположим, у нас есть следующий набор данных в SAS:
/*create dataset*/
data original_data;
input team $points;
datalines ;
At 18
B24
C26
D 34
E 38
F45
G 48
H 54
I 60
Day 73
K 79
L 85
M 94
No. 98
O 221
P 223
;
run ;
/*view dataset*/
proc print data = original_data;
Самый простой способ идентифицировать выбросы в SAS — создать коробчатую диаграмму, которая автоматически использует ранее упомянутую формулу для идентификации и отображения выбросов в наборе данных в виде маленьких кружков:
/*create boxplot to visualize distribution of points*/
ods output sgplot=boxplot_data;
proc sgplot data =original_data;
vbox points;
run ;
/*view summary of boxplot descriptive statistics*/
proc print data =boxplot_data;
На диаграмме мы видим, что в верхней части графика есть два маленьких круга. Это указывает на наличие двух выбросов.
В таблице под диаграммой мы можем увидеть точные значения двух выбросов: 221 и 223 .
Мы можем вручную проверить, что эти два значения являются выбросами, используя предыдущую формулу:
Выбросы = Наблюдения > Q3 + 1,5*IQR или < Q1 – 1,5*IQR
Межквартильный размах: Q3 – Q1 = 89,5 – 36 = 53,5.
Верхний предел выбросов будет составлять: Q3 + 1,5*IQR = 89,5 + 1,5*53,5 = 169,75.
Поскольку оба значения 221 и 223 превышают это значение, они классифицируются как выбросы.
Затем мы могли бы использовать следующий код, чтобы удалить эти два выброса из набора данных, если бы захотели:
/*create new dataset with outliers removed*/
data new_data;
set original_data;
if points >= 221 then delete;
run ;
/*view new dataset*/
proc print data =new_data;
Обратите внимание, что два выброса были удалены.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как использовать сводку процедур в SAS
Как использовать Proc Tabulate в SAS
Как рассчитать корреляцию в SAS
Как создать таблицы частот в SAS
Как заменить пропущенные значения нулями в SAS