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

article/2025/8/28 10:55:47

问题与数据

某研究者拟观察某新药的抗肿瘤效果,将70名肺癌患者随机分为两组,分别采用该新药和常规药物进行治疗,观察两组肺癌患者的生存情况,共随访2年。研究以死亡为结局,两种治疗方式为主要研究因素,同时考虑调整年龄和性别的影响,比较两种疗法对肺癌患者生存的影响是否有差异。变量的赋值和部分原始数据见表1和表2。

表1. 肺癌患者生存的影响因素与赋值

表2. 两组患者的生存情况

对数据结构的分析

该研究以死亡为结局,治疗方式为主要研究因素,每个研究对象都有生存时间(随访开始到死亡、失访或随访结束的时间),同时考虑调整年龄和性别的影响。欲了解两种疗法对肺癌患者生存的影响是否有差异,可以用Cox比例风险模型(Cox proportional-hazards model,也称为Cox回归)进行分析。

实际上,Cox回归的结局不一定是死亡,也可以是发病、妊娠、再入院等。其共同特点是,不仅考察结局是否发生,还考察结局发生的时间。

在进行Cox回归分析前,如果样本不多而变量较多,建议先通过单变量分析(KM法绘制生存曲线、Logrank检验等)考察所有自变量与因变量之间的关系,筛掉一些可能无意义的变量,再进行多因素分析,这样可以保证结果更加可靠。即使样本足够大,也不建议把所有的变量放入方程直接分析,一定要先弄清楚各个变量之间的相互关系,确定自变量进入方程的形式,这样才能有效的进行分析。

单因素分析后,应当考虑应该将哪些自变量纳入Cox回归模型。一般情况下,建议纳入的变量有:1)单因素分析差异有统计学意义的变量(此时,最好将P值放宽一些,比如0.1或0.15等,避免漏掉一些重要因素);2)单因素分析时,没有发现差异有统计学意义,但是临床上认为与因变量关系密切的自变量。

(敲黑板:上面两段加粗部分是重点,重点,重点!!!)

1. 数据录入SPSS

2. Analyze→Survival→Cox Regression

3.选项设置

1)主对话框设置:

①将生存时间变量送入Time框中→②将结局变量送入Status框中→③点击Define Event→④定义表示终点事件发生的数值(此例中为死亡,用1表示)→⑤Continue→⑥将分组因素和需要调整的变量送入Covariates框中→⑦Method选择Forward:LR。

对于自变量筛选的方法(Method对话框),SPSS提供了7种选择,使用各种方法的结果略有不同,读者可相互印证。各种方法之间的差别在于变量筛选方法不同,其中Forward: LR法(基于最大似然估计的向前逐步回归法)的结果相对可靠,但最终模型的选择还需要获得专业理论的支持。

2)Categorical Covariates选项设置:

①将分类变量group选入右侧Categorical Covariates里,②并选择Reference Category以First为参比(即选择最小数值为参照组),其他按默认选项→③Change→Continue

注意:在数据录入时,建议将二分类变量赋值为0和1;多分类变量赋值为0、1、2、3或者1、2、3、4等,并根据以下情况设置Categorical Covariates选项:

A. 以下情况,可以不定义Categorical Covariates选项:当自变量是二分类变量,并且赋值的差值为1,例如赋值为0和1,也不需要绘制该变量不同组间的生存曲线时。

B. A以外的情况都必须定义Categorical Covariates选项。需特别注意两种情况:①当自变量是二分类变量,但要在Plots选项中设置,得到不同组间的生存曲线时。比如本例中,group为二分类变量,但要观察不同用药组间的生存曲线,就需要在Categorical Covariates选项中定义group变量;②多分类变量时。

3)Plots选项设置:

要绘制生存曲线,①可选择Plots Type中的Survival作为输出的图形,②将主要分类变量选入右侧Separate lines for中,可以输出该变量不同组间对应的生存曲线,其他按默认选项→Continue

4)Options选项设置:

①选择Model Statics中的CI for exp(B)要求输出HR值的95%置信区间,②选择Display model imformation中的At last step(即要求仅输出最后一步的模型),其他按默认选项→Continue→OK

