我有以下生存数据
library(survival)
data(pbc)
#model to be plotted and analyzed, convert time to years
fit <- survfit(Surv(time/365.25, status) ~ edema, data = pbc)
#visualize overall survival Kaplan-Meier curve
plot(fit)
这就是所得的Kaplan-Meier图的样子
我以这种方式进一步计算1年,2年,3年的生存率:
> summary(fit,times=c(1,2,3))
Call: survfit(formula = Surv(time/365.25, status) ~ edema, data = pbc)
232 observations deleted due to missingness
edema=0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 126 12 0.913 0.0240 0.867 0.961
2 112 12 0.825 0.0325 0.764 0.891
3 80 26 0.627 0.0420 0.550 0.714
edema=0.5
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 22 7 0.759 0.0795 0.618 0.932
2 17 5 0.586 0.0915 0.432 0.796
3 11 4 0.448 0.0923 0.299 0.671
edema=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 8 11 0.421 0.1133 0.2485 0.713
2 5 3 0.263 0.1010 0.1240 0.558
3 3 2 0.158 0.0837 0.0559 0.446
如您所见,结果输出显示了
edema
不同级别之间的95%置信区间,但没有实际的p值。不管置信区间是否重叠,我仍然对这些时间点的生存率是否存在显着差异还是很清楚的,但是我希望有确切的p值。我怎样才能做到这一点? 最佳答案
您的问题是“不同类别的水肿的x年生存率是否不同”。
例如,如果您对3年生存率感兴趣;您只需关注曲线的那部分(随访的前三年),如图所示。将3年后仍存活的患者的随访时间设置为3年(即此分析中的最长随访时间):pbc$time[pbc$time > 3*365.25] <- 3*365.25
。
使用数据包“survival”(分析中已经使用的相同软件包)中的coxph
计算此日志的对数秩检验,将为您提供P值,该值表明三组的三年生存率是否不同(在此示例中非常重要)。您也可以使用相同的模型来生成P值和危险比,以将水肿与特定原因的生存联系起来。
关于r - 比较特定时间点的生存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37714902/