Graf等人(1999)在一篇论文中提出了综合Brier评分(IBS),作为生存模型预测准确性的一个很好的衡量标准(参见例如overview paper by Wiering et al.,第23页)。
它已作为函数ipred
在包sbrier
中实现。然而,虽然brier分数定义显然适用于Cox比例风险模型,但我无法让sbrier
返回coxph
模型的Brier分数。
以下是设置的问题。
library(survival)
library(ipred)
data("DLBCL", package = "ipred")
#Fit coxph model
smod <- Surv(DLBCL$time, DLBCL$cens)
coxmod <- coxph(smod ~ IPI, data = DLBCL) # I just chose a significant covariate from DLBCL
现在我想估计IBS。关注?sbrier
obj : an object of class Surv.
pred : predicted values. Either a probability or a list of survfit objects.
所以我们有一个幸存物体列表
sbrier(smod, list(survfit(coxmod) ))
或生存概率
sbrier(smod, survfit(coxmod,newdata=DLBCL)$surv )
第一次回归
Error in sbrier(smod, list(survfit(coxmod))) :
pred must be of length(time)
第二个
Error in sbrier(smod, survfit(coxmod, newdata = DLBCL)$surv) :
wrong dimensions of pred
示例未列出coxph
模型。也许它不受支持。否则,我哪里出错?
答案 0 :(得分:2)
您可以使用pec包。
示例:
library(pec)
set.seed(18713)
library(prodlim)
library(survival)
dat=SimSurv(100)
pmodel=coxph(Surv(time,status)~X1+X2,data=dat)
perror=pec(list(Cox=pmodel),Hist(time,status)~1,data=dat)
## cumulative prediction error
crps(perror) # between min time and 1
## same thing:
ibs(perror)
答案 1 :(得分:1)
library(survival)
library(ipred)
data("DLBCL", package = "ipred")
smod <- Surv(DLBCL$time, DLBCL$cens)
coxmod <- coxph(smod ~ IPI, data = DLBCL)
coxmod
Call:
coxph(formula = smod ~ IPI, data = DLBCL)
coef exp(coef) se(coef) z p
IPI 0.505 1.657 0.181 2.79 0.0053
Likelihood ratio test=8.15 on 1 df, p=0.0043
n= 38, number of events= 20
(2 observations deleted due to missingness)
DLBCL <- DLBCL[!(is.na(DLBCL$IPI)|is.na(DLBCL$time)|is.na(DLBCL$cens)),]
pred <- predict(coxmod)
sbrier(smod, pred,btime=2)
结果
Brier score
1.457241
attr(,"time")
[1] 2
必须指定btime,这意味着无法计算ibs。我还没弄明白。