coxgrad.Rd
Compute the gradient of the log partial likelihood at a particular fit for Cox model.
coxgrad(eta, y, w, std.weights = TRUE, diag.hessian = FALSE)
Fit vector (usually from glmnet at a particular lambda).
Survival response variable, must be a Surv
or
stratifySurv
object.
Observation weights (default is all equal to 1).
If TRUE (default), observation weights are standardized to sum to 1.
If TRUE
, compute the diagonal of the Hessian
of the log partial likelihood as well. Default is FALSE
.
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".
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.
coxnet.deviance
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)
#> [1] -0.06992882 -0.01679888 0.04327001 0.03107979 0.06179160 0.05843140
#> [7] 0.08926450 -0.03192038 -0.23269137 0.06750215
# return diagonal of Hessian as well
coxgrad(eta, y, diag.hessian = TRUE)
#> [1] -0.06992882 -0.01679888 0.04327001 0.03107979 0.06179160 0.05843140
#> [7] 0.08926450 -0.03192038 -0.23269137 0.06750215
#> attr(,"diag_hessian")
#> [1] -0.060713941 -0.015383325 -0.050665386 -0.045093820 -0.032789674
#> [6] -0.037886260 -0.009582991 -0.091840192 -0.130659065 -0.029475710
# example with (start, stop] data
y2 <- survival::Surv(time, time + runif(10), d)
coxgrad(eta, y2)
#> [1] -2.530966e-01 -4.635984e-02 0.000000e+00 1.110223e-17 4.635984e-02
#> [6] 8.261801e-02 9.992007e-17 -1.565746e-01 -8.421905e-01 7.395658e-02
# example with strata
y2 <- stratifySurv(y, rep(1:2, length.out = 10))
coxgrad(eta, y2)
#> [1] -0.04165091 -0.01278177 0.06621056 0.04756065 0.04227714 -0.03552950
#> [7] 0.07175852 -0.06887459 -0.13859532 0.06962520