健保資料庫的描述性統計中,常見的是計算患者的醫療費用、用藥天數、用藥的累積劑量或平均劑量等。究竟要如何透過程式語法依特定變項分層計算呢?今天將介紹SAS中的描述性統計: PROC MEANS指令。
[程式一] 建立檔案AA,檔案中有身份證號(ID)、性別(SEX)、居住地區(AREA)、醫療費用(FEE)、就醫日期(IN_DATE)等5個欄位的資料。
[程式二] 利用PROC MEANS計算檔案AA中的醫療費用(FEE),但要依性別(SEX)、居住地區(AREA)分層計算,且描述醫療費用(FEE)的使用人數(n)、總和(sum)、平均值(mean)、中位數(median),因此VAR後面放醫療費用(FEE)。CLASS指令後面放的是分層變數sex, area。將分層計算後的統計量存成檔案BB,檔案中的欄位名稱以與n、sum、mean、median統計量同名的名稱來命名,報表見[結果一]。
[程式三] 但 [程式二] 的DATA=AA之後為何要加NWAY指令? 這個指令的用意在於取SEX, AREA分層的最大組合,什麼意思呢?若將[程式二] 的NWAY ,以及OUT=BB(DROP=_TYPE_ _FREQ_)中的(DROP=_TYPE_ _FREQ_)刪除,結果將如[結果二]所呈現。其中,_TYPE_=0為完成不分層的情況,_TYPE_=1或_TYPE_=2為以AREA或SEX變數分層的結果,_TYPE_=3為同時考慮SEX與AREA 2個變數的組合下的分層結果, DATA=AA之後加NWAY指令的目的即是取_TYPE_=3的統計結果。[見結果二]
[程式一];
data aa;
input id $ sex $ area $ fee in_date yymmdd10.;
format in_date yymmdd10.;
cards;
A01 F 北區 1245 1999-02-03
A01 F 北區 7890 1999-12-12
A02 M 北區 2310 2000-03-10
A02 M 南區 1205 2001-11-15
A02 M 南區 24360 2002-06-05
;
proc print;
run;
[程式二];
proc means n sum mean median data=aa nway noprint; /*n sum mean median為統計量*/
var fee;
class sex area; /*sex area為分層變數*/
output out=bb(drop=_type_ _freq_) n=n sum=sum mean=mean median=median;
proc print;
run;
[結果一]
Obs sex area n sum mean median
1 F 北區 2 9135 4567.5 4567.5
2 M 北區 1 2310 2310.0 2310.0
3 M 南區 2 25565 12782.5 12782.5
;
[程式三];
proc means n sum mean median data=aa noprint;
var fee;
class sex area;
output out=bb n=n sum=sum mean=mean median=median;
proc print;
run;
[結果二]
留言列表