与LASSO并驾齐驱的预后分析方法,多因数逐步cox分析
尔云间 一个专门做科研的团队


经常做癌症数据预后分析的小伙伴肯定经常接触像单因数cox分析,多因数cox分析,LASSO-cox回归分析这些分析方法,其中在单因数cox回归筛选之后,往往还需要进一步进行筛选,而这个进一步筛选的方法一般就是LASSO或者多因数逐步cox分析,根据小云这段时间分析数据的经验,多因素逐步cox分析往往是起决定作用的。

下来让我们一起来看看多因素逐步cox分析的具体代码吧
library(survival)
library(survminer) #载入R包
rt=read.table("逐步.txt",header=T,sep="\t",check.names=F,row.names=1) #读入数据,前三列分别为样本名,时间,状态,后面为各基因表达量。
multiCox=coxph(Surv(time, status) ~ ., data = rt) #计算与时间状态的预后关系
multiCox=step(multiCox,direction = "both") #进行逐步分析
#以下内容为逐步分析显示内容
Version:1.0 StartHTML:0000000107 EndHTML:0000002932 StartFragment:0000000127 EndFragment:0000002914
Start: AIC=837.78
Surv(time, status) ~ NXPE4 + TAGLN2 + PSAT1 + MAGEA1 + LAMP5 +
CD44 + CTAG2 + RCBTB2 + SLC40A1
Df AIC
- NXPE4 1 835.78
- CTAG2 1 835.93
- MAGEA1 1 836.20
- PSAT1 1 836.34
- LAMP5 1 837.15
- RCBTB2 1 837.76
<none> 837.78
- CD44 1 838.12
- SLC40A1 1 840.83
- TAGLN2 1 849.15
Step: AIC=835.78
Surv(time, status) ~ TAGLN2 + PSAT1 + MAGEA1 + LAMP5 + CD44 +
CTAG2 + RCBTB2 + SLC40A1
Df AIC
- CTAG2 1 833.94
- MAGEA1 1 834.22
- PSAT1 1 834.35
- LAMP5 1 835.15
- RCBTB2 1 835.76
<none> 835.78
- CD44 1 836.12
+ NXPE4 1 837.78
- SLC40A1 1 838.86
- TAGLN2 1 848.53
Step: AIC=833.94
Surv(time, status) ~ TAGLN2 + PSAT1 + MAGEA1 + LAMP5 + CD44 +
RCBTB2 + SLC40A1
Df AIC
- PSAT1 1 832.53
- MAGEA1 1 832.84
- LAMP5 1 833.32
<none> 833.94
- RCBTB2 1 833.99
- CD44 1 834.32
+ CTAG2 1 835.78
+ NXPE4 1 835.93
- SLC40A1 1 837.30
- TAGLN2 1 846.71
Step: AIC=832.53
Surv(time, status) ~ TAGLN2 + MAGEA1 + LAMP5 + CD44 + RCBTB2 +
SLC40A1
Df AIC
- MAGEA1 1 831.37
- LAMP5 1 831.73
<none> 832.53
- RCBTB2 1 832.62
- CD44 1 833.00
+ PSAT1 1 833.94
+ CTAG2 1 834.35
+ NXPE4 1 834.50
- SLC40A1 1 835.86
- TAGLN2 1 844.72
Step: AIC=831.37
Surv(time, status) ~ TAGLN2 + LAMP5 + CD44 + RCBTB2 + SLC40A1
Df AIC
- LAMP5 1 830.80
<none> 831.37
- RCBTB2 1 831.60
- CD44 1 832.16
+ MAGEA1 1 832.53
+ CTAG2 1 832.74
+ PSAT1 1 832.84
+ NXPE4 1 833.26
- SLC40A1 1 834.76
- TAGLN2 1 844.23
Step: AIC=830.8
Surv(time, status) ~ TAGLN2 + CD44 + RCBTB2 + SLC40A1
Df AIC
<none> 830.80
- RCBTB2 1 831.28
+ LAMP5 1 831.37
+ MAGEA1 1 831.73
- CD44 1 832.01
+ CTAG2 1 832.05
+ PSAT1 1 832.44
+ NXPE4 1 832.71
- SLC40A1 1 836.28
- TAGLN2 1 843.0
multiCoxSum=summary(multiCox)
outTab=data.frame()
outTab=cbind(
coef=multiCoxSum$coefficients[,"coef"],
HR=multiCoxSum$conf.int[,"exp(coef)"],
HR.95L=multiCoxSum$conf.int[,"lower .95"],
HR.95H=multiCoxSum$conf.int[,"upper .95"],
pvalue=multiCoxSum$coefficients[,"Pr(>|z|)"])
outTab=cbind(id=row.names(outTab),outTab) #整理结果
write.table(outTab,file="multiCox.xls",sep="\t",row.names=F,quote=F) #写入数据
好了,今天的主要内容就是这样的,欢迎小伙伴们来和小云分享讨论啊。
