| 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])