R: Ridge regression

ridge {survival} | R Documentation

## Ridge regression

### Description

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.

### Usage

    ridge(..., theta, df=nvar/2, eps=0.1, scale=TRUE)

### Arguments

`...` | predictors to be ridged
`theta` | penalty is `theta`/2 time sum of squared coefficients
`df` | Approximate degrees of freedom
`eps` | Accuracy required for `df`
`scale` | Scale variables before applying penalty?

### Value

An object of class `coxph.penalty` containing the data and control functions.

### Note

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])`.

### References

Gray (1992) "Flexible methods of analysing survival data using splines, with applications to breast cancer prognosis" JASA 87:942–951

### See Also

`coxph`,`survreg`,`pspline`,`frailty`

### Examples

    coxph(Surv(futime, fustat) ~ rx + ridge(age, ecog.ps, theta=1),
    	      ovarian)

    lfit0 <- survreg(Surv(time, status) ~1, cancer)
    lfit1 <- survreg(Surv(time, status) ~ age + ridge(ph.ecog, theta=5), cancer)
    lfit2 <- survreg(Surv(time, status) ~ sex + ridge(age, ph.ecog, theta=1), cancer)
    lfit3 <- survreg(Surv(time, status) ~ sex + age + ph.ecog, cancer)

[Package survival version 3.2-7 Index]