2024年4月26日发(作者:)
中南大学学报(医学版)
194
J Cent South Univ (Med Sci)
2015, 40(2) htt p://
DOI:10.11817/.1672-7347.2015.02.013
/xbwk/fi leup/PDF/
大数据库批量单因素Cox回归分析的SAS宏程序
杨仁东
1
,熊杰
2
,彭扬琴
1
,彭小宁
2
,曾小敏
1
(1. 中南大学公共卫生学院流行病学与卫生统计学系,长沙 410078;2. 湖南师范大学医学院基础医学系,长沙 410013)
[摘要] 目的:利用SAS宏程序实现批量单因素Cox回归分析。方法:利用SAS9.2软件,结合实例,编写SAS宏程
序,进行批量单因素Cox回归分析,筛选输出
P
值,整合、导出到Excel表中。结果:给出了批量单因素Cox回归分析、
结果筛选和导出的SAS宏程序语言。结论:该SAS宏程序具有良好的应用性,可以减少统计分析工作量,为批量单因
素Cox回归分析提供了参考。
[关键词] 生存分析;Cox回归;SAS;宏程序
A SAS marco program for batch processing of univariate
Cox regression analysis for great database
YANG Rendong
1
, XIONG Jie
2
, PENG Yangqin
1
, PENG Xiaoning
2
, ZENG Xiaomin
1
(1. Department of Epidemiology and Health Statistics, School of Public Health, Central South University, Changsha 410078;
2. Department of Basic Medicine, Medical College of Hunan Normal University, Changsha 410013, China)
ABSTRACT
Objective:
To realize batch processing of univariate Cox regression analysis for great database by
SAS marco program.
Methods:
We wrote a SAS macro program, which can fi lter, integrate, and export P values to Excel
by SAS9.2. The program was used for screening survival correlated RNA molecules of ovarian
cancer.
Results:
A SAS marco program could fi nish the batch processing of univariate Cox regression analysis,
the selection and export of the results.
Conclusion:
The SAS macro program has potential applications in reducing the workload of
statistical analysis and providing a basis for batch processing of univariate Cox regression analysis
KEY WORDS
survival analysis; Cox regression; SAS; macro program
收稿日期
(Date of reception)
:2014-07-08
第一作者
(First author)
:杨仁东,Email: xfyx0206@
通信作者
(Corresponding author)
:曾小敏,Email: zxiaomin@
大数据库批量单因素Cox回归分析的SAS宏程序 杨仁东,等
195
生存分析起源于医学与生物科学,是将事件
的结果和出现这一结果所经历的时间结合起来分
析的一类统计分析方法,也被称之为事件时间分
析
[1]
。Cox回归模型
[2]
是目前进行多因素生存分析
的主要方法。在生物医学RNA分析中,数据往往
为高维数据
[3]
,即变量个数远远大于样本数。传统
的多因素Cox回归分析高维数据,存在过度拟合以
及回归系数不稳定等问题,不适用于直接对上万
个变量进行筛选
[4-5]
。
目前,学者
[6-7]
运用批量单因素Cox回归分析、
错误发现率(FDR)分析
[8]
和惩罚Cox回归分析
[9]
,通
过拟合、评估和验证模型等步骤,从上万基因中挖
掘与疾病生存相关的基因。其中,批量单因素Cox
回归分析是第一步,数据处理量很大,对软件要求
很高。常用统计软件如SPSS无法实现该过程,也尚
无研究提供相关的SAS程序。
SAS软件中,可以通过“proc phreg”过程进
行Cox回归分析,只将一个变量名写入“model”
中时,便可进行单因素Cox回归分析
[10]
。大数据库
批量单因素Cox回归分析时,往往需要执行上万次
“proc phreg”过程。若手工操作,一个一个写入变
量名,则要操作上万次,工作量巨大。SAS宏
[11-12]
是
扩展的SAS功能,可以减少重复性任务的工作量。
借助SAS的宏程序,通过循环语句的运行,可以实
现批量的单因素Cox回归分析,解决生物医学研究
中批量变量的初步筛选问题。本研究拟自编SAS宏
程序,通过循环过程,减少统计分析的工作量,得
到各个变量单因素Cox回归模型分析的
P
值,并将所
有的
P
值整合、导出生成一个Excel文件。
SAS中。本例以Excel数据文件为例,说明宏程序
的实现,其他形式的文件,请读者自行更改程序
代码。
SAS的分析结果默认存储于临时数据集中,数
量超过10 000时,临时数据集10000超
过8个字符,不符合SAS命名规则,在结果合并时
无法找到临时数据集10000,并且常
用的“proc import”过程在导入Excel文件时每个数
据集列数的上限为255列。故而,对于变量个数超
过10 000的数据,需要将原始Excel数据文件进行拆
分,对每个Excel数据文件各进行一次分析。
为了程序的实现,本研究运用来源于美国
The Cancer Genome Atlas
[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版本
编写;为了表达方便,本文中所有小数均取四位
小数。
1 资料与方法
1.1 资料来源与数据处理
对于变量个数上万的大数据研究,其原始数
据往往不是以SAS形式存储,需要从外部导入到
表1 560例卵巢癌患者生存资料及部分mRNA表达量
Table 1 Survival information and mRNA expression of 560 patients with ovarian cancer
Patients
1
2
3
4
5
…
559
time
1 336
1 247
55
1 495
61
…
261
vstatus
1
1
1
0
1
…
1
mRNA247
6.5949
6.7384
4.9861
7.0951
6.4666
…
7.3991
mRNA248
8.6347
8.8908
8.0464
7.2364
9.6653
…
9.3680
mRNA249
5.0974
5.7032
4.6806
4.4864
6.3419
…
6.2451
…
…
…
…
…
…
…
mRNA492
3.3619
3.0983
3.6570
3.4279
3.2871
…
3.1448
time:生存时间,以天数计;vstatus:生存结局,0为截尾、1为死亡。
196
中南大学学报
(
医学版
), 2015, 40(2)
表2 mRNA原始变量名与系列变量名对应表
Table 2 Corresponding form of original and series variable
names
原始变量名
AACS
FSTL1
ELMO2
…
PDZD3
系列变量名
mRNA247
mRNA248
mRNA249
…
mRNA492
dbms=Excel out=&a;
sheet='sheet1';
getnames=yes;
run;
1.2.3 单因素Cox回归分析
data mRNA&a;
set &a;
label time='Survival Time' vital_status='0=Alive
1=Dead';
run;
ods output ParameterEstimates; /*选择输出
phreg中的结果ParameterEstimates*/
proc phreg data=mRNA&a; model time * vital_
status(0)=mRNA&b;
run; /*进行单因素Cox回归分析*/
%end;
%end;
%mend;
%mRNA;/*宏程序结束*/
PROC PRINTTO PRINT=PRINT LOG=LOG;
run;
1.2.4 导出输出结果
data reRNA;
set &k;
length Parameter $20;
run;
PROC export data=
outfile="D:"
DBMS=Excel REPLACE;
SHEET="resultRNA";/*结果导出到名为
resultRNA的Excel文件中*/
run;
1.2 SAS宏程序
1.2.1 建立数据库,导入数据
%let m=40;/*创建宏变量
m
,即Excel数据文件
数*/
%let n=246;/*创建宏变量
n
,即每个Excel数据
文件的mRNA数*/
%let k=%eval(&m*&n);
%put &k;/*创建宏变量
k
,即输出结果总数*/
libname COXRNA 'D:COX'; /*在已有的文件
夹COX中创建逻辑库*/
ods listing close;
ods results off;
PROC PRINTTO PRINT='D:'
LOG='D:' NEW;
run;/*防止出现窗口已满的提示,将日志和结
果导出*/
%macro mRNA;/*创建宏程序mRNA*/
%do a=1 %to &m;/*循环读取
m
个Excel数据文
件*/
%let x=%eval(1+(&a-1)*&n);
%put &x;/*创建宏变量
x
,即每个Excel中的第
一个mRNA*/
%let y=%eval(&a*&n);
%put &y;/*创建宏变量
y
,即每个Excel中的最
后一个mRNA*/
%do b=&x %to &y;
1.2.2 自动读取数据文件
proc import datafile= "D:lsx"
2 结 果
执行以上的SAS宏程序后,得到各个变量
mRNA的
P
值,并将其整合、导出到Excel表中,结
果见表3。
表3 mRNA1-mRNA9 840单因素Cox模型分析
P
值整合表
Table 3 Summary table of
P
values of univariate Cox regression of mRNA1 to mRNA9 840
Parameters
mRNA1
mRNA2
mRNA3
…
mRNA9 840
DF
1
1
1
…
1
Estimate
−
0.1125
0.1185
0.1273
…
−
0.1971
StdErr
0.0965
0.0562
0.1184
…
0.1063
ChiSq
1.3597
4.4480
1.1557
…
3.4370
ProbChiSq
0.2436
0.0349
0.2823
…
0.0638
HazardRatio
0.8936
1.1258
1.0248
…
0.8211
Label
mRNA1
mRNA2
mRNA3
…
mRNA9 840
ProbChiSq等价于Pr>ChiSq,即
P
值
大数据库批量单因素Cox回归分析的SAS宏程序 杨仁东,等
197
3 讨 论
本文中的SAS宏程序采用系列变量名实现循
环,所选用的统计方法为单因素Cox回归模型分析,
所执行的过程有:自动从40个Excel文件中导入数据,
并创建数据集到逻辑库中,进行批量单因素Cox回
归模型分析,筛选输出结果,整合输出结果,导出结
果到Excel文件工作表中。对宏程序调用更改时,要
保证调用的Excel文件处于未打开状态;已经建立好
结果输出文件“”;从1
开始存储结果,即SAS是新打开的。通过更改
m
和
n
值,可以分析
m
个、每个Excel文件所含变量为
n
的共
计
k
(
k
=
m×n
)个变量。对于大批量数据的其他统计方
法(如logistic回归)的分析,可通过更改本宏程序的
“proc”“model”“ods output”等过程实现。
本宏程序的优点在于能够自动读取Excel文件
中的数据,自动读取变量,实现全自动的批量单
因素Cox回归分析。局限性在于数据文件需要系列
命名,每个数据文件的数据格式要相同,参与分
析的变量需要系列命名,对于变量超过10 000个的
数据,需要多次执行本宏程序。
prognostic models:issues in developing models, evaluating
assumptions and adequacy and measuring and reducing errors[J].
Stat Med, 1996, 15(4): 361-387.
[5] Yuan M, Lin Y. Model selection and estimation in regression with
grouped variables[J]. JR Stat Soc Series B Stat Methodol, 2006,
68(1): 49-67.
[6] Bøvelstad HM, Nygard S, Størvold HL, et al. Predicting survival
from microarray data-a comparative study[J]. Bioinformatics, 2007,
23(16): 2080-2087.
[7] Xiong J, Bing Z, Su Y, et al. An integrated mRNA and microRNA
expression signature for glioblastoma multiforme prognosis:
e98419[J]. PLoS One, 2014, 9(5): e98419.
[8] Benjamini Y, Hochberg Y. Controlling the false discovery rate: a
practical and powerful approach to multiple testing[J]. J R Statist
SOC B, 1995, 57(1): 289-300.
[9] 闫丽娜. 惩罚COX模型和弹性网技术在高维数据生存分析中
的应用[D]. 太原: 山西医科大学, 2011.
YAN Lina. The application of punishment cox model and elastic
net technology in survival analysis of high-dimensional data[D].
Taiyuan: Shandong University School of Medicine, 2011.
[10] 张瑛. SAS软件实用教程[M]. 北京: 科学出版社, 2008: 113-114.
ZHANG Ying. SAS software practical guide[M]. Beijing: Science
Press, 2008: 113-114.
参考文献
[1] 孙振球. 医学统计学[M]. 3版. 北京: 人民卫生出版社. 2013:
299-318.
SUN Zhenqiu. Medical statistics[M]. 3rd ed. Beijing: People
’
s
Medical Publishing House, 2013: 299-318.
[2] Cox DR. Regression models and life tables[J]. JR stat soc B, 1972,
34(2): 187-220.
[3] 邓启龙. 高维部分线性COX模型的变量选择[D]. 北京: 中国科
学技术大学, 2012.
DENG Qilong. Variable selection for high-dimensional partially
linear COX models[D]. Beijing: Uinversity of Science and
Technology of China, 2012.
[4] Harrell F, Lee KL, Mark DB. Tutorial in biostatistics multivariable
[11] 胡良平. SAS实验设计与统计分析[M]. 北京: 人民卫生出版社,
2010: 327-346.
HU Liangping. SAS experimental design and statistical analysis[M].
Beijing: People
’
s Medical Publishing House, 2010: 327-346.
[12] 杨池然. SAS9.2从入门到精通[M]. 北京: 电子工业出版社,
2011: 243-271.
YANG Chiran. SAS9.2 from entry to the master[M]. Beijing:
Publishing House of Electronics Industry, 2011: 243-271.
[13] The Cancer Genome Atlas Research Network. Integrated genomic
analyses of ovarian carcinoma[J]. Nature, 2011, 474(7353): 609-
615.
(本文编辑
彭敏宁)
本文引用:杨仁东, 熊杰, 彭扬琴, 彭小宁, 曾小敏. 大数据库批
量单因素Cox回归分析的SAS宏程序[J]. 中南大学学报: 医学版,
2015, 40(2): 194-197. DOI:10.11817/.1672-7347.2015.02.013
Cite this article as:
YANG Rendong, XIONG Jie, PENG Yangqin,
PENG Xiaoning, ZENG Xiaomin. A SAS marco program for batch
processing of univariate Cox regression analysis for great database[J].
Journal of Central South University. Medical Science, 2015, 40(2): 194-197.
DOI:10.11817/.1672-7347.2015.02.013
发布评论