| pcoxtime | R Documentation |
Fits a Cox model with either lasso, ridge or elasticnet penalty for both time-independent and time-dependent (varying) covariates survival data.
pcoxtime( formula, data, alpha = 1, lambda = 1, maxiter = 1e+05, tol = 1e-08, quietly = FALSE, lambmax = FALSE, origin_scale = TRUE, contrasts.arg = NULL, xlevs = NULL, na.action = na.omit, ... )
formula |
object of class formula describing
the model. The response is specified similar to
|
data |
optional data frame containing variables specified in the formula. |
alpha |
elasticnet mixing parameter, with 0 ≤α≤ 1. See details |
lambda |
tuning parameter for the lasso penalization, with λ ≥ 0. λ = 0 fits unpenalized Cox model. See details |
maxiter |
maximum number of iterations to convergence. Default is 1e4. Consider increasing it if the model does not converge. |
tol |
convergence threshold for proximal gradient gradient descent. Each proximal update continues until the relative change in all the coefficients (i.e. √{∑(β_{k+1} - β_k)^2}/stepsize) is less than tol. The default value is 1e-8. |
quietly |
logical. If TRUE, iteration progress printed. |
lambmax |
logical. Sufficiently large, λ_{\max}, that sets β = 0 for regularization path. If TRUE, λ_{\max} is returned. |
origin_scale |
logical. If TRUE (default), the estimated coefficients are returned on the original covariate scale. Otherwise, FALSE, coefficients are standardized. |
contrasts.arg |
an optional list. See
the contrasts.arg of
|
xlevs |
a named list of character vectors
giving the full set of levels to be assumed
for each factor. See |
na.action |
a function which indicates
what should happen when the data contain NAs.
See |
... |
additional arguments not implemented. |
The algorithm estimates the coefficients based on observed survival data, with either time-independent or time-dependent covariates, through penalized partial log-likelihood
\mathrm{pen} ~ \mathit{\ell(β)_{α, λ}} = -\mathit{\ell(β)} + P_{α, λ}(β)
using elasticnet (which combines both lasso and ridge) penalty
λ≤ft(α∑_{i=1}^p|β_i| + 0.5(1 - α)∑_{i=1}^pβ_i^2 \right)
.
alpha = 1 (α) is the lasso penalty,
and alpha = 0 is the ridge penalty. lambda = 0 fits
the standard Cox proportional hazard model.
User can provide a particular lambda. Typical usage is to
use the pcoxtimecv to select the optimal
lambda first.
The routine to handle time-dependent covariates is similar
to that implemented in coxph: if there
are tied event times, Breslow approximation is used.
An S3 object of class pcoxtime:
coef |
a named vector of coefficients. If any of the coefficients violates KKT conditions, the model will print a warning but still return coefficient estimates. |
min.nloglik |
estimated log-likelihood at convergence. |
min.dev |
the deviation satisfying the |
iter.dev |
deviations between previous and current coefficient estimate at each iteration. |
convergence |
convergence message containing the number of iterations |
n |
the number of observations used in the fit. |
n.risk |
the number of individuals at risk at time |
n.event |
the number of events that occur at time |
n.censor |
the number of subjects who exit the risk set, without an event, at time |
time |
time points defined by the risk set. |
Y |
Surv object defining the event times and event status. |
data |
data frame used. |
timevarlabel, eventvarlabel |
time and event variables, respectively. |
predictors |
a vector of predictors/covariates in the model. |
lambda, alpha |
lambda and alpha used, respectively. |
formula |
model formula used in the fit. |
means |
vector of column means of the X matrix. Subsequent survival curves are adjusted to this value. |
assign, xlevels, terms |
See |
coxph, pcoxtimecv
# Time-independent covariates
if (packageVersion("survival")>="3.2.9") {
data(cancer, package="survival")
} else {
data(veteran, package="survival")
}
## Fit unpenalized Cox using pcoxtime
lam <- 0 # Should fit unpenalized Cox model
pfit1 <- pcoxtime(Surv(time, status) ~ factor(trt) + karno + diagtime + age + prior
, data = veteran
, lambda = lam
, alpha = 1
)
print(pfit1)
## fit survival::coxph
cfit1 <- coxph(Surv(time, status) ~ factor(trt) + karno + diagtime + age + prior
, data = veteran
, method = 'breslow'
, ties = "breslow"
)
print(cfit1)
## Penalized Cox model (pcoxtime)
lam <- 0.1
alp <- 0.5
pfit2 <- pcoxtime(Surv(time, status) ~ factor(trt) + karno + diagtime + age + prior
, data = veteran
, lambda = lam
, alpha = alp
)
print(pfit2)
# Time-varying covariates
data(heart, package="survival")
lam <- 0.1
alp <- 0.8
pfit2 <- pcoxtime(Surv(start, stop, event) ~ age + year + surgery + transplant
, data = heart
, lambda = lam
, alpha = alp
)
print(pfit2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.