原文链接:http://tecdat.cn/?p=23869

原文出处:拓端数据部落公众号

视频:R语言生存分析Survival analysis原理与晚期肺癌患者分析案例

R语言生存分析Survival analysis原理与晚期肺癌患者分析案例

1 引言

在比较性的纵向临床研究中,主要终点往往是发生特定临床事件的时间,如死亡、心衰住院、肿瘤进展等。风险比例估计值几乎被常规用于量化治疗差异。然而,当基础模型假设(即比例危害假设)被违反时,这种基于模型的组间总结的临床意义可能相当难以解释,而且很难保证模型的建立在经验上的正确。例如,拟合度检验的非显著性结果并不一定意味着风险比例假设是 "正确的"。基于限制性平均生存时间(RMST)的组间总结指标是风险比例或其他基于模型的措施的有用替代方法。本文说明了如何使用该包中的函数来比较两组限制平均生存时间。

2 样本数据

在这个文章中,我们使用了梅奥诊所进行的原发性胆汁性肝硬化(pbc)研究中的部分数据,该研究包括在R语言的生存包中。

> library(survival)
> ?pbc

生存包中的原始数据由418名患者的数据组成,其中包括参加了随机临床试验的患者和没有参加的患者。在下面的说明中,我们只使用了312个参加了随机试验的病例(158个病例在Dpenicillamine组,154个病例在安慰剂组)。从原始数据文件中选择子集。


> head(D[,1:3])

这里,时间是指从登记到死亡或最后已知活着的年数,状态是事件的指标(1:死亡,0:审查),臂膀是治疗分配指标(1:Dpenicillamin,0:安慰剂)。下面是每个实验组的死亡时间的卡普兰-梅尔(KM)估计。

3 限制平均生存时间(RMST)和限制平均损失时间(RMTL

RMST被定义为生存函数曲线下的面积,直到一个时间τ(< ∞)。

其中S(t)是所关注的时间-事件变量的生存函数。对RMST的解释是:"当我们对患者进行τ的随访时,患者平均会存活μτ",这是对删减的生存数据的相当直接和有临床意义的总结。如果没有删减的观察值,我们可以使用平均生存时间

而不是μτ。对μτ的一个自然估计是

其中Sˆ(t)是S(t)的KM估计。ˆµτ的标准误差也是用分析法计算的;详细的公式在[3]中给出。请注意,即使在重度删减的情况下,μτ也是可以估计的。另一方面,尽管中位生存时间S-1(0.5)也是生存时间分布的一个稳健总结,但由于严重删减或罕见事件,当KM曲线没有达到0.5时,它变得不可估计。

RMTL被定义为截止到某一时间τ的生存函数曲线 "上方 "的面积。

在下图中,粉红色和橙色的区域分别是D-青霉胺组的RMST和RMTL估计值,当τ为10年时。结果显示,在10年的随访中,D-青霉胺组的平均生存时间为7.28年。换句话说,在10年的随访中,接受D-青霉胺治疗的患者平均减少2.72年。

3.1 未经调整的分析及其实施

让μτ(1)和μτ(0)分别表示治疗组1和0的RMST。现在,我们用RMST或RMTL来比较这两条生存曲线。具体来说,我们考虑用以下三种措施来进行组间对比。

1. RMST的差异

2. RMST的比值

3. RMTL的比率

这些估计是通过简单地用它们的经验对应(即分别为µτ(1)和µτ(0))来取代µτ(1)和µτ(0))。对于比率度量的推断,我们使用delta方法来计算标准误差。具体来说,我们考虑log{µˆτ(1)}和log{µˆτ(0)},并计算log-RMST的标准误差。然后,我们计算RMST的对数比率的置信区间,并将其转换回原始比率尺度。下面展示了如何实现这些分析。

> time=D$time
> status=D$status
> arm=D$arm

