R:计算pec';s加权锤击分数
我想重新计算软件包计算的加权brier分数(方程式(3)和下面的一个) 以下是我迄今为止的尝试:R:计算pec';s加权锤击分数,r,survival-analysis,R,Survival Analysis,我想重新计算软件包计算的加权brier分数(方程式(3)和下面的一个) 以下是我迄今为止的尝试: set.seed(130971) library(dplyr) library(survival) library(prodlim) ## for SimSurv() library(pec) ## generate simulated data dat <- SimSurv(100) ## compute the apparent prediction error Models <
set.seed(130971)
library(dplyr)
library(survival)
library(prodlim) ## for SimSurv()
library(pec)
## generate simulated data
dat <- SimSurv(100)
## compute the apparent prediction error
Models <- list("Cox.X1"=coxph(Surv(time,status)~X1,data=dat,y=TRUE))
PredError <- pec(object=Models,
formula=Surv(time,status)~X1+X2,
data=dat,
verbose=TRUE)
## I'd like to re-calc the brier score at time 5
mytime <- PredError$time[58]
pecbs <- PredError$AppErr$Cox.X1[58]
mytime
## [1] 5.072562
pecbs
## [1] 0.2159007
## so, I need the weights for the weighted brier score
dat <- dat %>%
mutate(ipcw5 = ipcw(
##formula=Surv(time,status)~X1+X2,
formula=Surv(time,status)~1,
data = dat,
##method = "cox",
method = "marginal",
what = "IPCW.times",
times = mytime)$IPCW.times)
## I also need the predicted survival probabilities at time = 5
coxmod <- coxph(Surv(time,status)~X1,data=dat,y=TRUE)
dat <- dat %>%
mutate(risk5 = as.numeric(1-summary(survfit(
coxmod,
newdata = dat,
se.fit = F,
conf.int = F
),
times = mytime)$surv))
## and finally, I need the status at time = 5
dat <- dat %>%
mutate(status5 = ifelse(status == 1 & time <= mytime, 1,
ifelse(status == 0 & time > mytime, 0,
ifelse(status == 1 & time > mytime, 0,
ifelse(status == 0 & time <= mytime, 0, ## this is censored
NA)))))
## brier score
mybs <- dat %>%
summarize(bs = sum((status5-risk5)^2*ipcw5)/n())
## compare
pecbs
## [1] 0.2159007
mybs$bs
## [1] 0.1612572
pecbs - mybs$bs
## [1] 0.05464348
set.seed(130971)
图书馆(dplyr)
图书馆(生存)
图书馆(prodlim)###供SimSurv()使用
图书馆(pec)
##生成模拟数据
我也有类似的问题。在我的实现中,我低估了综合Bier分数,尽管不如您的时间特定的分数那么显著。我很感兴趣的是,你的综合分数是否也比具体时间的分数偏少,以及你是否找到了解决问题的方法。我也有类似的问题。在我的实现中,我低估了综合Bier分数,尽管不如您的时间特定的分数那么显著。我很感兴趣的是,你的综合分数是否也比具体时间的分数偏少,以及你是否找到了解决问题的方法