Как рассчитать процентили в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *