您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 大数据库批量单因素Cox-回归分析的SAS-宏程序
中南大学学报(医学版)JCentSouthUniv(MedSci)2015,40(2),熊杰2,彭扬琴1,彭小宁2,曾小敏1(1.中南大学公共卫生学院流行病学与卫生统计学系,长沙410078;2.湖南师范大学医学院基础医学系,长沙410013)[摘要]目的:利用SAS宏程序实现批量单因素Cox回归分析。方法:利用SAS9.2软件,结合实例,编写SAS宏程序,进行批量单因素Cox回归分析,筛选输出P值,整合、导出到Excel表中。结果:给出了批量单因素Cox回归分析、结果筛选和导出的SAS宏程序语言。结论:该SAS宏程序具有良好的应用性,可以减少统计分析工作量,为批量单因素Cox回归分析提供了参考。[关键词]生存分析;Cox回归;SAS;宏程序ASASmarcoprogramforbatchprocessingofunivariateCoxregressionanalysisforgreatdatabaseYANGRendong1,XIONGJie2,PENGYangqin1,PENGXiaoning2,ZENGXiaomin1(1.DepartmentofEpidemiologyandHealthStatistics,SchoolofPublicHealth,CentralSouthUniversity,Changsha410078;2.DepartmentofBasicMedicine,MedicalCollegeofHunanNormalUniversity,Changsha410013,China)ABSTRACTObjective:TorealizebatchprocessingofunivariateCoxregressionanalysisforgreatdatabasebySASmarcoprogram.Methods:WewroteaSASmacroprogram,whichcanfilter,integrate,andexportPvaluestoExcelbySAS9.2.TheprogramwasusedforscreeningsurvivalcorrelatedRNAmoleculesofovariancancer.Results:ASASmarcoprogramcouldfinishthebatchprocessingofunivariateCoxregressionanalysis,theselectionandexportoftheresults.Conclusion:TheSASmacroprogramhaspotentialapplicationsinreducingtheworkloadofstatisticalanalysisandprovidingabasisforbatchprocessingofunivariateCoxregressionanalysisKEYWORDSsurvivalanalysis;Coxregression;SAS;macroprogram收稿日期(Dateofreception):2014-07-08第一作者(Firstauthor):杨仁东,Email:xfyx0206@163.com通信作者(Correspondingauthor):曾小敏,Email:zxiaomin@csu.edu.comDOI:10.11817/j.issn.1672-7347.2015.02.013大数据库批量单因素Cox回归分析的SAS宏程序杨仁东,等195生存分析起源于医学与生物科学,是将事件的结果和出现这一结果所经历的时间结合起来分析的一类统计分析方法,也被称之为事件时间分析[1]。Cox回归模型[2]是目前进行多因素生存分析的主要方法。在生物医学RNA分析中,数据往往为高维数据[3],即变量个数远远大于样本数。传统的多因素Cox回归分析高维数据,存在过度拟合以及回归系数不稳定等问题,不适用于直接对上万个变量进行筛选[4-5]。目前,学者[6-7]运用批量单因素Cox回归分析、错误发现率(FDR)分析[8]和惩罚Cox回归分析[9],通过拟合、评估和验证模型等步骤,从上万基因中挖掘与疾病生存相关的基因。其中,批量单因素Cox回归分析是第一步,数据处理量很大,对软件要求很高。常用统计软件如SPSS无法实现该过程,也尚无研究提供相关的SAS程序。SAS软件中,可以通过“procphreg”过程进行Cox回归分析,只将一个变量名写入“model”中时,便可进行单因素Cox回归分析[10]。大数据库批量单因素Cox回归分析时,往往需要执行上万次“procphreg”过程。若手工操作,一个一个写入变量名,则要操作上万次,工作量巨大。SAS宏[11-12]是扩展的SAS功能,可以减少重复性任务的工作量。借助SAS的宏程序,通过循环语句的运行,可以实现批量的单因素Cox回归分析,解决生物医学研究中批量变量的初步筛选问题。本研究拟自编SAS宏程序,通过循环过程,减少统计分析的工作量,得到各个变量单因素Cox回归模型分析的P值,并将所有的P值整合、导出生成一个Excel文件。1资料与方法1.1资料来源与数据处理对于变量个数上万的大数据研究,其原始数据往往不是以SAS形式存储,需要从外部导入到SAS中。本例以Excel数据文件为例,说明宏程序的实现,其他形式的文件,请读者自行更改程序代码。SAS的分析结果默认存储于临时数据集中,数量超过10 000时,临时数据集WORK.DATA10000超过8个字符,不符合SAS命名规则,在结果合并时无法找到临时数据集WORK.DATA10000,并且常用的“procimport”过程在导入Excel文件时每个数据集列数的上限为255列。故而,对于变量个数超过10 000的数据,需要将原始Excel数据文件进行拆分,对每个Excel数据文件各进行一次分析。为了程序的实现,本研究运用来源于美国TheCancerGenomeAtlas[13]的研究卵巢癌患者预后与9 840个mRNA表达量之间关系的数据进行实例操作。首先将9 840个mRNA表达量的数据拆分后的40个Excel数据文件采用系列命名法,即COXmRNA1,COXmRNA2,COXmRNA3……COXmRNA39,COXmRNA40,每个数据文件560行(559位患者),249列,包括patient,time,vstatus和246个mRNA变量。其中,patient,time,vstatus在每个数据文件中均完全相同,patient表示患者编号,time表示生存时间(以天计),vstatus表示生存结局(0表示截尾,1表示死亡),每个文件中的246个mRNA均采用系列命名法(如COXmRNA2文件中246个mRNA为mRNA247,mRNA248,mRNA249……mRNA491,mRNA492)(表1)。本次研究共计批量处理9 840(40×246)个mRNA。变量mRNA重命名方法,可以使用Excel操作技巧直接在Excel表中重命名,也可以采用SAS中的“rename”等程序。重命名之后,为了便于后续的结果查询,列出原始变量与系列变量名的对应表(表2)。本文中SAS宏程序基于SAS9.2版本编写;为了表达方便,本文中所有小数均取四位小数。表1560例卵巢癌患者生存资料及部分mRNA表达量Table1SurvivalinformationandmRNAexpressionof560patientswithovariancancerPatientstimevstatusmRNA247mRNA248mRNA249…mRNA49211 33616.59498.63475.0974…3.361921 24716.73848.89085.7032…3.098335514.98618.04644.6806…3.657041 49507.09517.23644.4864…3.427956116.46669.66536.3419…3.2871……………………55926117.39919.36806.24513.1448time:生存时间,以天数计;vstatus:生存结局,0为截尾、1为死亡。中南大学学报(医学版),2015,40(2)……PDZD3mRNA492表3mRNA1-mRNA9840单因素Cox模型分析P值整合表Table3SummarytableofPvaluesofunivariateCoxregressionofmRNA1tomRNA9840ParametersDFEstimateStdErrChiSqProbChiSqHazardRatioLabelmRNA11−0.11250.09651.35970.24360.8936mRNA1mRNA210.11850.05624.44800.03491.1258mRNA2mRNA310.12730.11841.15570.28231.0248mRNA3……………………mRNA9 8401−0.19710.10633.43700.06380.8211mRNA9 840ProbChiSq等价于PrChiSq,即P值1.2SAS宏程序1.2.1建立数据库,导入数据%letm=40;/*创建宏变量m,即Excel数据文件数*/%letn=246;/*创建宏变量n,即每个Excel数据文件的mRNA数*/%letk=%eval(&m*&n);%put&k;/*创建宏变量k,即输出结果总数*/libnameCOXRNA'D:\COX\';/*在已有的文件夹COX中创建逻辑库*/odslistingclose;odsresultsoff;PROCPRINTTOPRINT='D:\COX\auto.lst'LOG='D:\COX\auto.log'NEW;run;/*防止出现窗口已满的提示,将日志和结果导出*/%macromRNA;/*创建宏程序mRNA*/%doa=1%to&m;/*循环读取m个Excel数据文件*/%letx=%eval(1+(&a-1)*&n);%put&x;/*创建宏变量x,即每个Excel中的第一个mRNA*/%lety=%eval(&a*&n);%put&y;/*创建宏变量y,即每个Excel中的最后一个mRNA*/%dob=&x%to&y;1.2.2自动读取数据文件procimportdatafile=D:\COX\COXmRNA&a..xlsxdbms=Excelout=COXRNA.COXm&a;sheet='sheet1';getnames=yes;run;1.2.3单因素Cox回归分析datamRNA&a;setCOXRNA.COXm&a;labeltime='SurvivalTime'vital_status='0=Alive1=Dead';run;odsoutputParameterEstimates;/*选择输出phreg中的结果ParameterEstimates*/procphregdata=mRNA&a;modeltime*vital_status(0)=mRNA&b;run;/*进行单因素Cox回归分析*/%end;%end;%mend;%mRNA;/*宏程序结束*/PROCPRINTTOPRINT=PRINTLOG=LOG;run;1.2.4导出输出结果datareRNA;setWORK.DATA1-WORK.DATA&k
本文标题:大数据库批量单因素Cox-回归分析的SAS-宏程序
链接地址:https://www.777doc.com/doc-6354748 .html