首页 文章

R中的格式用于生存分析的点预测

提问于
浏览
0

我对使用R的 survival 包执行简单预测的格式感到困惑

library(survival)
lung.surv <- survfit(Surv(time,status) ~ 1, data = lung)

所以拟合简单的指数回归(仅用于示例目的)是:

lung.reg <- survreg(Surv(time,status) ~ 1, data = lung, dist="exponential")

我如何预测时间百分比= 400?

当我使用以下内容时:

myPredict400 <- predict(lung.reg, newdata=data.frame(time=400), type="response")

我得到以下内容:

myPredict400
       1 
421.7758

我期待37%的东西,所以我错过了一些非常明显的东西

1 回答

  • 0

    这种生存函数的关键是要找到一个符合生存时间的经验分布 . 基本上,您将生存时间与概率联系起来 . 一旦你有了这个分布,你可以选择给定时间的存活率 .

    试试这个:

    library(survival)
    lung.reg <- survreg(Surv(time,status) ~ 1, data = lung)  # because you want a distribution
    
    pct <- 1:99/100  # this creates the empirical survival probabilities
    myPredict400 <- predict(lung.reg, newdata=data.frame(time=400),type='quantile', p=pct)
    
    indx = which(abs(myPredict400 - 400) == min(abs(myPredict400 - 400))) # find the closest survival time to 400
    print(1 - pct[indx]) # 0.39
    

    直接来自帮助文档,这是一个情节:

    matplot(myPredict400, 1-pct, xlab="Months", ylab="Survival", type='l', lty=c(1,2,2), col=1)
    

    enter image description here

    Edited

    你基本上将回归拟合到概率分布中(因此,100 ...中的1 ... 99) . 如果你使它变为100,那么预测的最后一个值是 inf ,因为第100百分位数的存活率是无限的 . 这就是 quantilepct 参数的作用 .

    例如,设置 pct = 1:999/1000 可以获得更精确的预测值( myPredict400 ) . 此外,如果将 pct 设置为某个值's not a proper probability (i.e. less than 0 or more than 1) you'将收到错误 . 我建议你玩这些值,看看它们如何影响你的生存率 .

相关问题