Как рассчитать процентили в 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 ;
AT 12
At 15
At 16
At 21
At 22
At 25
At 29
At 31
B16
B22
B25
B29
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-го процентиля для переменной точек :
/*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