R: Coarse line search for adequate penalty parameter

optimCoxBoostPenalty {CoxBoost} | R Documentation

## Coarse line search for adequate penalty parameter

### Description

This routine helps in finding a penalty value that leads to an “optimal” number of boosting steps for CoxBoost, determined by cross-validation, that is not too small/in a specified range.

### Usage

    optimCoxBoostPenalty(time,status,x,minstepno=50,maxstepno=200,
                         start.penalty=9*sum(status==1),iter.max=10,
                         upper.margin=0.05,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.
`minstepno, maxstepno` | range of boosting steps in which the “optimal” number of boosting steps is wanted to be.
`start.penalty` | start value for the search for the appropriate penalty.
`iter.max` | maximum number of search iterations.
`upper.margin` | specifies the fraction of `maxstepno` which is used as an upper margin in which a cross-validation minimum is not taken to be one. This is necessary because of random fluctuations of cross-validated partial log-likelihood.
`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

The penalty parameter for `CoxBoost` has to be chosen only very coarsely. In Tutz and Binder (2006) it is suggested for likelihood based boosting just to make sure, that the optimal number of boosting steps, according to some criterion such as cross-validation, is larger or equal to 50. With a smaller number of steps, boosting may become too “greedy” and show sub-optimal performance. This procedure uses a very coarse line search and so one should specify a rather large range of boosting steps.

### Value

List with element `penalty` containing the “optimal” penalty and `cv.res` containing the corresponding result of `cv.CoxBoost`.

### Author(s)

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

### References

Tutz, G. and Binder, H. (2006) Generalized additive modelling with implicit variable selection by likelihood based boosting. Biometrics, 62:961-971.

### See Also

`CoxBoost`, `cv.CoxBoost`

### Examples

    ## 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 penalty parameter

    optim.res <- optimCoxBoostPenalty(time=obs.time,status=status,x=x,
                                      trace=TRUE,start.penalty=500)

    #   Fit with obtained penalty parameter and optimal number of boosting
    #   steps obtained by cross-validation

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

    ## End(Not run)

[Package CoxBoost version 1.4 Index]