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.中日友好醫院科研處

主站蜘蛛池模板: 欧美爱爱网| 日本免费高清一区| 中文字幕人成人乱码亚洲电影| 高清欧美性猛交XXXX黑人猛交| 国产精品一区二区久久精品无码| 麻豆AV网站免费进入| 亚洲欧洲日产国码无码av喷潮| AV不卡国产在线观看| 欧美日韩精品一区二区视频| 91黄视频在线观看| 这里只有精品国产| 成年A级毛片| 欧洲av毛片| 污污网站在线观看| 97久久超碰极品视觉盛宴| 少妇精品网站| 国产高清免费午夜在线视频| 在线观看av永久| 91探花国产综合在线精品| 久久久久人妻一区精品色奶水 | 亚洲成A人V欧美综合天堂| 日本欧美在线观看| 白浆视频在线观看| 精品国产中文一级毛片在线看| 亚洲 成人国产| 日本午夜在线视频| 国产靠逼视频| 中文成人在线| 青青操视频免费观看| 国产精品yjizz视频网一二区| 日本精品影院| 在线观看亚洲人成网站| 精品国产福利在线| 亚洲精品国产精品乱码不卞| 欧美性爱精品一区二区三区 | 亚洲天堂网视频| 日本人妻一区二区三区不卡影院| 成人亚洲视频| 亚洲高清无在码在线无弹窗| 狂欢视频在线观看不卡| 黄色成年视频| 福利在线不卡一区| 无码国产偷倩在线播放老年人 | 国产精品护士| 国产一级在线播放| 成年人福利视频| 色视频国产| 精品视频一区二区三区在线播| 免费观看无遮挡www的小视频| 激情无码字幕综合| 久久一本日韩精品中文字幕屁孩| 91色爱欧美精品www| 欧美成在线视频| 高h视频在线| 色婷婷亚洲综合五月| 欧美成人一级| 日本一区中文字幕最新在线| 精品一区二区三区波多野结衣| AV不卡无码免费一区二区三区| 三区在线视频| 中国黄色一级视频| 久久99国产综合精品女同| 青青青国产视频手机| 亚洲天堂网2014| 全部毛片免费看| 狠狠色丁香婷婷综合| 国产日本欧美在线观看| 国产一区二区人大臿蕉香蕉| 欧美一区福利| 无码'专区第一页| 伊在人亚洲香蕉精品播放| 亚洲一区二区视频在线观看| 伦伦影院精品一区| 日韩黄色在线| 国产午夜一级淫片| 玖玖精品视频在线观看| 波多野结衣久久精品| 国产高清在线精品一区二区三区 | 97狠狠操| 成人欧美在线观看| 国产精品尹人在线观看| 日本三区视频|