R: Compute gradient for Cox model

coxgrad {glmnet} | R Documentation

## Compute gradient for Cox model

### Description

Compute the gradient of the log partial likelihood at a particular fit for Cox model.

### Usage

    coxgrad(eta, y, w, std.weights = TRUE, diag.hessian = FALSE)

    coxgrad2(eta, y, w, std.weights = TRUE, diag.hessian = FALSE)

    coxgrad3(eta, y, w, std.weights = TRUE, diag.hessian = FALSE)

### Arguments

`eta` | Fit vector (usually from glmnet at a particular lambda).
`y` | Survival response variable, must be a `Surv` or `stratifySurv` object.
`w` | Observation weights (default is all equal to 1).
`std.weights` | If TRUE (default), observation weights are standardized to sum to 1.
`diag.hessian` | If `TRUE`, compute the diagonal of the Hessian of the log partial likelihood as well. Default is `FALSE`.

### Details

Compute a gradient vector at the fitted vector for the log partial likelihood. This is like a residual vector, and useful for manual screening of predictors for `glmnet` in applications where `p` is very large (as in GWAS). Uses the Breslow approach to ties.

This function is essentially a wrapper: it checks whether the response provided is right-censored or (start, stop] survival data, and calls the appropriate internal routine. For right-censored data it calls `coxgrad2()`. For (start, stop] data, it calls `coxgrad3()`.

### Value

A single gradient vector the same length as `eta`. If `diag.hessian=TRUE`, the diagonal of the Hessian is included as an attribute "diag_hessian".

### See Also

`coxnet.deviance`

### Examples

    set.seed(1)
    eta <- rnorm(10)
    time <- runif(10, min = 1, max = 10)
    d <- ifelse(rnorm(10) > 0, 1, 0)
    y <- survival::Surv(time, d)
    coxgrad(eta, y)

    # return diagonal of Hessian as well
    coxgrad(eta, y, diag.hessian = TRUE)

    # example with (start, stop] data
    y2 <- survival::Surv(time, time + runif(10), d)
    coxgrad(eta, y2)

    # example with strata
    y2 <- stratifySurv(y, rep(1:2, length.out = 10))
    coxgrad(eta, y2)

[Package glmnet version 4.1 Index]