如何获得R生存分析的发生率和95% CI?

kyks70gy  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(609)

我可以通过这种方式得到生存率和95% CI:

library(survival)
library(survminer)

lung
lung$survobj1=with(lung,Surv(time,status==2))
fit1 <- survfit(survobj1 ~ 1, data = lung, conf.type = "log-log")
summary(fit1,times = seq(0, 19) * 56)

如您所见,汇总返回生存率及其95% CI:

现在我想用类似的方法得到累积发生率及其95% CI,但我不知道如何从总结中得到。
我还尝试使用以下公式绘制累积发生率:

ggsurvplot(fit1,data=lung,conf.int = TRUE,fun="cumhaz")

但我不确定我是否在以正确的方式做。

xfb7svmp

xfb7svmp1#

要计算累积发生率,您通常会使用R中cmprsk包中的cuminc()函数,该函数可以处理竞争风险。生存分析通常不直接提供累积发生率,因为生存分析侧重于至事件发生时间数据和相应的生存函数,而累积发生率函数(CIF)是在存在竞争风险时使用的测量。
下面是一个如何使用cuminc()函数的示例:

library(cmprsk)
    
    fit2 <- cuminc(lung$time, lung$status)
    print(fit2)

但是,需要注意的是,cuminc()函数要求感兴趣的事件编码为“1”,竞争事件编码为“2”。因此,在使用状态变量之前,您可能需要重新编码它。
绘制CIF时,您可能希望使用cuminc()函数的绘图功能,而不是使用ggsurvplot()

plot(fit2, xlab = "Time", ylab = "Cumulative incidence", col = c("red", "blue"))
    legend("bottomright", legend = c("Event of interest", "Competing event"), col = c("red", "blue"), lty = 1)

cuminc()函数确实提供了方差估计值,可用于构建置信区间。它们存储在返回列表的var元素中。

monwx1rj

monwx1rj2#

谢谢Bora的建议。我进一步发现,package(tidycmprsk)更便于计算发生率的95% CI。

library(survival)
library(survminer)
library(tidycmprsk)
library(ggsurvfit)

data(lung)
lung$event="dead"
lung$event[which(lung$status==1)]="censor"
cuminc(Surv(time, factor(event)) ~ 1, lung) %>%
tidy_cuminc(times=seq(0,19)*56) # change to specific time point

相关问题