999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單因素多水平臨床試驗定量指標統計分析報表的SAS宏實現

2016-10-26 05:21:50王雨萌孫瑞華
中國衛生統計 2016年4期

王雨萌 孫瑞華 黃 傲 徐 凱 李 歡

?

·計算機應用·

單因素多水平臨床試驗定量指標統計分析報表的SAS宏實現

王雨萌1孫瑞華2△黃傲1徐凱1李歡1

SAS軟件輸出的統計結果多而復雜,常需要人為將統計結果復制粘貼到統計報告相應位置上,這一過程耗時耗力且容易出錯。為此,可根據需要編制相應的SAS宏程序,直接生成針對各種類型資料的統計分析報表。以往對于成組計量或計數資料的統計分析報表的SAS宏程序已經有了一定的探討[1-2],本文主要介紹單因素多水平臨床試驗定量指標統計分析報表自動實現的SAS宏程序。

資料與統計方法

根據統計學原理,對于符合正態分布的定量指標,通常采用均數、標準差、中位數、最小值、最大值以及95%置信區間來描述其集中和離散趨勢,而非正態分布的定量指標,則采用均數、中位數、最小值、最大值以及四分位間距來進行統計描述。

對于多水平定量指標的組間比較,若滿足方差分析的前提條件,則采用方差分析處理資料;若指標滿足正態性但不滿足方差齊性要求,則選用Welch近似方差分析,此時Welch近似方差分析的結果較方差分析的結果更穩定;當指標既不滿足正態性也不滿足方差齊性要求時,則選用Kruskal-Wallis秩和檢驗。方差分析與Welch近似方差分析的統計量用F_value表示,Kruskal-Wallis秩和檢驗的統計量用H表示。為直接得到如表1所示的統計報表,編寫如下三組定量指標統計分析的SAS宏程序。

表1 三組基線一般資料的組間比較(FAS)

定義宏及宏變量

在該宏程序中設置四個宏變量&database、&var、&index和&datasty,分別表示數據庫、統計量、指標項和統計分析數據集,并假定分組變量為group。

%macro sanzujl(database=,var=,index=,datasty=);

生成描述性統計量及正態檢驗結果

利用output語句將描述性統計量和正態檢驗的結果輸出到SAS指定的數據集中,對該數據集進行拆分后再橫向合并,使三組的描述性統計量和正態檢驗的結果顯示在一行,方便后面的調用和輸出。

/*利用univariate程序輸出部分描述性結果到result1數據集*/

proc univariate noprint;

var &var;

by group;

where &datasty=1;

output out=result1 n=n mean=mean median=med std=std min=min max=max nmiss=nmiss qrange=qrange PROBn=Pnor;

/*利用means程序輸出95%置信區間到result2數據集*/

proc means clm noprint data=&database;

var &var;

by group;

where &datasty=1;

output out=result2(drop=_TYPE_ _FREQ_)uclm=uclm lclm=lclm;

run;

/*合并result1和result2為數據集result*/

data result;

merge result1 result2;

by group;

run;

/*將三組描述性結果分別輸出到獨立的數據集中,并定義變量的長度*/

data a(where=(group=“A”))b(where=(group=“B”))c(where=(group=“C”));

set result;

mean=round(mean,0.01);

med=round(med,0.01);

std=round(std,0.01);

Pnor=round(Pnor,0.01);

lclm=round(lclm,0.01);

uclm=round(uclm,0.01);

qrange=round(qrange,0.01);

min=round(min,0.01);

max=round(max,0.01);

run;

/*將三個獨立的數據集分別重新命變量名,再合并到result數據集中*/

data result(drop=group);

merge a(rename=(n=NA nmiss=MA mean=MeanA med=medA std=StdA qrange=qrangeA lclm=lclmA uclm=uclmA Min=MinA Max=MaxA Pnor=PnorA))

b(rename=(n=NB nmiss=MB mean=MeanB med=medB std=StdB qrange=qrangeB lclm=lclmB uclm=uclmB Min=MinB Max=MaxB Pnor=PnorB))

c(rename=(n=NC nmiss=MC mean=MeanC med=medC std=StdC qrange=qrangeC lclm=lclmC uclm=uclmC Min=MinC Max=MaxC Pnor=PnorC));

run;

生成方差分析及近似方差分析結果

利用SAS的ODS功能將方差分析、Welch近似方差分析以及方差齊性檢驗的結果分別輸出到指定的數據集中,將所有有用變量橫向合并到一個數據集。

/*利用anova程序輸出方差分析結果到ModelANOVA數據集、輸出方差齊性檢驗結果到HOVFTest1數據集、輸出welch近似方差分析結果到Welch1數據集*/

ods listing close;

ods output ModelANOVA=ModelANOVA HOVFTest=HOVFTest1 Welch=Welch1;

proc anova data=&database;

where &datasty=1;

class group;

model &var=group;

means group/hovtest welch;

run;

ods listing;

/*方差齊性檢驗保留有用變量*/

data HOVFTest(keep=FValue ProbF);

set HOVFTest1;

