开发手册 欢迎您!
软件开发者资料库

R - 生存分析

R生存分析 - 从简单和简单的步骤学习R编程语言,从基本到高级概念,包括R安装,语言基础,语法,文字,数据类型,变量,函数,循环,决策,模块,数组,列表,矢量,数学,矩阵,统计,图形,Excel数据,csv数据,概述,环境设置,运算符,字符串,因子,数据框,包,数据整形,二进制文件,XML文件,Json文件,Web数据,数据库,饼图图表,条形图,箱线图,直方图,线图,散点图,平均值,中位数和模式,线性回归,多元回归,Logistic回归,正态分布,二项分布,泊松回归,协方差分析,时间序列分析,非线性最小二乘,决策树,随机森林,生存分析,卡方检验。

生存分析涉及预测特定事件将要发生的时间.它也被称为失效时间分析或死亡时间分析.例如,预测患有癌症的人将存活的天数或预测机械系统失败的时间.

名为生存的R包是用来进行生存分析.该软件包包含函数 Surv(),它将输入数据作为R公式,并在所选变量中创建一个生存对象进行分析.然后我们使用函数 survfit()创建分析图.

安装包

install.packages("survival")

语法

创建的基本语法R中的生存分析是 :

Surv(time,event)survfit(formula)

以下是所用参数的说明及减号;

  • 时间是事件发生前的跟进时间.

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

  • 公式是预测变量之间的关系.

示例

我们将考虑上面安装的生存包中存在的名为"pbc"的数据集.它描述了患有原发性胆汁性肝硬化(PBC)的人的生存数据.在数据集中的许多列中,我们主要关注"时间"和"状态"字段.时间表示接受肝脏移植或患者死亡的患者在患者登记和事件发生之前的天数.

# Load the library.library("survival")# Print first few rows.print(head(pbc))

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

  id time status trt      age sex ascites hepato spiders edema bili chol1  1  400      2   1 58.76523   f       1      1       1   1.0 14.5  2612  2 4500      0   1 56.44627   f       0      1       1   0.0  1.1  3023  3 1012      2   1 70.07255   m       0      0       0   0.5  1.4  1764  4 1925      2   1 54.74059   f       0      1       1   0.5  1.8  2445  5 1504      1   2 38.10541   f       0      1       1   0.0  3.4  2796  6 2503      2   2 66.25873   f       0      1       0   0.0  0.8  248  albumin copper alk.phos    ast trig platelet protime stage1    2.60    156   1718.0 137.95  172      190    12.2     42    4.14     54   7394.8 113.52   88      221    10.6     33    3.48    210    516.0  96.10   55      151    12.0     44    2.54     64   6121.8  60.63   92      183    10.3     45    3.53    143    671.0 113.15   72      136    10.9     36    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(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生存分析

上图中的趋势有助于我们预测在特定天数结束时的生存概率.