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