if _n_ ^=1 then delete;

run;

/*welch近似方差分析保留有用變量*/

data Welch(keep=FValue ProbF);

set Welch1;

if _n_ ^=1 then delete;

run;

/*將方差分析、Welch近似方差分析、方差齊性檢驗的結果合并到數據集test中,保留有用變量,添加方差分析與Welch近似方差分析統計量標簽*/

data test(keep=FValue ProbF stat FValueH ProbFH FValueW ProbFW);

merge ModelANOVA(keep=FValue ProbF)HOVFTest(rename=(FValue=FValueH ProbF=ProbFH))Welch(rename=(FValue=FValueW ProbF=ProbFW));

stat=“F_value”;

run;

生成Kruskal-Wallis秩和檢驗結果

利用SAS的ODS功能將秩和檢驗的結果輸出到指定的數據集,將統計量和P值拆分后橫向合并到一個數據集。

/*利用npar1way wilcoxon程序輸出秩和結果到KruskalWallisTest數據集*/

ods listing close;

Ods Output KruskalWallisTest=KruskalWallisTest;

proc npar1way wilcoxon data=&database;

where &datasty=1;

var &var;

class group;

run;

ods listing;

/*只保留統計量和P值*/

data KruskalWallisTest1;

set KruskalWallisTest;

if Label1=“DF” then delete;

run;

/*將統計量和P值分別獨立保存*/

data d(where=(Name1=“_KW_”))e(where=(Name1=“P_KW”));

set KruskalWallisTest1;

run;

/*將秩和檢驗的統計量和P值合并到kwttest數據集,并定義變量的長度和統計量的標簽*/

data kwttest(keep=cValue1d cValue1e statkw);

merge d(rename=(Name1=Name1d cValue1=cValue1d nValue1=nValue1d))e(rename=(Name1=Name1e cValue1=cValue1e nValue1=nValue1e));

cValue1d=round(cValue1d,0.01);

label cValue1d=“Chi-Square”;

label cValue1e=“Pr > Chi-Square”;

statkw=“H”;

run;

輸出統計結果

將描述性統計量、正態檢驗結果、方差分析、Welch近似方差分析以及秩和檢驗結果的數據集橫向合并,生成打印的數據集,從該數據集中輸出特定條件下的描述性統計量和P值。

/*將數據集result、test、kwttest合并*/

data _null_;

merge result test kwttest;

/*如果三組均正態且方差齊,用方差分析*/

if PnorA>0.05 and PnorB>0.05 and PnorC>0.05 and ProbFH>0.05 then do;

file print notitle;

put #1 @3 “&index”

#2 @5 “例數(缺失)” @22 NA‘(‘MA’)’ @38 NB‘(‘MB’)’ @55 NC‘(‘MC’)’ @70 stat’=‘FValue @88 ProbF

#3 @5 “均數±標準差” @22 MeanA‘±’StdA @38 MeanB‘±’StdB @55 MeanC‘±’StdC

#4 @5 “中位數” @22 MedA @38 MedB @55 MedC

#5 @5 “最小值-最大值” @22 MinA‘-’MaxA @38 MinB‘-’MaxB @55 MinC‘-’MaxC

#6 @5 ‘95%CI’ @22 lclmA‘-’uclmA @38 lclmB‘-’uclmB @55 lclmC‘-’uclmC;

end;

/*如果三組均正態但方差不齊,用welch方差分析*/

else if PnorA>0.05 and PnorB>0.05 and PnorC>0.05 and ProbFH<0.05 then do;

file print notitle;

put #1 @3 “&index”

#2 @5 “例數(缺失)”@22 NA‘(‘MA’)’ @38 NB‘(‘MB’)’ @55 NC‘(‘MC’)’ @70 stat’=‘FValueW @88 ProbFW

#3 @5 “均數±標準差” @22 MeanA‘±’StdA @37 MeanB‘±’StdB @55 MeanC‘±’StdC

#4 @5 “中位數” @22 MedA @38 MedB @55 MedC

#5 @5 “最小值-最大值” @22 MinA‘-’MaxA @38 MinB‘-’MaxB @55 MinC‘-’MaxC

#6 @5 ‘95%CI’ @22 lclmA‘-’uclmA @38 lclmB‘-’uclmB @55 lclmC‘-’uclmC;

end;

/*如果三組有一組非正態,用秩和檢驗*/

else if PnorA<0.05 or PnorB<0.05 or PnorC<0.05 then do;

file print notitle;

put #1 @3 “&index”

#2 @5 “例數(缺失)”@22 NA‘(‘MA’)’ @38 NB‘(‘MB’)’ @55 NC‘(‘MC’)’ @70 statkw’=‘cValue1d @88 cValue1e

#3 @5 “均數” @22 MeanA @38 MeanB @55 MeanC

#4 @5 “中位數” @22 MedA @38 MedB @55 MedC

#5 @5 “最小值-最大值” @22 MinA‘-’MaxA @38 MinB‘-’MaxB @55 MinC‘-’MaxC

