通过组提取Survfit中的生存概率

时间:2014-10-29 21:42:52

标签: r survival-analysis

我是R的生存分析和生存的新手。我想在一个表格中提取特定时间段(诊断后0,10,30,30年)的4组(疾病)的生存概率。这是设置:

fit <- survfit((time=time,event=death)~group)

surv.prob <- summary(fit,time=c(0,10,20,30))$surv

surv.prob包含16个概率,即在上面列出的4个不同时间段估计的4组的生存概率。我想创建一个这样的表:

Group  time.period  prob

1       0        0.9

1       10       0.8

1       20       0.7

1       30       0.6

等所有4组。

有关如何轻松创建这样的表格的任何建议吗?我将循环使用此命令来使用不同的协变量组合来估计结果。我看了幸存者的$ table,但这似乎只提供事件,中位数等。感谢你的任何帮助。

SK

1 个答案:

答案 0 :(得分:5)

我可以使用包含'{1}}函数的包'rms'轻松地完成它:

survest

关于包存活,您可以在Therneau和Grambsch的书中找到一个有用的例子,但是这仍需要代码在特定时间输出值。

install.packages(rms, dependencies=TRUE);require(rms)
cfit <- cph(Surv(time, status) ~ x, data = aml, surv=TRUE)
survest(cfit, newdata=expand.grid(x=levels(aml$x)) , 
                                 times=seq(0,50,by=10)
          )$surv

   0        10        20        30        40         50
1  1 0.8690765 0.7760368 0.6254876 0.4735880 0.21132505
2  1 0.7043047 0.5307801 0.3096943 0.1545671 0.02059005
Warning message:
In survest.cph(cfit, newdata = expand.grid(x = levels(aml$x)), times = seq(0,  :
  S.E. and confidence intervals are approximate except at predictor means.
Use cph(...,x=TRUE,y=TRUE) (and don't use linear.predictors=) for better estimates.

enter image description here

 fit <- coxph(Surv(time, status) ~ x, data = aml) 
 temp=data.frame(x=levels(aml$x))
 expfit <- survfit(fit, temp)
 plot(expfit, xscale=365.25, ylab="Expected")