簡體   English   中英

從Cox PH模型預測概率

[英]Predict probability from Cox PH model

我正在嘗試使用Cox模型來預測一段時間后發生故障的概率(稱為停止)3。

bladder1 <- bladder[bladder$enum < 5, ] 
coxmodel = coxph(Surv(stop, event) ~ (rx + size + number)  + 
        cluster(id), bladder1)
range(predict(coxmodel, bladder1, type = "lp"))
range(predict(coxmodel, bladder1, type = "risk"))
range(predict(coxmodel, bladder1, type = "terms"))
range(predict(coxmodel, bladder1, type = "expected"))

但是,預測函數的輸出都不在0-1范圍內。 有什么功能或如何使用lp預測和基線危害功能來計算概率?

請閱讀幫助頁面上的predict.coxph 這些都不應該是概率。 一組特定的協變量的線性預測因子是相對於假設(且很可能不存在)情況的對數風險比,其中所有預測因子均值。 “預期”最接近概率,因為它是事件的預計數量,但是它需要指定時間,然后在觀察開始時將其除以處於風險中的數量。

對於該幫助頁面上提供的predict示例,您可以看到預測事件的總和接近實際數量:

> sum(predict(fit,type="expected"), na.rm=TRUE)
[1] 163

> sum(lung$status==2)
[1] 165

我懷疑您可能想使用survfit函數,因為事件的概率為生存的1概率。

?survfit.coxph

一個類似問題的代碼出現在這里: 在R中的Cox回歸之后,將預測的危害比列添加到數據框中

由於您建議使用膀胱1數據集,因此這將是指定時間= 5的代碼

 summary(survfit(coxmodel), time=5)
#------------------
Call: survfit(formula = coxmodel)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    5    302      26    0.928  0.0141        0.901        0.956

這將作為列表返回,而生存預測作為名為$surv的列表元素:

> str(summary(survfit(coxmodel), time=5))
List of 14
 $ n       : int 340
 $ time    : num 5
 $ n.risk  : num 302
 $ n.event : num 26
 $ conf.int: num 0.95
 $ type    : chr "right"
 $ table   : Named num [1:7] 340 340 340 112 NA 51 NA
  ..- attr(*, "names")= chr [1:7] "records" "n.max" "n.start" "events" ...
 $ n.censor: num 19
 $ surv    : num 0.928
 $ std.err : num 0.0141
 $ lower   : num 0.901
 $ upper   : num 0.956
 $ cumhaz  : num 0.0744
 $ call    : language survfit(formula = coxmodel)
 - attr(*, "class")= chr "summary.survfit"
> summary(survfit(coxmodel), time=5)$surv
[1] 0.9282944

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM