R语言 生存分析

R语言 生存分析

生存分析是用来预测特定事件发生的时间的分析方法。它也被称为失效时间分析或生存时间分析。例如,预测癌症患者存活的天数或者预测机械系统故障的时间等。

R包中的 survival 用于进行生存分析。该包中包含了函数 Surv() ,该函数将输入数据作为R公式,并在选择的变量中创建一个生存对象用于分析。然后,我们使用函数 survfit() 创建分析的图表。

安装包

install.packages("survival")

语法

在R中创建生存分析的基本语法如下:

Surv(time,event)
survfit(formula)

以下是使用的参数的说明:

  • time 是跟进时间,直到事件发生。

  • event 表示预期事件的发生状态。

  • formula 是预测变量之间的关系。

示例

我们将考虑上述安装的survival包中的数据集名为“pbc”。该数据集描述了肝脏原发性胆汁性肝硬化(PBC)患者的生存数据点。在数据集中的许多列中,我们主要关心“time”和“status”字段。时间表示患者登记和患者接受肝脏移植或患者去世之间的事件天数。

# Load the library.
library("survival")

# Print first few rows.
print(head(pbc))

当我们执行上面的代码时,它产生了以下的结果和图表 −

id time status trt      age sex ascites hepato spiders edema bili chol
1  1  400      2   1 58.76523   f       1      1       1   1.0 14.5  261
2  2 4500      0   1 56.44627   f       0      1       1   0.0  1.1  302
3  3 1012      2   1 70.07255   m       0      0       0   0.5  1.4  176
4  4 1925      2   1 54.74059   f       0      1       1   0.5  1.8  244
5  5 1504      1   2 38.10541   f       0      1       1   0.0  3.4  279
6  6 2503      2   2 66.25873   f       0      1       0   0.0  0.8  248
  albumin copper alk.phos    ast trig platelet protime stage
1    2.60    156   1718.0 137.95  172      190    12.2     4
2    4.14     54   7394.8 113.52   88      221    10.6     3
3    3.48    210    516.0  96.10   55      151    12.0     4
4    2.54     64   6121.8  60.63   92      183    10.3     4
5    3.53    143    671.0 113.15   72      136    10.9     3
6    3.98     50    944.0  93.00   63       NA    11.0     3

从上述数据中,我们考虑时间和状态进行分析。

应用Surv()和survfit()函数

现在我们开始应用 Surv() 函数到上述数据集,并创建一个显示趋势的图表。

# Load the library.
library("survival")

# Create the survival object. 
survfit(Surv(pbctime,pbcstatus == 2)~1)

# Give the chart file a name.
png(file = "survival.png")

# Plot the graph. 
plot(survfit(Surv(pbctime,pbcstatus == 2)~1))

# Save the file.
dev.off()

当我们执行上面的代码时,会产生以下结果和图表:

Call: survfit(formula = Surv(pbctime, pbcstatus == 2) ~ 1)

      n  events  median 0.95LCL 0.95UCL 
    418     161    3395    3090    3853

R语言 生存分析

以上图表中的趋势可以帮助我们预测在一定天数结束时的生存概率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程