#6 @5 “四分位間距” @22 qrangeA @38 qrangeB @55 qrangeC;

end;

run;

%mend sanzujl;

打印表頭及表格線

最后,打印出表頭及表格線。

%macro ctit(tit);

data _null_;

file print n=ps notitles;put #1 @5 “&tit”

#2 @2 94*‘_’

#3 @5 ‘指標項’ @22 ‘A組’ @38 ‘B組’ @55 ‘C組’ @70 ‘統計量’ @88 ‘P值’

#4 @2 94*‘_’;

run;

%mend ctit;

%macro cleg;

data _null_;

file print n=ps notitles;

put #1 @2 94*‘_’;

run;

%mend cleg;

運行宏程序

將以上所有SAS宏程序提交SAS系統運行,即可完成如表1所示的統計分析表格。

/*其中,knfps為數據庫,設定數據集為FAS數據集,要分析比較的變量是weigh和high,分別表示體重和身高。*/

%ctit(表1.三組基線一般資料組間比較(FAS));

%sanzujl(database=knfps,var=weigh,datasty=FAS,index=體重);

%sanzujl(database=knfps,var=high,datasty=FAS,index=身高);

%cleg;

討  論

目前無論美國FDA和國內SFDA都要求采用世界公認的統計分析軟件SAS來進行統計分析,但是SAS軟件自身的統計分析結果比較豐富,通常只需要將其中一小部分關鍵的結果按照一定格式制作成表格[3]。盡管SAS提供了如proc report、proc template等制表的功能,但定義過程較為復雜,需要對SAS軟件有一定的掌握程度。本文介紹了一段簡單實用且可操作性非常強的SAS宏程序供廣大讀者調用,其運行結果經驗證準確而可靠,適合應用于單因素多水平定量指標的組間比較。

[1]鄒建東,熊寧寧,卜擎燕,等.正態分布定量指標統計分析報表的SAS宏程序.中國臨床藥理學與治療學,2004,9(7):838-840.

[2]鄒建東,熊寧寧,卜擎燕,等.四格表指標統計分析報表的SAS宏程序.中國臨床藥理學與治療學,2005,10(3):357-360.

[3]殷紅.臨床試驗中統計分析報告自動化生成的研究與應用.復旦大學,2009.

(責任編輯:劉壯)

孫瑞華,E-mail:sunruihua@263.net

1.北京中醫藥大學管理學院(100029)

2.中日友好醫院科研處

主站蜘蛛池模板: 91午夜福利在线观看精品| 久久一日本道色综合久久| 亚洲精品777| 深爱婷婷激情网| 91九色国产在线| 天天色天天综合网| 久久久久人妻一区精品色奶水 | 国产精品va| 午夜限制老子影院888| 一级毛片在线播放免费| 一级看片免费视频| 天堂成人av| 国产丝袜精品| 色综合天天综合中文网| 久久精品无码国产一区二区三区| 日本免费福利视频| 伊人无码视屏| 国产成熟女人性满足视频| 免费国产小视频在线观看| 国产91视频观看| 超碰免费91| 成人在线亚洲| 国产精品性| 99在线视频免费| 国产黄在线观看| 国产99视频免费精品是看6| 国产一区成人| 亚洲精品波多野结衣| 欧美乱妇高清无乱码免费| 欧洲熟妇精品视频| 成人在线不卡视频| 午夜视频免费一区二区在线看| 成人福利在线看| 激情六月丁香婷婷| 高清精品美女在线播放| 亚洲色大成网站www国产| 欧美伊人色综合久久天天| 欧美激情,国产精品| 亚洲swag精品自拍一区| 波多野结衣一区二区三区四区视频 | a毛片在线免费观看| 无码AV动漫| 亚洲综合九九| 国产成人一区免费观看 | 国产精品成人AⅤ在线一二三四| 不卡视频国产| 亚洲中文无码av永久伊人| 超碰aⅴ人人做人人爽欧美| 欧美丝袜高跟鞋一区二区 | 国产乱人伦精品一区二区| 亚洲日韩AV无码精品| 成人免费一区二区三区| 在线观看亚洲人成网站| 日韩成人高清无码| 在线亚洲小视频| 亚洲欧美激情另类| 亚洲午夜福利精品无码不卡| 欧美成人精品一级在线观看| 青青草欧美| 亚洲一级毛片免费观看| 亚洲国产天堂久久九九九| 全色黄大色大片免费久久老太| 久久香蕉国产线看观看精品蕉| 亚洲一区二区精品无码久久久| 人妻少妇乱子伦精品无码专区毛片| 日韩无码视频专区| 成人中文字幕在线| 欧美精品xx| 毛片免费在线视频| 香蕉视频在线观看www| 天天综合天天综合| 99久久免费精品特色大片| 中文字幕乱码二三区免费| 欧美日韩在线观看一区二区三区| 亚洲一道AV无码午夜福利| 国产免费福利网站| 99激情网| 一级毛片在线直接观看| 最新国产你懂的在线网址| 2020国产精品视频| 欧美精品一二三区| 久久人午夜亚洲精品无码区|