2013-09-03 3 views
1

Im не уверен ... это не может быть так сложно, я думаю, но я не могу его обработать. Если вы запустите:survfit() Shade 95% доверительный интервал выживаемость

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 

Есть ли существующая функция затенять площадь CI 95%?

ответ

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

легко изменить это, чтобы я мог увидеть шаги? включая отметки для цензурированных данных? – Luc

+0

@Luc обновил мой ответ, чтобы получить шаговую линию –

0

Я разработал функцию построения затененных доверительных интервалов в кривых выживаемости. Вы можете найти его здесь: Plotting survival curves in R with ggplot2

Возможно, вы можете найти это полезным.

Смежные вопросы