我不确定......我觉得这很难,但是我无法解决这个问题。如果您运行:
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区域的功能?
答案 0 :(得分:4)
您可以使用summary()
中的数据制作自己的情节,其置信区间为多边形。
首先,将summary()
保存为对象。绘图数据位于变量time
,surv
,upper
和lower
。
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
也许你会发现它很有用。