# simulate an artificial data frame
# with survival response and two predictors
set.seed(130971)
dat <- SimSurv(300)
# fit some candidate Cox models and compute the Kaplan-Meier estimate
Models <- list("Cox.X1"=coxph(Surv(time,status)~X1,data=dat,y=TRUE),
"Cox.X2"=coxph(Surv(time,status)~X2,data=dat,y=TRUE),
"Cox.X1.X2"=coxph(Surv(time,status)~X1+X2,data=dat,y=TRUE))
# compute the apparent prediction error
PredError <- pec(object=Models,
formula=Surv(time,status)~X1+X2,
data=dat,
exact=TRUE,
cens.model="marginal",
splitMethod="none",
B=0,
verbose=TRUE)
print(PredError,times=seq(5,30,5))
summary(PredError)
plot(PredError,xlim=c(0,30))
# compute the .632+ estimate of the generalization error
set.seed(17100)
PredError.632plus <- pec(object=Models,
formula=Surv(time,status)~X1+X2,
data=dat,
exact=TRUE,
cens.model="marginal",
splitMethod="Boot632plus",
B=100,
verbose=TRUE)
print(PredError.632plus,times=seq(5,30,5))
summary(PredError.632plus)
plot(PredError.632plus,xlim=c(0,30))
# do the same again but now parallized
set.seed(17100)
library(doMC)
registerDoMC()
PredError.632plus <- pec(object=Models,
formula=Surv(time,status)~X1+X2,
data=dat,
exact=TRUE,
cens.model="marginal",
splitMethod="Boot632plus",
B=100,
verbose=TRUE)
# ---------------- competing risks -----------------
library(survival)
library(compRisk)
library(cmprsk)
library(pec)
data(pbc)
f1 <- CRR(Hist(time,status)~sex+edema,cause=2,data=pbc)
f2 <- CRR(Hist(time,status)~sex,cause=2,data=pbc)
f3 <- compRisk(Hist(time,status)~sex+edema,cause=2,data=pbc)
f4 <- compRisk(Hist(time,status)~sex+edema,cause=2,data=pbc,link="prop")
p1 <- pec(list(f1,f2,f3,f4),formula=Hist(time,status)~1,data=pbc,cause=2)
Run the code above in your browser using DataLab