Coarse line search for optimum step-size modification factor

Share:

Description

This routine helps in finding an optimum step-size modification factor for CoxBoost, i.e., that results in an optimum in terms of cross-validated partial log-likelihood.

Usage

1
2
3
4
optimStepSizeFactor(time,status,x,
                    direction=c("down","up","both"),start.stepsize=0.1,
                    iter.max=10,constant.cv.res=NULL,
                    parallel=FALSE,trace=FALSE,...) 

Arguments

time

vector of length n specifying the observed times.

status

censoring indicator, i.e., vector of length n with entries 0 for censored observations and 1 for uncensored observations. If this vector contains elements not equal to 0 or 1, these are taken to indicate events from a competing risk and a model for the subdistribution hazard with respect to event 1 is fitted (see e.g. Fine and Gray, 1999).

x

n * p matrix of covariates.

direction

direction of line search for an optimal step-size modification factor (starting from value 1).

start.stepsize

step size used for the line search. A final step is performed using half this size.

iter.max

maximum number of search iterations.

constant.cv.res

result of cv.CoxBoost for stepsize.factor=1, that can be provided for saving computing time, if it already is available.

parallel

logical value indicating whether computations in the cross-validation folds should be performed in parallel on a compute cluster. Parallelization is performed via the package snowfall and the initialization function of of this package, sfInit, should be called before calling cv.CoxBoost.

trace

logical value indicating whether information on progress should be printed.

...

miscellaneous parameters for cv.CoxBoost.

Details

A coarse line search is performed for finding the best parameter stepsize.factor for CoxBoost. If an pendistmat argument is provided (which is passed on to CoxBoost), a search for factors smaller than 1 is sensible (corresponding to direction="down"). If no connection information is provided, it is reasonable to employ direction="both", for avoiding restrictions without subject matter knowledge.

Value

List with the following components:

factor.list

array with the evaluated step-size modification factors.

critmat

matrix with the mean partial log-likelihood for each step-size modification factor in the course of the boosting steps.

optimal.factor.index

index of the optimal step-size modification factor.

optimal.factor

optimal step-size modification factor.

optimal.step

optimal boosting step number, i.e., with minimum mean partial log-likelihood, for step-size modification factor optimal.factor.

Author(s)

Written by Harald Binder binderh@uni-mainz.de.

References

Binder, H. and Schumacher, M. (2009). Incorporating pathway information into boosting estimation of high-dimensional risk prediction models. BMC Bioinformatics. 10:18.

See Also

CoxBoost, cv.CoxBoost

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
## Not run: 
#   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)

#  Determine step-size modification factor. As there is no connection matrix,
#  perform search into both directions 

optim.res <- optimStepSizeFactor(direction="both",
                                time=obs.time,status=status,x=x,
                                trace=TRUE)

#   Fit with obtained step-size modification parameter and optimal number of boosting
#   steps obtained by cross-validation

cbfit <- CoxBoost(time=obs.time,status=status,x=x,
                  stepno=optim.res$optimal.step,
                  stepsize.factor=optim.res$optimal.factor) 
summary(cbfit)


## End(Not run)