R语言开发之生存分析了解下

生存分析涉及预测特定事件发生的时间,它也被称为失败时间分析或分析死亡时间。

例如预测癌症患者的生存天数或预测机械系统出现故障的时间。

在R中的软件包survival用于进行生存分析,该包中含有Surv()函数,它将输入数据作为R公式,并在所选变量中创建一个生存对象进行分析,然后使用survfit()函数来创建分析图,语法如下:

Surv(time,event)
survfit(formula)

参数描述如下:

  • time - 是直到事件发生的后续时间。
  • event - 表示预期事件发生的状态。
  • formula - 是预测变量之间的关系。

我们接下来使用已经安装好的survival包中存在的名为“pbc”的数据集,它描述了肝脏原发性胆汁性肝硬化(PBC)患者的生存数据。

在数据集中存在的许多列中,我们主要关注"time""status"字段,时间(time)表示在患者接受肝脏移植或患者死亡的患者之间登记患者和事件之前的天数。来看下初始数据:

setwd("D:/r_file")
# 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()函数应用于上述数据集,并创建一个将显示趋势图,如下:

setwd("D:/r_file")
# Load the library.
library("survival")

# Create the survival object. 
survfit(Surv(pbc$time,pbc$status == 2)~1)

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

# Plot the graph. 
plot(survfit(Surv(pbc$time,pbc$status == 2)~1))

# Save the file.
dev.off()

输出的数据如下:

Call: survfit(formula = Surv(pbc$time, pbc$status == 2) ~ 1)

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

产生的图片如下:

R语言开发之生存分析了解下_第1张图片

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

你可能感兴趣的:(原创,R语言开发基础)