(生物信息学)R语言与统计学入门(九)—— 单因素cox回归分析

article/2025/8/27 20:30:55

## 近期将推出 ​​​​​​​苦逼医学生R语言入门;R语言与高级统计学 付费专栏,感谢大家支持 ##​​​​​​​

COX回归模型,又称“比例风险回归模型(proportional hazards model,简称Cox模型)”,是由英国统计学家D.R.Cox(1972)年提出的一种半参数回归模型。该模型以生存结局和生存时间为因变量,可同时分析众多因素对生存期的影响,能分析带有截尾生存时间的资料,且不要求估计资料的生存分布类型。由于上述优良性质,该模型自问世以来,在医学随访研究中得到广泛的应用,是迄今生存分析中应用最多的多因素分析方法。

下面我们直接测试代码:

 数据准备如下存成CSV格式,方便R语言读取:

setwd("D:\\")
dir()
data <- read.csv("Cox.csv",header = T,sep = ",")
head(data)# > head(data)
#         sampleID RFS.time RFS    ALY
#1 TCGA-2A-A8VL-01      621   0 2.0320
#2 TCGA-2A-A8VO-01     1701   0 1.8710
#3 TCGA-2A-A8VT-01     1373   0 0.7952
#4 TCGA-2A-A8VV-01      671   0 2.6270
#5 TCGA-2A-A8VX-01     1378   0 2.3310
#6 TCGA-2A-A8W1-01      112   0 1.9390

下面我们下载coin软件包:

install.packages("coin")
library(coin)
cox <- coxph(Surv(RFS.time,RFS)~data$ALY,data)
cox# > cox
#Call:
#coxph(formula = Surv(RFS.time, RFS) ~ data$ALY, data = data)
#
#           coef exp(coef) se(coef)     z      p
#data$ALY 0.2845    1.3291   0.1143 2.489 0.0128
#
#Likelihood ratio test=5.34  on 1 df, p=0.02089
#n= 421, number of events= 52 

注意我们这里研究的RFS,无病生存期。

结果显示P值是有意义的。

summary(cox)# > summary(cox)
#Call:
#coxph(formula = Surv(RFS.time, RFS) ~ data$ALY, data = data)
#
#  n= 421, number of events= 52 
#
#           coef exp(coef) se(coef)     z Pr(>|z|)  
#data$ALY 0.2845    1.3291   0.1143 2.489   0.0128 *
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#         exp(coef) exp(-coef) lower .95 upper .95
#data$ALY     1.329     0.7524     1.062     1.663
#
#Concordance= 0.607  (se = 0.049 )
#Likelihood ratio test= 5.34  on 1 df,   p=0.02
#Wald test            = 6.2  on 1 df,   p=0.01
#Score (logrank) test = 6.08  on 1 df,   p=0.01

这里的exp(coef)就是风险比HR的意思。Lower95和upper95是HR置信区间的上下限。

这是针对连续性变量,我们研究的基因表达就是连续性变量。

cox回归也可以进行分类变量的分析,下面我们将基因的表达分为高低表达组:

data$ALY <- ifelse(data$ALY>median(data$ALY),"High expression","Low expression")
head(data)# > head(data)
#         sampleID RFS.time RFS             ALY
#1 TCGA-2A-A8VL-01      621   0 High expression
#2 TCGA-2A-A8VO-01     1701   0  Low expression
#3 TCGA-2A-A8VT-01     1373   0  Low expression
#4 TCGA-2A-A8VV-01      671   0 High expression
#5 TCGA-2A-A8VX-01     1378   0 High expression
#6 TCGA-2A-A8W1-01      112   0  Low expression

此时是二分类变量:

cox <- coxph(Surv(RFS.time,RFS)~data$ALY,data)
summary(cox)# > summary(cox)
#Call:
#coxph(formula = Surv(RFS.time, RFS) ~ data$ALY, data = data)
#
#  n= 421, number of events= 52 
#
#                          coef exp(coef) se(coef)      z Pr(>|z|)  
#data$ALYLow expression -0.6992    0.4970   0.2922 -2.393   0.0167 *
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#                       exp(coef) exp(-coef) lower .95 upper .95
#data$ALYLow expression     0.497      2.012    0.2803    0.8812
#
#Concordance= 0.56  (se = 0.039 )
#Likelihood ratio test= 6.04  on 1 df,   p=0.01
#Wald test            = 5.73  on 1 df,   p=0.02
#Score (logrank) test = 5.96  on 1 df,   p=0.01