结果解读

(1)Case Processing Summary表格给出了分析数据的基本情况,其中包括事件发生数(Event)、删失数(Censored)和总数(Total)等信息。

(2)Categorical Variable Codings表格给出了Categorical Covariates选项中设置的变量(本例中为group)所对应的赋值情况和频率(Frequency)。最后一列给出了变量编码的情况。脚注b. Indicator Parameter Coding说明了本研究中group变量以First为参照组(Categorical Covariates选项中的设置)。

(3)Omnibus Tests of Model Coefficients表格给出了模型中所有变量的回归系数全为0的检验结果。对于本例,①Score统计量为5.065, P=0.024;②对数似然比检验χ2=5.399, P=0.020。说明模型中至少有一个自变量的HR值不为1,模型整体检验有统计学意义。

(4)Variables in the Equation表格给出了参数估计的结果。结果显示最后筛选后的模型仅包含group变量,①P=Sig.=0.029说明治疗方式为影响肺癌患者预后的独立因素。②相对危险度HR=Exp(B)=0.410,说明使用新药的患者死亡风险为使用常规药物患者的0.410倍,③HR的95%可信区间(95% CI)为0.184-0.914。

(5) 生存曲线。前述Plots选项的设置要求输出按照不同药物分组的生存曲线。新药组(赋值为1,绿色线条)比常规药物组(赋值为0,蓝色线条)的生存率高。值得注意的是,该图片并未编辑,不符合给杂志投稿的要求。关于图片的编辑此处不再展开讨论。

撰写结论

治疗方式为影响肺癌的独立因素(P=0.029)。与常规药物相比,使用新药的肺癌患者的死亡风险低于使用常规药物的患者,HR=0.410(95% CI: 0.184-0.914)。

备注

Cox回归使用的前提是满足比例风险假定(PH假定),即主要研究因素(包括Covariates框中放入的其它协变量)的各层间均应满足PH假定。如果不满足,则应当将变量放入Strata框中进行分层变量控制。

具体如何判断各变量是否满足PH假定,以及如何设置Strata对话框对变量进行分层控制,咱们以后再聊。


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

相关文章

R语言生存分析:Cox回归

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

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

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

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

一、今天在查看awr报告中,发现Top 5 Timed Foreground Events发现enq: HW - contention的等待事件; 二、enq: HW - contention的官方说明: 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

解决方案:alter system set “_lm_drm_disable”5 sid’*’;(重启库)

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

TM – Enqueue contention 与Table Manipulation相关的入队争用,可以在使用需要锁定表的重组活动显式锁定表时看到。 ID1 ID2的含义 ID1 : 0(LGWR) or object_number, 即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常见的几大等待事件之一,在开启的事务中,为了维护事务数据的一致性,会在事务所涉及的修改行中添加TX锁以防止其他会话同时修改数据,当其他会话等待该…

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

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

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

enq: HW - contention 说明: 硬件队列用于序列化段的高水位线以外的空间分配。 可以用手动分配范围即可解决问题。 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方法的理解

自己太笨了,总感觉有点绕,就整理下吧~ private Node enq(final Node node) {//自旋锁for (;;) {//tail默认就是nullNode t tail;if (t null) { // Must initialize//因为tail默认是null,所以首次一定会进来//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…

python随机生成三位数字_python3 随机生成数字

原博文 2019-11-25 10:07 − random模块 random.randint(1,10)--随机生成0-10之间的随机整数 random.uniform(1,10)--随机生成0-10之间的实数 random.randrange(9,100,10)--从9-100之间随机选取一个实数,差为10,也就是说从9,19,29,39,49... 0 3530 相关推荐 2019-12-0…

C#生成含数字字母的随机字符串

C#生成含数字字母的随机字符串 要求生成的字符串是随机的&#xff0c;也就是字母和数字都需要随机&#xff0c;既可能只包含数字&#xff0c;也可能只包含字母&#xff0c;也可能两者都有。 实现方式如下: 首先定义一个包含所有字母和数字的字符串和一个空串&#xff0c;随后…