第一个参数(time)是时间到事件的向量变量。第二个参数(status)也是一个向量变量,其长度与时间相同,每个元素取1(如果有事件)或0(如果没有事件)。第三个参数(arm)是一个向量变量,表示每个受试者的指定实验;这个向量的元素取1(如果积极实验组)或0(如果控制组)。第四个参数(tau)是一个标量值,用于指定RMST计算中的截断时间点τ。请注意,τ需要小于两组中每组的最大观察时间的最小值(我们称其为最大τ)。

尽管程序代码允许用户选择一个比默认τ大的τ(如果它小于最大的τ),但我们总是确认,在每组指定的τ下,风险集的规模足够大,来确保KM估计的稳定性。下面是指定τ=10(年)时的pbc例子的输出。rmst2函数返回每组的RMST和RMTL以及上述组间对比测量的结果。

> print(obj)

在本例中,RMST的差异(输出中 "组间对比 "部分的第一行)为-0.137年。该点估计表明,在对病人进行10年的跟踪调查时,接受积极治疗的病人比安慰剂组的病人平均生存时间短0.137年。虽然没有观察到统计学意义(P=0.738),但0.95置信区间(-0.665至0.939)在0附近相对紧密,表明RMST的差异最多为+/-1年。可以生成一个图。下图是在运行上述未经调整的分析后生成的。

> plot(obj)

3.2 调整后的分析和应用

在大多数随机临床试验中,调整后的分析通常包括在计划分析中的一项。原因之一是对重要的预后因素进行调整可以提高检测组间差异的能力。另一个原因是我们有时会观察到一些基准预后因素的分布不平衡,即使随机化保证了两组的平均可比性。本文实现了Tian等人[4]提出的ANCOVA类型的调整分析,此外还有上一节中提出的未经调整的分析。设Y为限制性平均生存时间,设Z为治疗指标。同时,让X表示一个q维的基准协变量向量。田氏方法考虑以下回归模型

其中g(-)是一个给定的平滑且严格增加的链接函数,(α, β, γ0 )是一个(q + 2)维的未知参数向量。在Tian等人[4]之前,Andersen等人[5]也研究了这个回归模型,并提出了一个未知模型参数的推断程序,使用伪值技术来处理删减的观测值。与Andersen的方法[5, 6, 7]相比,Tian的方法[4]利用反概率删减加权技术来处理删减的观测值。如下图所示,对于实现Tian的RMST的调整分析,唯一的区别是用户是否向函数传递协变量数据。下面是一个执行调整后分析的示例代码。

 covariates=x

其中covariates是基准特征数据的向量/矩阵的参数,x。为了说明问题,让我们试试以下三个基准变量,在pbc数据中,作为调整的协变量。

> x=D[,c(4,6,7)]
> head(x)

rmst2函数将数据拟合到三个对比度量(即RMST的差异、RMST的比率和RMTL的比率)中的每个模型。对于差异度量,上述模型中的链接函数g(-)是链接。对于比率指标,采用的是对数链接。具体来说,通过这个pbc例子,我们现在试图将数据拟合到以下回归模型中。

1. RMST的差异

2. RMST的比值

3. RMTL的比率

下面是rmst2对调整后的分析所返回的输出。

输出的第一块是调整后的实验效果的总结。随后,对三个模型中的每一个都进行了总结。

4 结论

风险比的问题在其他地方已经讨论过了,也提出了许多替代方法,但风险比的方法仍然被常规使用。受限的平均生存时间是一个稳健的、临床上可解释的生存时间分布的总结方法。与中位生存时间不同,即使在严重的删减情况下,它也是可以估计的。关于限制性平均生存时间,有相当多的方法学研究可以替代风险比方法。然而,这些方法在实践中似乎很少被使用。缺乏用户友好的、有明确例子的程序将是一个新的替代方法在实践中使用的主要障碍。我们希望这个文章有助于临床研究人员尝试超越舒适区--风险比。

参考文献

[1] Hernan, M. A. ´ (2010). The hazards of hazard ratios. Epidemiology (Cambridge, Mass) 21, 13–15.

