R语言 生存分析

R语言 生存分析

R编程语言中的生存分析 涉及到对特定时间内的事件的预测。它处理的是一个有趣的事件在特定时间内的发生,如果失败,就会产生删减的观察值,即不完整的观察值。

R编程语言中的生存分析

生物科学是生存分析最重要的应用,我们可以预测生物体的时间,例如,它们何时繁殖到大小等。

用于进行生存分析的方法

有两种方法可用于在R编程语言中进行生存分析。

  • Kaplan-Meier方法
  • 考克斯比例危险模型

卡普兰-梅尔法

卡普兰-梅尔法在生存分布中使用卡普兰-梅尔估计器,用于截断的或删减的数据。这是一个非参数统计,允许我们估计生存函数,因此不基于基础概率分布。卡普兰-梅尔估计是基于治疗后存活一定时间的病人总数中的病人数量(每个病人为一排数据)。(这就是事件)。

我们用公式表示Kaplan-Meier函数。

R语言中的生存分析

这里 S(t) 代表生命长于 ti 的概率(至少有一个事件发生), di 代表在时间 ti 发生的事件(如死亡)的数量, ni 代表存活到时间 ti 的个体数量 。

例子

我们将使用生存包进行分析。使用预装在survival包中的 肺部 数据集,该数据集包含228名来自中北部癌症治疗组的晚期肺癌患者的数据,基于10个特征。该数据集包含缺失值,因此,在建立模型之前,假定在你身边做了缺失值处理。

# Installing package
install.packages("survival")
 
# Loading package
library(survival)
 
# Dataset information
?lung
 
# Fitting the survival model
Survival_Function = survfit(Surv(lungtime,
                                 lungstatus == 2)~1)
Survival_Function
 
# Plotting the function
plot(Survival_Function)

在这里,我们对 “时间 “和 “状态 “感兴趣,因为它们在分析中起着重要作用。时间代表病人的生存时间。由于病人存活,我们将考虑他们的状态为死亡或非死亡(删减)。

Surv() 函数将两个时间和状态作为输入,并创建一个对象,作为 survfir() 函数的输入。我们在 survfit() 函数中传递~1,以确保我们告诉函数在生存对象的基础上拟合模型并有一个中断。

survfit() 创建生存曲线,并打印出数值的数量、事件的数量(患癌症的人)、中位时间和95%置信区间。该图给出了以下输出。

R语言中的生存分析

这里,X轴指定 “天数 “,Y轴指定 “生存概率 “。虚线是上置信区间和下置信区间。

我们还有一个置信区间,它显示了预期的误差范围,即在存活200天的情况下,置信区间上限达到0.76或76%,然后下降到 0. 60或60%。

考克斯比例危险模型

这是一个衡量瞬时死亡风险的回归模型,比Kaplan-Meier估计法更难说明。它由危险函数 h(t) 组成,描述了到某一特定时间 t 的事件或危险的概率 h (如生存) 。 危险函数考虑了协变量(回归中的独立变量)来比较病人组的生存率。
它不假设一个基本的概率分布,但它假设我们所比较的病人组的危险随时间变化是恒定的,因此它被称为 ” 比例危险模型 “。

例子

我们将使用存活率软件包进行分析。使用预装在生存包中的 肺部 数据集,该数据集包含228名来自中北部癌症治疗组的晚期肺癌患者的数据,基于10个特征。该数据集包含缺失值,因此,在建立模型之前,假定在你身边做了缺失值处理。我们将使用cox比例危险函数 coxph() 来建立模型。

# Installing package
install.packages("survival")
 
# Loading package
library(survival)
 
# Dataset information
?lung
 
# Fitting the Cox model
Cox_mod <- coxph(Surv(lungtime,
                      lungstatus == 2)~., data = lung)
 
# Summarizing the model
summary(Cox_mod)
 
# Fitting survfit()
Cox <- survfit(Cox_mod)
 
# Plotting the function
plot(Cox)

在这里,我们对 “时间 “和 “状态 “感兴趣,因为它们在分析中起着重要作用。时间代表病人的生存时间。由于病人存活,我们将考虑他们的状态为死亡或非死亡(删减)。

Surv() 函数将两个时间和状态作为输入,并创建一个对象,作为 survfir() 函数的输入。我们在 survfit() 函数中传递~1,以确保我们告诉函数在生存对象的基础上拟合模型并有一个中断。

Cox_mod的输出与回归模型类似。有一些重要的特征,如年龄、性别、ph.ecog和体重损失。该图给出了以下输出。

R语言中的生存分析

这里,X轴指定 “天数”,Y轴指定 “生存概率 “。虚线是上置信区间和下置信区间。与Kaplan-Meier图相比,Cox图的初始值较高,高值较低,因为Cox图中的变量较多。

我们还有一个置信区间,它显示了预期的误差范围,即在存活200天的日子里,置信区间上限达到 0. 82或82% ,然后下降到 0. 70或70%。

注: Cox模型比Kaplan-Meier的结果更好,因为它的数据和特征最不稳定。Cox模型对于较低的数值也较高,反之亦然,即当时间增加时急剧下降。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程