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: 특정 백분위수 값 계산

다음 코드는 points 변수의 70번째 백분위수를 계산하는 방법을 보여줍니다.

 /*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: 여러 특정 백분위수 값 계산

다음 코드는 points 변수에 대한 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: 그룹별 백분위수 계산

다음 코드는 변수별로 그룹화된 points 변수에 대한 70번째, 80번째, 90번째 및 95번째 백분위수 값을 계산하는 방법을 보여줍니다.

 /*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 ; 

출력 테이블에는 팀 A와 B의 포인트 변수에 대한 70번째, 80번째, 90번째, 95번째 백분위수 값이 표시됩니다.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS에서 절차 요약을 사용하는 방법
SAS에서 빈도표를 만드는 방법
SAS에서 상관관계를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다