[2] Uno, H., Claggett, B., Tian, L., Inoue, E., Gallo, P., Miyata, T., Schrag, D., Takeuchi, M., Uyama, Y., Zhao, L., Skali, H., Solomon, S., Jacobus, S., Hughes, M., Packer, M. & Wei, L.-J. (2014). Moving beyond the hazard ratio in quantifying the between-group difference in survival analysis. Journal of clinical oncology : official journal of the American Society of Clinical Oncology 32, 2380–2385.

[3] Miller, R. G. (1981). Survival Analysis. Wiley.


最受欢迎的见解

1.R语言绘制生存曲线估计|生存分析|如何R作生存曲线图

2.R语言生存分析可视化分析

3.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

4.r语言中使用Bioconductor 分析芯片数据

5.R语言生存分析数据分析可视化案例

6.r语言ggplot2误差棒图快速指南

7.R 语言绘制功能富集泡泡图

8.R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)

9.R语言中的生存分析Survival analysis晚期肺癌患者4例

拓端tecdat|R语言使用限制平均生存时间RMST比较两条生存曲线分析肝硬化患者相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  3. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  4. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  5. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  6. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  7. R语言使用anova函数进行方差分析比较两个回归分析模型的差异、从而决定是否删除某些预测变量(Comparing nested models using the anova function)

    R语言使用anova函数进行方差分析比较两个回归分析模型的差异.从而决定是否删除某些预测变量(Comparing nested models using the anova function) 目录

  8. R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的

    R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集.非线性:基函数展开和样条分析.你简单分析的不重要特征,可能只是线性不显著.而非线性是显著的 目录

  9. R语言distRhumb函数计算距离实战(两个地理点之间的Rhumb距离)

    R语言distRhumb函数计算距离实战(两个地理点之间的Rhumb距离) 目录 R语言distRhumb函数计算距离实战(两个地理点之间的Rhumb距离) #导入geosphere包

  10. R语言可视化回归模型的残差直方图并进行残差分析(Histogram of Residuals)

    R语言可视化回归模型的残差直方图并进行残差分析(Histogram of Residuals) 目录 R语言可视化回归模型的残差

最新文章

  1. linux文件系统的链接,用户指南:Linux文件系统的链接
  2. 一件代发系统php网站源码_靠谱礼品代发平台网站一件代发(0.5元)
  3. 单点登陆框架CAS的研究
  4. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
  5. linux编程课后作业,Unix/Linux 编程实践教程第三章习题
  6. 十一、加权线性回归案例:预测鲍鱼的年龄
  7. java thread lambda_Java8新特性--Lambda表达式
  8. 图谱论(Spectral Graph Theory)基础
  9. python如何截长图_python+selenium实现长截图
  10. 《通信原理与应用》小结
  11. 按键精灵手机助手学习过程中的教程集锦收藏
  12. 一位仁兄对于项目管理的精辟见解
  13. 移动通讯技术--3G
  14. 运筹说 第19期 | 线性规划经典例题讲解
  15. 学习了pr后的收获_学习后的感想和收获
  16. Android Hook框架adbi的分析(1)---注入工具hijack
  17. 什么是系统漏洞,如何处理?
  18. redis--ServiceStack
  19. Spring Cloud Loadbalancer
  20. 微软携手联想来酷试水渠道共享,打造创新销售通路

热门文章

  1. C++ 中使用引用类型的成员变量
  2. 系统中了莫名奇怪的毒,杀毒软件不起作用了,怎么办
  3. C# 用装饰模式实现蝌蚪变青蛙的过程-续
  4. java 通过System.getProperties()获取系统参数
  5. Invisible Perturbations: Physical Adversarial Examples Exploiting the Rolling Shutter Effect 论文解读
  6. Kinetics-400数据集介绍
  7. 数据--第47课 - 查找的概念
  8. 数据--第21课-递归课后练习
  9. cesium之地图显示坐标、比例尺、海拔高度效果篇
  10. PHP Smarty增删改查(考试题库)