survfit()阴影95%置信区间生存图

时间:2013-09-03 05:36:56

标签: r survival-analysis

我不确定......我觉得这很难,但是我无法解决这个问题。如果您运行:

library(survival)    
leukemia.surv <- survfit(Surv(time, status) ~ 1, data = aml) 
plot(leukemia.surv, lty = 2:3) 

您可以看到生存曲线及其95%置信区间。而不是显示两条显示上下95%CI的线,id喜欢遮蔽上下95%边界之间的区域。

这是否必须通过polygon()之类的东西来完成?所有坐标都可以在摘要中找到......

> summary(leukemia.surv)
Call: survfit(formula = Surv(time, status) ~ 1, data = aml)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
5     23       2   0.9130  0.0588       0.8049        1.000
8     21       2   0.8261  0.0790       0.6848        0.996
9     19       1   0.7826  0.0860       0.6310        0.971
12     18       1   0.7391  0.0916       0.5798        0.942
13     17       1   0.6957  0.0959       0.5309        0.912
18     14       1   0.6460  0.1011       0.4753        0.878
23     13       2   0.5466  0.1073       0.3721        0.803
27     11       1   0.4969  0.1084       0.3240        0.762
30      9       1   0.4417  0.1095       0.2717        0.718
31      8       1   0.3865  0.1089       0.2225        0.671
33      7       1   0.3313  0.1064       0.1765        0.622
34      6       1   0.2761  0.1020       0.1338        0.569
43      5       1   0.2208  0.0954       0.0947        0.515
45      4       1   0.1656  0.0860       0.0598        0.458
48      2       1   0.0828  0.0727       0.0148        0.462

是否存在遮蔽95%CI区域的功能?

2 个答案:

答案 0 :(得分:4)

您可以使用summary()中的数据制作自己的情节,其置信区间为多边形。

首先,将summary()保存为对象。绘图数据位于变量timesurvupperlower

mod<-summary(leukemia.surv)

现在您可以使用函数plot()来定义绘图区域。然后使用polygon()绘图置信区间。在这里,您必须以相反的顺序提供x值和x值,对于y值,使用lower值和尊重upper值。使用函数lines()添加生存线。通过将参数type="s"添加到lines(),您将获得一行作为步骤。

with(mod,plot(time,surv,type="n",xlim=c(5,50),ylim=c(0,1)))
with(mod,polygon(c(time,rev(time)),c(lower,rev(upper)),
                 col = "grey75", border = FALSE))
with(mod,lines(time,surv,type="s"))

答案 1 :(得分:0)

我已经开发了一个函数来绘制生存曲线中的阴影置信区间。您可以在此处找到它:Plotting survival curves in R with ggplot2

也许你会发现它很有用。