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

主站蜘蛛池模板: 国内黄色精品| 日韩AV手机在线观看蜜芽| 精品国产Av电影无码久久久| 精品欧美视频| 国产成人精品第一区二区| 制服无码网站| 91在线日韩在线播放| 国产区人妖精品人妖精品视频| 伊人丁香五月天久久综合| 亚洲热线99精品视频| 天天婬欲婬香婬色婬视频播放| 人妻91无码色偷偷色噜噜噜| 伊人色综合久久天天| 亚洲aaa视频| 亚洲精品无码久久毛片波多野吉| 3p叠罗汉国产精品久久| 波多野结衣中文字幕一区| 福利在线不卡一区| 成人av专区精品无码国产| 久久黄色一级片| 国内精品91| 在线观看无码av五月花| 国产福利大秀91| 亚洲无码37.| 91精品国产综合久久香蕉922| 久久久成年黄色视频| 国产香蕉在线视频| 女人18一级毛片免费观看| 国产免费网址| 国产AV无码专区亚洲A∨毛片| 久草热视频在线| 五月婷婷伊人网| 国产草草影院18成年视频| 国产99免费视频| 毛片久久久| 伊伊人成亚洲综合人网7777| 天天躁夜夜躁狠狠躁躁88| 丰满人妻久久中文字幕| 亚洲欧美日韩综合二区三区| 欧美无专区| 午夜国产理论| 高清无码一本到东京热| 国产无套粉嫩白浆| 欧美激情第一区| 亚洲人成人无码www| 亚洲天堂精品在线观看| 99热这里只有成人精品国产| 久久精品人人做人人爽电影蜜月| 亚洲V日韩V无码一区二区 | 青青热久免费精品视频6| 国产精品色婷婷在线观看| 91成人免费观看在线观看| 国产在线自乱拍播放| 国产黄在线免费观看| 欧美性久久久久| 亚洲人成色在线观看| 国产主播一区二区三区| 狠狠色综合久久狠狠色综合| 亚洲男人在线| 精品福利网| JIZZ亚洲国产| 一级毛片网| 国产乱人乱偷精品视频a人人澡| 日韩高清欧美| 1024国产在线| aa级毛片毛片免费观看久| 国产国产人在线成免费视频狼人色| 国产福利一区二区在线观看| 一区二区三区国产| 国产一级无码不卡视频| 色综合热无码热国产| 日韩成人午夜| 欧美日本一区二区三区免费| 人妻精品全国免费视频| 欧美特黄一级大黄录像| 亚洲日韩精品综合在线一区二区| 国产精品99久久久久久董美香| 亚洲大尺度在线| 亚洲一区黄色| 天天干天天色综合网| 巨熟乳波霸若妻中文观看免费| 欧美在线黄|