Вот три наиболее распространенных способа расчета процентилей набора данных в 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