多个新数据点在R中使用survfit函数的生存时间置信区间

多个新数据点在R中使用survfit函数的生存时间置信区间,r,prediction,confidence-interval,cox-regression,R,Prediction,Confidence Interval,Cox Regression,我认为解决这个问题的方法可能很简单,但我想不出来 我已将考克斯比例风险模型拟合到数据集。我想对新数据点进行绝对风险预测,就像在风险预测模型中一样。例如,P(T>T),其中T是直到感兴趣事件发生的时间 从数学上我理解这个过程。必须首先估计累积危险函数,可在此处找到一个公式示例: 生存函数是累积危险函数的简单函数,S(t)=exp⁡(−H(t)),公式可在此处找到: 在拟合cox比例风险模型(称为fit1)后,可以使用R中的survfit和summary函数对新数据点newdata: 这给出了p(T

我认为解决这个问题的方法可能很简单,但我想不出来

我已将考克斯比例风险模型拟合到数据集。我想对新数据点进行绝对风险预测,就像在风险预测模型中一样。例如,P(T>T),其中T是直到感兴趣事件发生的时间

从数学上我理解这个过程。必须首先估计累积危险函数,可在此处找到一个公式示例:

生存函数是累积危险函数的简单函数,S(t)=exp⁡(−H(t)),公式可在此处找到:

在拟合cox比例风险模型(称为fit1)后,可以使用R中的survfit和summary函数对新数据点newdata:

这给出了p(T>50)和以下输出:

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   50  14462    3216    0.835 0.00631        0.823        0.848
time n.risk n.event survival1 survival2
  50  14462    3216     0.835     0.822
至关重要的是,这给出了生存概率的上限和下限CI。现在,如果我想对多个数据点执行此操作,那么我定义:

newdata1 = data.frame(x1=0,x2=3,x3=5)
newdata2 = data.frame(x1=1,x2=1,x3=2)

newdata=rbind(newdata1,newdata2)

summary(survfit(fit1, newdata, type="kalb",se.fit = TRUE, conf.int = 0.95),times=50)
我得到以下输出:

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   50  14462    3216    0.835 0.00631        0.823        0.848
time n.risk n.event survival1 survival2
  50  14462    3216     0.835     0.822
它给出了每个患者的生存概率,但没有给出相关的置信区间。尽管conf.int=0.95要求置信区间,但仍存在这种情况


所以问题是:当获得多个数据点的预测生存概率时,如何获得生存概率的置信区间?

您看到的不完全是函数的输出,而是一个输出摘要,其中为
newdata
中的不同行数定义了不同的行为。 您可以从下面的示例中看到这一点

fit <- coxph(Surv(futime, fustat) ~ age, data=ovarian) 
(CI_summary1 <- summary(survfit(fit, newdata=data.frame(age=c(60)), type="aalen",se.fit = TRUE, conf.int = 0.95),times=50))
(CI_summary2 <- summary(survfit(fit, newdata=data.frame(age=c(60,70)), type="aalen",se.fit = TRUE, conf.int = 0.95),times=50))
str(CI_summary2)

fit str函数在这里特别有用,我看到它可以应用于所有的R对象。是的,它可能是除