Как рассчитать процентили в SAS (с примерами)

Как рассчитать процентили в SAS (с примерами)

Вот три наиболее распространенных способа расчета процентилей набора данных в SAS:

Метод 1: вычислить одно конкретное значение процентиля

/\*calculate 70th percentile value for var1\*/
proc univariate data =original_data;
 var var1;
 output out =percentile_data
 pctlpts = 70
 pctlpre = P_;
run ;

Метод 2: расчет нескольких конкретных значений процентиля

/\*calculate 70th, 80th, and 90th percentile value for var1\*/
proc univariate data =original_data;
 var var1;
 output out =percentile_data
 pctlpts = 70 80 90
 pctlpre = P_;
run ;

Метод 3: вычислить процентили по группам

/\*sort original data by var2\*/
proc sort data =original_data;
 by var2;
run ;

/\*calculate percentiles for var1 grouped by var2\*/
proc univariate data =original_data;
 var var1;
 by var2;
 output out =percentile_data
 pctlpts = 70, 80, 90
 pctlpre = P_;
run ;

Примечание.Оператор pctlpts указывает, какие процентили следует вычислять, а оператор pctlpre указывает префикс, используемый для процентилей в выходных данных.

В следующих примерах показано, как использовать каждый метод со следующим набором данных в SAS:

/\*create dataset\*/
data original_data;
 input team $ points;
 datalines ;
A 12
A 15
A 16
A 21
A 22
A 25
A 29
A 31
B 16
B 22
B 25
B 29
B 30
B 31
B 33
B 38
;
run ;

/\*view dataset\*/
proc print data =original_data; 

Пример 1. Вычисление одного конкретного значения процентиля

Следующий код показывает, как вычислить 70-й процентиль для переменной points :

/\*calculate 70th percentile value for points\*/
proc univariate data =original_data;
 var points;
 output out =percentile_data
 pctlpts = 70
 pctlpre = P_;
run ;

/\*view results\*/
proc print data =percentile_data;

Значение на 70-м процентиле оказывается равным 30 .

Пример 2. Расчет нескольких конкретных значений процентилей

В следующем коде показано, как вычислить значения в 70-м, 80-м и 90-м процентилях для переменной points :

/\*calculate 70th, 80th, and 90th percentile value for points\*/
proc univariate data =original_data;
 var points;
 output out =percentile_data
 pctlpts = 70 80 90
 pctlpre = P_;
run ; 

Вот как интерпретировать вывод:

  • Значение на 70-м процентиле равно 30 .
  • Значение на 80-м процентиле равно 31 .
  • Значение на 90-м процентиле равно 33 .

Пример 3: Расчет процентилей по группам

В следующем коде показано, как вычислить значения 70-го, 80-го, 90-го и 95-го процентиля для переменной points , сгруппированной по переменной team :

/\*sort original data by team\*/
proc sort data =original_data;
 by team;
run ;

/\*calculate percentiles for points grouped by team\*/
proc univariate data =original_data;
 var points;
 by team;
 output out =percentile_data
 pctlpts = 70 , 80 , 90 95
 pctlpre = P_;
run ; 

В выходной таблице показаны значения 70-го, 80-го, 90-го и 95-го процентилей для переменной очков для обеих команд A и B.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать сводку процедур в SAS
Как создать частотные таблицы в SAS
Как рассчитать корреляцию в SAS

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.