Как определить выбросы в 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 ;
A 18
B 24
C 26
D 34
E 38
F 45
G 48
H 54
I 60
J 73
K 79
L 85
M 94
N 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