predict.CoxBoost {CoxBoost} | R Documentation |
Obtains predictions at specified boosting steps from a CoxBoost object fitted by CoxBoost
.
## S3 method for class 'CoxBoost': predict(object,newdata=NULL,newtime=NULL,newstatus=NULL, at.step=NULL,times=NULL,type=c("lp","logplik","risk"),...)
object |
fitted CoxBoost object from a CoxBoost call. |
newdata |
n.new * p matrix with new covariate values. If just prediction for the training data is wanted, it can be omitted. |
newtime, newstatus |
vectors with observed time and censoring indicator (0 for censoring, 1 for no censoring) for new observations, where prediction is wanted. Only required if predicted partial log-likelihood is wanted, i.e., if type="logplik" . This can also be omitted when prediction is only wanted for the training data, i.e., newdata=NULL . |
at.step |
scalar or vector of boosting step(s) at which prediction is wanted. If type="risk" is used, only one step is admissible. If no step is given, the final boosting step is used. |
times |
vector with T time points where prediction is wanted. Only needed for type="risk" |
type |
type of prediction to be returned: "lp" gives the linear predictor, "logplik" the partial log-likelihood, and "risk" the predicted probability of still being event-free at the time points given in times . |
... |
miscellaneous arguments, none of which is used at the moment. |
For type="lp"
and type="logplik"
a vector of length n.new
(at.step
being a scalar) or a n.new * length(at.step)
matrix (at.step
being a vector) with predictions is returned.
For type="risk"
a n.new * T
matrix with predicted probabilities at the specific time points is returned.
Harald Binder binderh@fdm.uni-freiburg.de
# Generate some survival data with 10 informative covariates n <- 200; p <- 100 beta <- c(rep(1,10),rep(0,p-10)) x <- matrix(rnorm(n*p),n,p) real.time <- -(log(runif(n)))/(10*exp(drop(x %*% beta))) cens.time <- rexp(n,rate=1/10) status <- ifelse(real.time <= cens.time,1,0) obs.time <- ifelse(real.time <= cens.time,real.time,cens.time) # define training and test set train.index <- 1:100 test.index <- 101:200 # Fit CoxBoost to the training data cbfit <- CoxBoost(time=obs.time[train.index],status=status[train.index], x=x[train.index,],stepno=300,penalty=100) # mean partial log-likelihood for test set in every boosting step step.logplik <- predict(cbfit,newdata=x[test.index,], newtime=obs.time[test.index], newstatus=status[test.index], at.step=1:300,type="logplik") plot(step.logplik) # names of covariates with non-zero coefficients at boosting step # with maximal test set partial log-likelihood print(cbfit$xnames[cbfit$coefficients[which.max(step.logplik),] != 0])