新药临床试验统计分析中计量资料的SAS宏实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1新药临床试验统计分析中计量资料的SAS宏实现王媛媛孙瑞华*摘要应用SAS程序进行新药临床试验统计分析的过程中,往往需要对SAS结果进行选择性的输出,现基于新药临床试验统计分析中常见的计量资料的成组检验,设计和编写了综合了成组t检验和成组设计的两样本比较秩和检验的SAS宏程序,并利用实例介绍了SAS宏程序的调用方法和各部分参数的具体含义,以达到降低统计人员的工作量,提高统计分析工作的效率和质量,保证结果的真实性和准确性的目的。关键词临床试验;计量资料;SAS宏;作者单位:100029中日友好医院通讯作者:孙瑞华Email:sunruihua@263.net通讯地址:100029北京市朝阳区樱花东路2号中日友好医院科研处在新药临床试验中,研究的变量主要分为定量资料、定性资料和半定量资料也就是平时常说的等级资料三种。对于计量资料,常用的统计学方法是成组t检验和成组设计的两样本比较秩和检验。如果试验组与对照组的资料均来自正态总体,且方差齐性用t检验,如果试验组与对照组的资料均来自正态总体,但是方差不齐,则用Satterthwaite方法进行的校正t检验。如果试验组与对照组的资料有一组不符合正态分布的时候,就要应用非参数检验,即成组设计的两样本比较秩和检验。国内外多数统计中心,应用SAS(StatisticalAnalysisSystem)软件对新药临床试验的数据进行统计学分析,SAS软件具有强大的数据分析处理能力,但是也有其不足的一面,我们运行一般的过程步以后,会在输出窗口输出大量的信息,我们需要从这些庞杂的结果数据中挑选出自己所需要的结果,以成组t检验为例,判断两组资料是否来自正态总体,要判断中正态性检验的结果(TestForNormality)概率P是否大于临界值0.05,然后再判断方差齐性检验结果(EqualityofVariances)概率P是否大于临界值0.05,最后才能判断读取t检验或校正t检验的概率值。这样无疑会增加统计人员的工作量,降低工作效率。SAS宏(SASMacro)能减少普通工作文本输入量的SAS工具[1],并且能通过SAS宏编程对结果进行选择性的输出,利用SAS宏自动实现对试验组与对照组资料的正态性检验和方差齐性检验。1SAS宏编写的一般原则及SAS程序1.1统计分析中计量资料SAS宏模块编写的一般原则编写SAS宏模块并不是一个复杂的过程,邹建东[2]等人编写过正态分布定量指标统计分析报告的SAS宏程序,且具有简单易懂的特点,因此本文主要借鉴邹建东编写SAS宏模块的一般原则,具体描述如下:通过SAS中新增加的结果传递系统(OutputDeliverySystem,ODS)将成组t检验(ttest)和成组秩和检验(npar1waywilcoxon)过程步的结果输出到指定的数据集中,将这些数据集和描述性结果输出的数据集合并为一个总的数据集,在总的数据集中进行正态分布判断和方差齐性判断并输出最后的统计量和概率P值。1.2SAS程序1、定义宏名称和宏变量2jiliang为宏名称,宏变量中database表示的数据集的名称,var为需要分析的变量名称,index为变量名的标签。%macrojiliang(database,var,index);2、宏程序块内容/*将univariatenormal过程步的描述性统计结果和正态性检验的结果输出到到result数据集中*/procunivariatenormalnoprintdata=&database;var&var;bygroup;outputout=resultn=nmean=meanmedian=medstd=stdmin=minmax=maxnmiss=nmissPROBN=Pnor;/*将A、B两组描述性统计和正态性检验的结果分别输出到a,b两个独立的数据集中,并定义变量的长度*/dataa(where=(group=A))b(where=(group=B));setresult;formatmean6.2med6.2std6.2Pnor18.2;/*将a,b两个独立的数据集,根据不同的组别将结果重新命名,合并为一个result数据集中*/dataresult(drop=group);/**/mergea(rename=(n=NAnmiss=MAmean=MeanAmed=medAstd=StdAMin=MinAMax=MaxAPnor=PnorA))b(rename=(n=NBnmiss=MBmean=MeanBmed=medBstd=StdBMin=MinBMax=MaxBPnor=PnorB));Variable=&var;/*利用ODS输出t检验结果数据集Ttests和正态性检验结果数据集Equality*/odslistingclose;odsoutputTTests=TTestsEquality=Equality;procttestdata=&database;var&var;classgroup;run;odslisting;/*合并数据集Ttests、Equality和result到一个数据集中test1*/datatest;mergeEqualityTTestsresult;byVariable;/*生成正态且方差齐性的成组T检验的数据集,并定义变量格式*/datatest1;settest;wherePnorA0.05andPnorB0.05andProbF0.05andVariances=Equal;lengthstat$15;stat=t_value;3/*生成正态但方差不齐的成组T检验的数据集,并定义变量格式*/datatest2;settest1;whereProbF0.05andVariances=Unequal;lengthstat$15;stat=t’;/*合并成组T检验的数据集,并定义变量的长度*/datatest(keep=tValueProbtstat);mergetest1test2;tValue=abs(tValue);formattValue6.2Probt6.3;/*利用ODS输出秩和检验结果数据集WilcoxonTest*/odslistingclose;odsoutputWilcoxonTest=WilcoxonTest;procnpar1waywilcoxondata=&database;var&var;classgroup;run;odslisting;/*将秩和检验中的NormalApproximation结果Z值和双侧检验概率输出到wilcox1数据集*/datawilcox1;setWilcoxonTest;ifName1=_WIL_orName1=PR_WILorName1=PTR_WILorName1=PT2_WILornValue1=.thendelete;Variable=&var;run;/*将秩和检验结果和描述性统计的结果输出到wilcox2数据集*/datawilcox2;mergewilcox1result;byVariable;/*生成成组设计的两样本比较秩和检验的数据集*/datawilcox21(keep=Name1cValue1stat);setwilcox2;wherePnorA0.05orPnorB0.05;lengthstat$15;stat=Z_Wil;dataC(where=(Name1=Z_WIL))D(where=(Name1=P2_WIL));4setwilcox21;datawilcox22(keep=cValue1CcValue1DstatC);mergeC(rename=(Name1=Name1CcValue1=cValue1Cstat=statC))D(rename=(Name1=Name1DcValue1=cValue1Dstat=statD));/*根据t检验与秩和检验的不同结果设置输出格式*/data_null_;mergeresulttestwilcox22;ifPnorA0.05andPnorB0.05thendo;fileprintnotitle;put#1@3&index#2@5例数(缺失)@22NA'('MA')'@42NB'('MB')'@60stat'='tValue@80'P='Probt#3@5均数±标准差@22MeanA'±'StdA@42MeanB'±'StdB#4@5中位数@22MedA@42MedB#5@5最大值@22MaxA@42MaxB#6@5最小值@22MinA@42MinB;end;elseifPnorA0.05orPnorB0.05thendo;fileprintnotitle;put#1@3&index#2@5例数(缺失)@22NA'('MA')'@42NB'('MB')'@60statC'='cValue1C@80'P='cValue1D#3@5均数±标准差@22MeanA'±'StdA@42MeanB'±'StdB#4@5中位数@22MedA@42MedB#5@5最大值@22MaxA@42MaxB#6@5最小值@22MinA@42MinB;end;run;%mendjiliang;2利用实例调用宏程序假设新药临床试验的全分析数据集为datafas,现要对体重和症状得分进行组间比较,变量名称为WEIGHT(体重)和ZFS(症状评分),调用SAS宏的程序和输出结果如下:%jiliang(data,XINLV,心率);%jiliang(data,WEIGHT,体重);心率例数(缺失)103(0)106(0)t_value=0.23P=0.8165均数±标准差79.64±11.2580.01±11.65中位数80.0080.00最大值120110最小值5350体重例数(缺失)100(0)105(0)Z_Wil=0.5913P=0.5543均数±标准差59.62±8.6058.84±8.10中位数60.0060.00最大值8575最小值4142结果显示:心率符合正态分布且方差齐,t检验结果两组差别无统计学意义,体重试验组与对照组的资料至少有一组不符合正态分布,秩和检验结果,两组整体分布无统计学意义。3讨论新药临床试验的统计分析过程的质量和规范程度直接影响到药物临床疗效的分析结果,按照以往先编写SAS程序,再选择相应的SAS结果手动生成报表的过程,有两个缺点:一是会增加统计人员的工作量且容易出现错误;二是可重复性较差,如果一旦出现全分析数据集(FAS,FullAnalysisSet)、符合方案数据集(PPS,Per-ProtocolSet)或安全性数据集(SS,SafetyAnalysisSet)变更的情况,统计人员需要重新选择SAS结果进行制表。另外,通过调用odsrtf和procreport等语句编写的SAS宏程序可以将结果数据集直接输出为word文档数据报表的格式。从本文的实例中我们可以看出,宏程序的原理就是通过组合多个SAS过程步形成一个功能强大的sas宏。宏程序%jiliang的最大的功能特点就是省去了统计人员从大量的SAS结果中人为地判断正态性以及方差齐性的工作,将两组定量指标进行统计描述与假设检验常用的统计分析结果即成组t检验和成组设计的两样本比较秩和检验的统计量和概率P值直接输出到output窗口供统计人员使用。对于定量资料的协方差分析,定性资料的四格表或是多行多列表也可以通过编写SAS宏并直接调用的方式来实现,以达到降低统计人员的工作量和避免人为读取结果数据产生的错误,提高统计分析过程的工作效率和质量,保证结果的真实性和准确性的目的。参考文献1.高惠璇等.SAS系统BaseSAS软件使用手册[M].北京:中国统计出版社,1997.2.邹建东,熊宁宁,卜擎燕等.正态分布定量指标统计分析报表的SAS宏程序[J].中国临床药理学与治疗学,2004,9(7):838-840.

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功