close

當研究之連續變項沒有臨床上的切點時,大多數會將其均分成3或4組,此處用3個連續變項均分成3組來示範:

方法一

利用SAS macro可以快速找出多個變項的百分位點,此處以找最小值,第33百分位,第66百分位及最大值為例:

data a;
 do i=1 to 100;
   HT=round(145+(190-145)*rand('uniform'));*四捨五入取整數;
   WT=round((40+(100-40)*rand('uniform')), 0.1);*取至小數後1位;
 output;
 end;

run;

data a1;set a;
   BMI=WT/(HT/100)**0.5;* "**"表示次方,如: A**2,代表A平方;
run;
proc print data=a1(obs=5);*只列印前五筆資料;
run;

多個連續變項均分成3組 (Multiple continuo

%macro p(n,var);

proc univariate data=a1;
var &var.;
output out=per&n.
            pctlpts=0 33 66 100
            pctlpre=pct_;
run;
data per&n.;set per&n.;var="&var.";run;

%mend;

%p(1,    HT);
%p(2,    WT    );
%p(3,    BMI    );

data per;set per1-per3;
proc print;run;

多個連續變項均分成3組 (Multiple continuo

 

data a2;set a1;
%macro ter(var, t1, t2);
if &var.<&t1. then &var._c=0;
if &t1.<&var.<=&t2. then &var._c=1;
if &t2.<&var. then &var._c=2;
%mend;

%ter(HT, 161.5, 173);
%ter(WT, 62.25, 77.85);
%ter(BMI, 47.087, 59.649);
run;


proc means data=a2 n min max maxdec=2;var HT;class HT_c;run;
proc means data=a2 n min max maxdec=2;var WT;class WT_c;run;
proc means data=a2 n min max maxdec=2;var BMI;class BMI_c;run;
 

data a2;set a1;
%macro ter(var, t1, t2);
if &var.<&t1. then &var._c=0;
if &t1.<&var.<=&t2. then &var._c=1;
if &t2.<&var. then &var._c=2;
%mend;
%ter(HT, 161.5, 173);
%ter(WT, 62.25, 77.85);
%ter(BMI, 47.087, 59.649);
run;
proc means data=a2 n min max maxdec=2;var HT;class HT_c;run;
proc means data=a2 n min max maxdec=2;var WT;class WT_c;run;
proc means data=a2 n min max maxdec=2;var BMI;class BMI_c;run;

多個連續變項均分成3組 (Multiple continuo

 

 

方法2

proc rank data=a1 out=b1 group=3;
var HT WT BMI;
ranks HT_c WT_c BMI_c;
run;

proc means data=b1 n min max maxdec=2;var HT;class HT_c;run;
proc means data=b1 n min max maxdec=2;var WT;class WT_c;run;
proc means data=b1 n min max maxdec=2;var BMI;class BMI_c;run;

 

多個連續變項均分成3組 (Multiple continuo

 

總結

1. 2種方法僅有一些誤差,可能是proc univariate & proc rank 計算百分位的定義不同,但都達到均分成3組的目的

2. 方法2 明顯比 方法1 快得多,但不知切點: 第33百分位,第66百分位 的值

3. 方法1 可以運用在擷取任何百分位點上

 

延伸閱讀: 

SAS 和 SPSS 四分位數有何不同? (What difference of Quartiles between SAS and SPSS)

arrow
arrow
    創作者介紹
    創作者 Vivian 的頭像
    Vivian

    統計散記-Vivian 經驗分享

    Vivian 發表在 痞客邦 留言(0) 人氣()