目录
R语言之生信①差异基因分析1
R语言之生信②差异基因分析2
R语言之生信③差异基因分析3
R语言之生信④TCGA生存分析1
R语言之生信⑤TCGA生存分析2
R语言之生信⑥TCGA生存分析3
R语言之生信⑦Cox比例风险模型(单因素)
======================================
Cox比例风险模型(Cox,1972)本质上是一种回归模型,通常用于医学研究中的统计学,用于研究患者的生存时间与一个或多个预测变量之间的关联。
介绍
在前一章(TCGA生存分析)中,我们描述了生存分析的基本概念以及分析和总结生存数据的方法,包括:1.危险和生存功能的定义 2.为不同患者群构建Kaplan-Meier生存曲线用于比较两条或更多条生存曲线的logrank检验
但是上述方法--Kaplan-Meier曲线和logrank测试 - 是单变量分析的例子。他们根据调查中的一个因素来描述生存,但忽略了任何其他因素的影响。
此外,Kaplan-Meier曲线和logrank检验仅在预测变量是分类时才有用(例如:治疗A与治疗B;男性与女性)。它们不适用于基因表达,体重或年龄等定量预测因子。
另一种方法是Cox比例风险回归分析,它适用于定量预测变量和分类变量。此外,Cox回归模型扩展了生存分析方法,以同时评估几种风险因素对生存时间的影响。
临床研究需求
在临床研究中,存在许多情况,其中几个已知量(称为协变量)可能影响患者预后。
例如,假设比较两组患者:那些患者和没有特定基因型的患者。如果其中一组也包含较老的个体,则存活率的任何差异可归因于基因型或年龄或两者。因此,在研究与任何一个因素相关的生存时,通常需要调整其他因素的影响。
cox比例风险模型是用于对生存分析数据建模的最重要方法之一。该模型的目的是同时评估几个因素对生存的影响。换句话说,它允许我们检查特定因素如何影响特定时间点发生的特定事件(例如,感染,死亡)的发生率。该比率通常称为危险率。预测变量(或因子)通常在生存分析文献中称为协变量。
风险比(HR)大于1表示与事件概率正相关的协变量,因此与生存期长度负相关。
HR = 1:无效
HR <1:减少危害
HR> 1:危险增加
library("survival")
library("survminer")
data("lung")
head(lung)
res.cox <- coxph(Surv(time, status) ~ sex, data = lung)
res.cox
summary(res.cox)
> res.cox <- coxph(Surv(time, status) ~ sex, data = lung)
> res.cox
Call:
coxph(formula = Surv(time, status) ~ sex, data = lung)
coef exp(coef) se(coef) z p
sex -0.531 0.588 0.167 -3.18 0.0015
Likelihood ratio test=10.63 on 1 df, p=0.001
n= 228, number of events= 165
> summary(res.cox)
Call:
coxph(formula = Surv(time, status) ~ sex, data = lung)
n= 228, number of events= 165
coef exp(coef) se(coef) z Pr(>|z|)
sex -0.5310 0.5880 0.1672 -3.176 0.00149 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
sex 0.588 1.701 0.4237 0.816
Concordance= 0.579 (se = 0.022 )
Rsquare= 0.046 (max possible= 0.999 )
Likelihood ratio test= 10.63 on 1 df, p=0.001
Wald test = 10.09 on 1 df, p=0.001
Score (logrank) test = 10.33 on 1 df, p=0.001
Cox回归结果可解释如下:
统计学意义。标记为“z”的列给出Wald统计值。它对应于每个回归系数与其标准误差的比率(z = coef / se(coef))。 wald统计量评估给定变量的β(ββ)系数是否在统计学上显着不同于0.从上面的输出,我们可以得出结论,变量性别具有高度统计上显着的系数。
回归系数(coef)。 Cox模型结果中要注意的第二个特征是回归系数(coef)的符号。对于具有较高该变量值的受试者,正号表示危险(死亡风险)较高,因此预后更差。变量性别被编码为数字向量。 1:男,2:女。 Cox模型的R总结给出了第二组相对于第一组的风险比(HR),即女性与男性。在这些数据中,性别的β系数= -0.53表明女性死亡风险(较低的存活率)低于男性。
危险比(HR)(exp(coef))。指数系数(exp(coef)= exp(-0.53)= 0.59),也称为风险比,给出协变量的效应大小。例如,女性(性别= 2)可将危险降低0.59倍,即41%。女性与预后良好有关。
风险比的置信区间(95%CI)。总结输出还给出了风险比(exp(coef))的上下95%置信区间,下限95%= 0.4237,上限95%= 0.816。
该模型的全局统计意义。最后,输出给出了模型总体显着性的三个替代测试的p值:似然比检验,Wald检验和得分数据统计。这三种方法是渐近等价的。对于足够大的N,它们将给出类似的结果。对于小N,它们可能有所不同。对于小样本量,似然比检验具有更好的行为,因此通常是优选的。
要一次将单变量coxph函数应用于多个协变量,请键入:
covariates <- c("age", "sex", "ph.karno", "ph.ecog", "wt.loss")
univ_formulas <- sapply(covariates,
function(x) as.formula(paste('Surv(time, status)~', x)))
univ_models <- lapply( univ_formulas, function(x){coxph(x, data = lung)})
# Extract data
univ_results <- lapply(univ_models,
function(x){
x <- summary(x)
p.value<-signif(x$wald["pvalue"], digits=2)
wald.test<-signif(x$wald["test"], digits=2)
beta<-signif(x$coef[1], digits=2);#coeficient beta
HR <-signif(x$coef[2], digits=2);#exp(beta)
HR.confint.lower <- signif(x$conf.int[,"lower .95"], 2)
HR.confint.upper <- signif(x$conf.int[,"upper .95"],2)
HR <- paste0(HR, " (",
HR.confint.lower, "-", HR.confint.upper, ")")
res<-c(beta, HR, wald.test, p.value)
names(res)<-c("beta", "HR (95% CI for HR)", "wald.test",
"p.value")
return(res)
#return(exp(cbind(coef(x),confint(x))))
})
res <- t(as.data.frame(univ_results, check.names = FALSE))
as.data.frame(res)
> as.data.frame(res)
beta HR (95% CI for HR) wald.test p.value
age 0.019 1 (1-1) 4.1 0.042
sex -0.53 0.59 (0.42-0.82) 10 0.0015
ph.karno -0.016 0.98 (0.97-1) 7.9 0.005
ph.ecog 0.48 1.6 (1.3-2) 18 2.7e-05
wt.loss 0.0013 1 (0.99-1) 0.05 0.83
上面的输出显示了回归β系数,效应大小(作为风险比给出)和每个变量相对于总体生存的统计显着性。每个因素都通过单独的单变量Cox回归来评估。
变量sex,age和ph.ecog具有统计学意义,而ph.karno的系数不显着。
年龄和ph.ecog具有正β系数,而性别具有负系数。因此,年龄较大和较高的ph.ecog与较差的存活率相关,而女性(性别= 2)与较好的存活率相关。