精华内容
下载资源
问答
  • 问题与数据 某研究者拟观察某新药的抗肿瘤效果,将70名肺癌患者随机分为两组,分别采用...对数据结构的分析 该研究以死亡为结局,治疗方式为主要研究因素,每个研究对象都有生存时间(随访开始到死亡、失访或随访结束

    问题与数据

    某研究者拟观察某新药的抗肿瘤效果,将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对话框对变量进行分层控制,咱们以后再聊。

    展开全文
  • 上一篇文章写了数据分析系列:归因分析原理、案例和python代码。但是现实中用户所归属的渠道可能很多,比如用户在网上商城的首页点击了一个产品,又在其他公众号的相关推荐点击了此产品,最终进行了下单,那这个产品...

    上一篇文章写了数据分析系列:归因分析原理、案例和python代码。但是现实中用户所归属的渠道可能很多,比如用户在网上商城的首页点击了一个产品,又在其他公众号的相关推荐点击了此产品,在所有转化用户中,每个渠道的贡献率是多大?这就是归因分析中的多渠道归因。

    对于多渠道归因,有一些启发式的归因方法,比如“最终点击”(将订单归属于最后一个渠道)、“非最终点击”(归属于倒数第二个渠道)、“首次点击”(第一次点击)、“线性衰减”(时间越远权重越小)、“线性平均”(各经历渠道权重相同)、“根据位置”(自己定义每个位置权重),可参考Google Analysis

    上面的启发式归因,需要人为定义渠道归属或每个位置的权重,在大多数情况,当合理根据业务定义归属时,得出的结果是合理的,也是使用最多的方法。但是却避免不了存在主观性的缺点。**还有一个是根据算法归因的方式,包括使用逻辑回归、生存分析中的cox回归,马尔科夫链等。

    其中逻辑回归和生存分析的多渠道归因大致方法是,求出回归中对应每个渠道前的系数 β i β_i βi,再根据 β i β_i βi求出对应的odd ratios: e x p ( β i ) exp(β_i) exp(βi)(cox回归可以直接求出RR),再根据前一篇数据分析系列:归因分析原理、案例和python代码相关的公式求出每个渠道的PAF。

    马尔科夫链的大致计算方式是:计算每个渠道之间以及最初/终状态(start、转化、未转化)之间的状态转移概率矩阵,再每次去掉其中一个渠道,计算其移除效应,再对每个渠道的移除效应进行标准化,最终的得到就是这个渠道的贡献大小。

    逻辑回归不用多说了,到处都在用。网上的生存分析大多是使用R或者SPSS。本文主要使用python进行生存分析。

    生存分析的理论很多,本文不涉及,推荐写的很好的生存分析系列文章生存分析简介。写的非常清晰,本人也是在长时间不使用后,看着这个系列的文章才慢慢回想起来。

    在python中,生存分析的包是lifelines,可以利用lifelines进行累计生存曲线的绘制、Log Rank test、Cox回归等。

    一、绘制S(t)

    先使用自带的数据集

    from lifelines.datasets import load_waltons
    from lifelines import KaplanMeierFitter
    from lifelines.utils import median_survival_times
    
    df = load_waltons()
    print(df.head(),'\n')
    print(df['T'].min(), df['T'].max(),'\n')
    print(df['E'].value_counts(),'\n')
    print(df['group'].value_counts(),'\n')
    

    在这里插入图片描述
    可以看到数据有三列,其中T代表min(T, C),其中T为死亡时间,C为观测截止时间。E代表是否观察到“死亡”,1代表观测到了,0代表未观测到,即生存分析中的删失数据,共7个。 group代表是否存在病毒, miR-137代表存在病毒,control代表为不存在即对照组,根据统计,存在miR-137病毒人数34人,不存在129人。

    利用此数据取拟合拟生存分析中的Kaplan Meier模型(专用于估计生存函数的模型),并绘制全体人群的生存曲线。

    kmf = KaplanMeierFitter()
    kmf.fit(df['T'], event_observed=df['E'])
    
    kmf.plot_survival_function()
    
    median_ = kmf.median_survival_time_
    median_confidence_interval_ = median_survival_times(kmf.confidence_interval_)
    print(median_confidence_interval_)
    

    在这里插入图片描述
    图中蓝色实线为生存曲线,浅蓝色带代表了95%置信区间。随着时间增加,存活概率S(t)越来越小,这是一定的,同时S(t)=0.5时,t的95%置信区间为[53, 58]。这并不是我们关注的重点,我们真正要关注的实验组(存在病毒)和对照组(未存在病毒)的生存曲线差异。因此我们要按照group等于“miR-137”和“control”分组,分别观察对应的生存曲线:

    groups = df['group']
    ix = (groups == 'miR-137')
    
    kmf.fit(df['T'][ix], df['E'][ix], label='miR-137')
    ax = kmf.plot()
    treatment_median_confidence_interval_ = median_survival_times(kmf.confidence_interval_)
    print("带有miR-137病毒存活50%对应的存活时间95%置信区间:'\n'", treatment_median_confidence_interval_, '\n')
    
    kmf.fit(df['T'][~ix], df['E'][~ix], label='control')
    #共享一个画布
    ax = kmf.plot(ax=ax)
    
    control_median_confidence_interval_ = median_survival_times(kmf.confidence_interval_)
    print("未带有miR-137病毒存活50%对应的存活时间95%置信区间:'\n'", control_median_confidence_interval_)
    

    在这里插入图片描述
    可以看到,带有miR-137病毒的生存曲线在control组下方。说明其平均存活时间明显小于control组。同时带有miR-137病毒存活50%对应的存活时间95%置信区间为[19,29],对应的control组为[56,60]。差异较大,这个方法可以应用在分析用户流失等场景,比如我们对一组人群实行了一些防止流行活动,我们可以通过此种方式分析我们活动是否有效。

    二、Cox回归

    通常存活时间与多种因素都存在关联,因此我们的面临的数据是多维的。下面使用一个更复杂的数据集。

    from lifelines.datasets import load_regression_dataset
    from lifelines import CoxPHFitter
    
    regression_dataset = load_regression_dataset()
    
    print(regression_dataset.head())
    print(regression_dataset['E'].value_counts())
    

    在这里插入图片描述
    其中T代表min(T, C),其中T为死亡时间,C为观测截止时间。E代表是否观察到“死亡”,1代表观测到了,0代表未观测到,即生存分析中的**“删失”**数据,删失数据共11个。var1,var2,var3代表了我们关系的变量,可以是是否为实验组的虚拟变量,可以是一个用户的渠道路径,也可以是用户自身的属性

    我们利用此数据进行Cox回归

    cph = CoxPHFitter()
    cph.fit(regression_dataset, 'T', event_col='E')
    cph.print_summary()
    

    在这里插入图片描述
    结果分析:从结果来看,我们认为var1和var3在5%的显著性水平下是显著的。认为var1水平越高,用户的风险函数值越大,即存活时间越短(cox回归是对风险函数建模,这与死亡加速模型刚好相反,死亡加速模型是对存活时间建模,两个模型的参数符号相反)。同理,var3水平越高,用户的风险函数值越大。

    我们看到结果中第二列为exp(coef),我们还可以利用这个数字代替RR值,带入PAF的计算公式进行归因分析。请参考我的另一篇博客数据分析系列:归因分析原理、案例和python代码
    在这里插入图片描述

    展开全文
  • R语言生存分析生成仿真数据构建COX回归分析模型并计算C-index 参考:R语言实战 参考:R语言统计入门 参考:R语言机器学习 参考:从零开始学 R 语言,带你玩转医学统计学 ...

    R语言生存分析生成仿真数据构建COX回归分析模型并计算C-index

    参考:R语言实战

    参考:R语言统计入门

    参考:R语言机器学习

    参考:从零开始学 R 语言,带你玩转医学统计学

    展开全文
  • 用R语言进行Cox回归生存分析

    万次阅读 2019-06-29 20:13:00
    欢迎关注”生信修炼手册”!在生存分析中,探究生存时间的影响因素是一个重要的研究内容,通过KM和log-rank test检验的方法,只能够处理单个二分类因素的生存数据。当想探究多个因素或...

    欢迎关注”生信修炼手册”!

    在生存分析中,探究生存时间的影响因素是一个重要的研究内容,通过KM和log-rank test检验的方法,只能够处理单个二分类因素的生存数据。当想探究多个因素或者离散型变量对生存时间的影响时,我们就需要借助于cox回归方法。cox回归的全称如下

    cox proportional hazards regression model

    称之为cox等比例风险回归模型, 对应的公式如下

    将上述公式进行log转换,可以变换成以下格式

    这个公式和逻辑回归的公式就非常的接近了, cox回归其实是在线性回归和逻辑回归的基础上延伸而出的一种方法,将影响生存的多个因素当做回归方程中的自变量,将风险函数h(t)和h0(t)的比值当做因变量。

    每个自变量对应的系数,如b1,b2这类的 ,称之为偏回归系数。当偏回归系数大于0时, 随着该自变量值的增加,风险增加,生存时间减少,当系数小于0时,则相反;等于0时,没有影响。

    将exp(b)称之为hazard ratio, 简称HR。将偏回归系数转换成HR, 对应的关系如下

    1. HR = 1, 没有影响

    2. HR > 1,   风险增加

    3. HR < 1,   风险降低

    在临床上,将HR>1的自变量称之为坏的预后因子,将HR<1的自变量称之为好的预后因子。通过survivalR包,可以轻松的实现cox回归分析,步骤如下

    1. 准备生存数据

    对于每个个体而言,其生存数据会出现两种情况,第一种是观测到生存时间,通常用1表示,第二种则是删失。通常用0表示。survival自带了一个测试数据lung, 内容如下所示

    每一行代表一个样本,time表示生存时间,status表示删失情况,这里只有1和2两种取值,默认排序后的第一个level对应的值为删失,这里则为1表示删失。其他列为样本对应的性别,年龄等基本信息。

    2. cox回归分析

    代码如下

    可以看到,cox回归的适用范围更广,以最后一个回归分析为例,结果如下所示

    首先查看likehood ration test , wald test, logrank test三种检验方法的p值,p值小于0.05, 这个回归方程是统计学显著的。说明在这么多自变量中包含了对生存时间具有影响的因素。

    然后查看每个自变量的p值,可以看到sex和ph.ecog这两个变量的p值小于0.05,而age的p值大于0.05, 说明sex和ph,ecog这两个变量对生存时间的影响更加显著。

    最后查看自变量的coef等指标,coef就是偏回归系数,exp(coef)就是HR。sex的HR值小于1,该数据集中1=male, 2= female, HR表示的是数值大的风险/数值小的风险,在这里就是female/ male, 说明female死亡的相对较低。HR的值约为0.58, 说明female的死亡风险只占了male的58%, 相比male, female的死亡风险降低了42%。ph.ecog的HR值大于1, 说明随着ph.ecog数值的增加,死亡风险会增加。

    3. 结果可视化

    sex为例, 可视化的代码如下

    效果图如下

    ·end·

    —如果喜欢,快分享给你的朋友们吧—

    扫描关注微信号,更多精彩内容等着你!

    展开全文
  • 转自个人微信公众号【Memo_Cleon】的统计学习笔记:生存分析Cox回归。随访资料的生存分析是一个很大的题目。从分析的因素上看,有单因素分析和多因素分析。正如“连续资料的单因素分析常用t检验、方差分析,对应的...
  • R语言生存分析COX回归分析实战:以乳腺癌数据为例 目录 R语言生存分析COX回归分析实战:以乳腺癌数据为例 #案例数据 #Cox回归 #案例数据 #加载包 library("pec") library("prodlim") #想...
  • SPSS详细操作:生存资料的Cox回归分析 一、问题与数据 某研究者拟观察某新药的抗肿瘤效果,将70名肺癌患者随机分为两组,分别采用该新药和常规药物进行治疗,观察两组肺癌患者的生存情况,共随访2年。研究以死亡为...
  • Cox回归+Cox比例风险回归模型

    千次阅读 2021-05-16 10:34:21
    Cox回归+Cox比例风险回归模型 COX回归模型,又称“比例风险回归模型(proportional hazards model,简称Cox模型)”,是由英国统计学家D.R.Cox(1972)年提出的一种半参数回归模型。该模型以生存结局和生存时间为应...
  • 生存分析之R包survival的单变量和多变量Cox回归续前文生存分析(Survival Analysis)。在前文初步简介了生存分析的概念,以及展示了一种生存分析模型Kaplan-Meier的使用。Kaplan-Meier是一种非参数的单变量分析方法,...
  • Cox比例风险回归模型单因素多因素生存分析

    万次阅读 多人点赞 2020-03-13 12:00:20
    Cox比例风险回归模型单因素多因素生存分析 欢迎使用Markdown编辑器 ...Cox比例风险回归模型,简称Cox回归模型。该模型又英国统计学家D.R.Cox于1972年提出,主要用于肿瘤和其他慢性病的预后分析,也可用于...
  • 2) Cox回归:多因素 3)随机森林因子(根据cox回归结果) 4)nomogram ( 根据cox回归结果,建立了中位生存时间,1年5年生存率的概率计算) -------------------????????‍♀️本文只有干货,非常干!????----------...
  • Cox风险回归分析

    千次阅读 2017-04-24 20:32:08
    3.log-rank只是对单因素进行了检验,建立回归模型,考虑多因素的情况 (中途换了一组数据--恶性肿瘤的预后) 从结果中可以看出,X--(4,5,6)有显著性,RR值即为exp(coef),ceof即为β i值 4,library...
  • Cox回归模型又称为比例风险回归模型,该模型以生存结局和生存时间作为因变量,进而分析众多因素对生存期的影响,是一个典型的多因素分析方法。 SPSS中就带有Cox回归模型方法,本节将带大家进行深入的了解与探索,话...
  • 以 “survival”包自带的晚期肺癌数据集 lung 为例,演示cox回归及可视化、模型评价与选择及变量筛选。 library(DescTools) library(survival) library(survminer) library(mice) #载入生存资料以survival包自带...
  • 多变量COX回归 R语言

    2021-10-08 15:53:57
    library("survival") library("survminer") res <- coxph(Surv(Survival_time, Death)~cluster_0 + cluster_1 + cluster_2 + cluster_3 + cluster_4 + cluster_5 + cluster_6 + cluster_7 + cluster_8 + cluster_...
  • 基于Cox比例风险回归模型、LASSO与生存树的ER+乳腺癌预后,王莉,张娟,【目的】传统的的分期方法尚不足以预测雌激素受体阳性(ER+)乳腺癌的治疗结果。本文筛选了与ER+乳腺癌患者复发密切相关的基因,并
  • 实现图中描述的cox分析和lasso回归, 附代码和注释![图片说明](https://img-ask.csdn.net/upload/201909/07/1567833588_655859.jpg)
  • 生存分析(Survival Analysis)、Cox风险比例回归模型(Cox proportional hazards model)及C-index 1. 生存分析 生存分析指的是一系列用来探究所感兴趣的事件的发生的时间的统计方法。常见的有1)癌症患者生存时间...
  • Cox回归由于其复杂性和相对较少应用(除了临床研究),很多统计学习者很少接触过和应用Cox回归,对其原理与应用也不甚了解,一般医学教科书一写到Cox回归,马上会涉及到几个令人生畏的名称:比如半参数回归、风险...
  • R语言生存分析COX回归分析实战:两种治疗方法发生肾功能损害的情况 目录 R语言生存分析COX回归分析实战:两种治疗方法发生肾功能损害的情况 #案例分析 #样例数据 #Cox回归 #案例分析 #样例数据 ...
  • http://www.iikx.com/news/statistics/6460.html
  • Forest plot(森林图) | Cox生存分析可视化

    千次阅读 多人点赞 2019-10-08 22:49:28
    更多关于R语言,ggplot2绘图,生信分析的内容,敬...Meta分析的结果使用森林图进行可视化展示很常见,其实COX生存分析也能用森林图展示。 ​ 之前分享过绘制KM曲线R|生存分析(1),诺莫图展示COX结果Nomogram(诺莫...
  • 手把手教你使用stata进行cox回归并制作列线图

    千次阅读 热门讨论 2021-01-20 15:54:03
    COX回归是临床常用的一种分析方法,多用于肿瘤、血液等疾病患者,其考虑到了临床随访删失情况,多用与生存分析。前面我们已经多次讲过使用SPSS、和R语言进行COX回归,今天继续来讲讲stata,它相对其他两个软件的优势...
  • https://blog.csdn.net/RicheyLee/article/details/51067339?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant....
  • #glmnet包含有线性回归,逻辑回归,泊松计数模型,cox回归模型,多分类逻辑回归多响应线性回归 #阿法系数=0是岭回归,阿法系数=1,是lasso回归 ############################################################ data...
  • 关于cox单因素与多因素分析

    千次阅读 2021-07-14 09:04:23
    #写在前面 说来惭愧,跟师姐聊天的时候,我...当被问到为什么要做多因素时,我想了一下说是为了去除共线性的问题,也就是a再做单因素分析时可能为显著,但是是其他变量带来的协同效应,所以再进入多因素cox回归后,如果
  • 从TCGA上下载数据库和临床数据之后,往往需要进行COX分析,一般的分析思路是先进行单变量,在进行多变量的分析。然而,当关注的基因比较多是,手动输入就会比较麻烦。接下来介绍一种利用循环的方法,快速的对多个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,307
精华内容 922
关键字:

cox回归分析