其中High expression组被设置成了reference,这里的exp(coef)是针对Low expression组的,意思是这个ALY基因低表达的患者死亡风险是ALY基因高表达患者的0.497倍。

除了二分类变量以外,还可以分析多分类,无论是哪种分类变量,都会设置某一个类为一个参照。


http://chatgpt.dhexx.cn/article/yYikSr8Y.shtml

相关文章

(生物信息学)R语言与统计学入门(十)—— 多因素Cox回归分析

## 近期将推出 医学生R语言入门课;R语言与高级统计学 付费专栏&#xff0c;感谢大家支持 ## 上次提到单因素cox回归分析&#xff1a; &#xff08;生物信息学&#xff09;R语言与统计学入门&#xff08;九&#xff09;—— 单因素cox回归分析_Lijingxian教你学生信的博客-CSD…

SPSS如何进行Cox回归分析操作

问题与数据 某研究者拟观察某新药的抗肿瘤效果&#xff0c;将70名肺癌患者随机分为两组&#xff0c;分别采用该新药和常规药物进行治疗&#xff0c;观察两组肺癌患者的生存情况&#xff0c;共随访2年。研究以死亡为结局&#xff0c;两种治疗方式为主要研究因素&#xff0c;同时…

R语言生存分析:Cox回归

上次介绍了生存分析中的寿命表、K-M曲线、logrank检验、最佳切点的寻找等&#xff0c;本次主要介绍Cox回归。 本推文不涉及理论&#xff0c;只有实操&#xff0c;想要了解生存分析的理论的请自行学习。 Cox回归 使用survival包中的lung数据集用于演示&#xff0c;这是一份关…

SPSS教学—Cox回归模型探索多因素对生存期的影响

Cox回归模型又称为比例风险回归模型&#xff0c;该模型以生存结局和生存时间作为因变量&#xff0c;进而分析众多因素对生存期的影响&#xff0c;是一个典型的多因素分析方法。 SPSS中就带有Cox回归模型方法&#xff0c;本节将带大家进行深入的了解与探索&#xff0c;话不多说…

oracle dump enq hw,等待事件enq:HW–contention说明及解决方法

一、今天在查看awr报告中&#xff0c;发现Top 5 Timed Foreground Events发现enq: HW - contention的等待事件&#xff1b; 二、enq: HW - contention的官方说明&#xff1a; The HW enqueue is used to serialize the allocation of space beyond the high water mark of a se…

关于enq: TX - allocate ITL entry的问题分析

今天发现系统在下午1点左右的时候负载比较高,就抓取了一个最新的awr报告. Snap Id Snap Time Sessions Cursors/Session Begin Snap: 20892 26-Nov-14 13:20:17 3623 5.4 End Snap: 20893 26-Nov-14 13:30:17 3602 5.4 Elapsed: 10.01 (mins) DB Time…

enq: TX - index contention

解决方案&#xff1a;alter system set “_lm_drm_disable”5 sid’*’;&#xff08;重启库&#xff09;

oracle enq: tm,Tuning enq: TM – contention with foreign key (外键引起的队列)

TM – Enqueue contention 与Table Manipulation相关的入队争用&#xff0c;可以在使用需要锁定表的重组活动显式锁定表时看到。 ID1 ID2的含义 ID1 : 0(LGWR) or object_number&#xff0c; 即DBA_OBJECTS.OBJECT_ID ID2: 0 for a normal table / partition lock ; 1 for…

Oracle-enq: TX - row lock contention 等待事件分析

什么是enq:TX - row lock contention等待: 等待事件enq:TX - row lock contention 是Oracle常见的几大等待事件之一,在开启的事务中&#xff0c;为了维护事务数据的一致性&#xff0c;会在事务所涉及的修改行中添加TX锁以防止其他会话同时修改数据&#xff0c;当其他会话等待该…

Oracle死锁问题: enq: TX - row lock contention

