1

我不确定......我认为这不可能那么困难,但我无法解决。如果你运行:

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

您会看到生存曲线及其 95% 置信区间。id 不显示显示上下 95% CI 的两条线,而是喜欢对上下 95% 边界之间的区域进行阴影处理。

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

> 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 区域?

4

2 回答 2

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"))
于 2013-09-03T05:52:40.693 回答
0

我开发了一个函数来绘制生存曲线中的阴影置信区间。你可以在这里找到它:用 ggplot2 在 R 中绘制生存曲线

也许你会发现它很有用。

于 2014-04-13T12:42:01.163 回答