ridge {survival} | R Documentation |
When used in a coxph or survreg model formula,
specifies a ridge regression term. The likelihood is penalised by
theta
/2 time the sum of squared coefficients. If scale=T
the penalty is calculated for coefficients based on rescaling the
predictors to have unit variance. If df
is specified then theta
is chosen based on an approximate degrees of freedom.
ridge(..., theta, df=nvar/2, eps=0.1, scale=TRUE)
... |
predictors to be ridged |
theta |
penalty is |
df |
Approximate degrees of freedom |
eps |
Accuracy required for |
scale |
Scale variables before applying penalty? |
An object of class coxph.penalty
containing the data and
control functions.
If the expression ridge(x1, x2, x3, ...)
is too many characters
long then the
internal terms() function will add newlines to the variable name and
then the coxph routine simply gets lost. (Some labels will have the newline
and some won't.)
One solution is to bundle all of the variables into a single matrix and
use that matrix as the argument to ridge
so as to shorten the call,
e.g. mdata$many <- as.matrix(mydata[,5:53])
.
Gray (1992) "Flexible methods of analysing survival data using splines, with applications to breast cancer prognosis" JASA 87:942–951
coxph(Surv(futime, fustat) ~ rx + ridge(age, ecog.ps, theta=1),
ovarian)
lfit0 <- survreg(Surv(time, status) ~1, lung)
lfit1 <- survreg(Surv(time, status) ~ age + ridge(ph.ecog, theta=5), lung)
lfit2 <- survreg(Surv(time, status) ~ sex + ridge(age, ph.ecog, theta=1), lung)
lfit3 <- survreg(Surv(time, status) ~ sex + age + ph.ecog, lung)