前言 这篇文章也是记录近期遇到的问题以及从中学到的知识 &#xff0c;近期一直在救火&#xff0c;有些问题自认为还是挺有代表性的&#xff0c;有兴趣的话再继续向下看 问题现象 线上反馈&#xff0c;执行批量处理EXCEL数据时&#xff0c;系统一直卡在进度滚动条界面。处理任务…

oracle dump enq hw,enq:HW–contention 故障处理

enq: HW - contention 说明&#xff1a; 硬件队列用于序列化段的高水位线以外的空间分配。 可以用手动分配范围即可解决问题。 V$SESSION_WAIT,P2 / V$LOCK.ID1 is the tablespace number. V$SESSION_WAIT.P3 / V$LOCK.ID2 is the relative data block address (dba) of segmen…

oracle enq ta,Oracle 的 enq: TT - contention 等待事件

Oracle 的 enq: TT - contention 等待事件 在遇到 TT 锁等待时,你可能会被Oracle的文档所困扰。即便是在Oracle Database 12c的文档中,关于TT锁的描述也是:Temporary table enqueue。 这其实已经不准确了,从数据库中可以得到更详细和准确的描述,V$LOCK_TYPE中有着准确记录…

oracle enq ta,enq: TA – contention 等待事件

enq: TA – contention 等待事件 This enqueue is used when undo tablespace operations are being performed. Some examples of such operations are: When dropping an undo tablespace we acquire the enqueue in exclsuive mode to stop other sessions using the undo t…

关于AQS中的enq方法的理解

自己太笨了&#xff0c;总感觉有点绕&#xff0c;就整理下吧~ private Node enq(final Node node) {//自旋锁for (;;) {//tail默认就是nullNode t tail;if (t null) { // Must initialize//因为tail默认是null&#xff0c;所以首次一定会进来//compareAndSetHead在下面//也就…

队列等待之enq: TX - row lock contention

【性能优化】队列等待之enq: TX - row lock contention 问题背景&#xff1a; 客户反映某条sql DELETE SHAREINNERDOC WHERE SOURCEID:B1<br/>这个执行时间太长 问题解决 1> 查看awr报告&#xff1a; 有队列等待之enq: TX - row lock contention&#xff0c;对应的sq…

等待事件 enq:TX - row lock contention分析与解决

6月30日&#xff0c;数据库发生了大量锁表。大概持续1小时&#xff0c;并且越锁越多。后来通过业务人员停掉程序&#xff0c;并kill掉会话后解决。 几天后再EM上查看CPU占用&#xff1a; CPU发生了明显等待。 主要是由于enq:TX - row lock contention等待事件造成。 等待事…

java -- 随机获取字母或者数字

java只有涉及到随机的&#xff0c;最经常用到的方法就是Math.random()&#xff0c;这个方法会返回一个大于0小于1的随机数( 能取0不能取1 )&#xff0c;如果我们要随机0-9&#xff0c;就可以用&#xff08;Math.random()*10&#xff09;来表示&#xff0c;随机0-99也类似如此操…

JavaScript生成随机字母数字字符串

如何使用javascript生成随机字母数字字符串&#xff1f;下面本篇文章就来给大家介绍一下使用JavaScript生成随机字母数字字符串的方法&#xff0c;希望对大家有所帮助。 方法一&#xff1a;Math.random()方法和Math.floor()方法 ● 创建一个函数&#xff0c;该函数有两个参数…

Python - 怎么将一个数字拆分成多个随机数字

前情提要 使用numpy.random.choice()的时候&#xff0c;通过参数p&#xff08;一个列表&#xff09;来指定所给选择元素的选择概率。但参数p&#xff08;选择概率&#xff09;要保证和为1&#xff0c;这时我又想随机生成选择概率&#xff0c;所以现在的问题就是怎么将1拆分成多…

python随机生成一个数字_如何实现python随机生成数字?

今天小编就生成随机数,整理了多个方式,方便大家在项目时,根据自己的需求,直接拿来套用即可,以下内容相当详细,具体来看看吧~ 说明:python中生成随机数主要用到random模块,方法主要包括:randint、uniform、random、sample、choice等几种常用方法; 环境:Mac OS 10.1…