如何计算粗略生存率的置信区间?

问题描述

我们假设我们有一个survfit对象,如下所示。

fit = survfit(Surv(data$time_12m,data$status_12m) ~ data$group)
fit

Call: survfit(formula = Surv(data$time_12m,data$status_12m) ~ data$group)

                   n events median 0.95LCL 0.95UCL
data$group=HF  10000   3534     NA      NA      NA
data$group=IGT    70     20     NA      NA      NA

fit 对象不显示CI。如何计算生存率的置信区间?应该使用哪个R软件包和代码?

解决方法

survfit的print结果按组给出了中位生存时间的保密间隔。我猜正在估计中位数时间的不适用值,因为您的小组没有足够的事件实际达到中位数生存率。您应该显示plot(fit)的输出,以查看我的猜测是否正确。

您可能会尝试绘制曲线,请注意plot.survfit函数确实具有围绕比例构建的置信区间选项:

plot(fit,conf.int=0.95,col=1:2)

请阅读?summary.survfit。这是通用summary函数的一类,程序包作者通常使用它们来传递参数估计值和置信区间。在那里,您将看到summary.survfit总结的不是“比率”,而是生存率的估计值。这些比例可以是中位数(在这种情况下,估计是在时间范围内),也可以是特定时间的估计(在这种情况下,估计是比例的。)

如果您确实想要利率,则可以使用针对该模型设计的功能,也许使用?survreg。比较在提供的数据集survreg上使用survfitovarian所获得的收益:

> reg.fit <- survreg( Surv(futime,fustat)~rx,data=ovarian)
> summary(reg.fit)

Call:
survreg(formula = Surv(futime,fustat) ~ rx,data = ovarian)
             Value Std. Error     z       p
(Intercept)  6.265      0.778  8.05 8.3e-16
rx           0.559      0.529  1.06    0.29
Log(scale)  -0.121      0.251 -0.48    0.63

Scale= 0.886 

Weibull distribution
Loglik(model)= -97.4   Loglik(intercept only)= -98
    Chisq= 1.18 on 1 degrees of freedom,p= 0.28 
Number of Newton-Raphson Iterations: 5 
n= 26 

#-------------

> fit <- survfit( Surv(futime,data=ovarian)
> summary(fit)
Call: survfit(formula = Surv(futime,data = ovarian)

                rx=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   59     13       1    0.923  0.0739        0.789        1.000
  115     12       1    0.846  0.1001        0.671        1.000
  156     11       1    0.769  0.1169        0.571        1.000
  268     10       1    0.692  0.1280        0.482        0.995
  329      9       1    0.615  0.1349        0.400        0.946
  431      8       1    0.538  0.1383        0.326        0.891
  638      5       1    0.431  0.1467        0.221        0.840

                rx=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
  353     13       1    0.923  0.0739        0.789        1.000
  365     12       1    0.846  0.1001        0.671        1.000
  464      9       1    0.752  0.1256        0.542        1.000
  475      8       1    0.658  0.1407        0.433        1.000
  563      7       1    0.564  0.1488        0.336        0.946

如果我使用“指数”而不是“ weibull”作为分布类型,可能会更容易。指数拟合具有一个估计的参数,并且更容易反变换以给出比率的估计。

注意:我回答了一个关于survfit的较早的问题,尽管请求是为了生存时间而不是比率。 Extract survival probabilities in Survfit by groups

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...