frailty {survival}R Documentation

(Approximate) Frailty models


When included in a coxph or survreg, fits by penalised likelihood a random effects (frailty) model. frailty is generic, with methods for t, Gaussian and Gamma distributions.


frailty(x, distribution="gamma", ...)
frailty.gamma(x, sparse = (nclass > 5), theta, df, eps = 1e-05, method = c("em","aic", "df", "fixed"), ...) 
frailty.gaussian(x, sparse = (nclass > 5), theta, df, method = c("reml","aic", "df", "fixed"), ...)
frailty.t(x, sparse = (nclass > 5), theta, df, eps = 1e-05, tdf = 5,method = c("aic", "df", "fixed"), ...)


x group indicator
distribution frailty distribution
... Arguments for specific distribution, including (but not limited to)
sparse Use sparse Newton-Raphson algorithm
df Approximate degrees of freedom
theta Penalty
eps Accuracy of df
method maximisation algorithm
tdf df of t-distribution


The penalised likelihood method is equivalent to maximum (partial) likelihood for the gamma frailty but not for the others.

The sparse algorithm uses the diagonal of the information matrix for the random effects, which saves a lot of space.

The frailty distributions are really the log-t and lognormal: t and Gaussian are random effects on the scale of the linear predictor.


An object of class coxph.penalty containing a factor with attributes specifying the control functions.


Therneau TM, Grambsch PM, Pankratz VS (2003) "Penalized survival models and frailty" Journal of Computational and Graphical Statistics 12, 1: 156-175

See Also



kfit <- coxph(Surv(time, status)~ age + sex + disease + frailty(id), kidney)
kfit0 <- coxph(Surv(time, status)~ age + sex + disease, kidney)
kfitm1 <- coxph(Surv(time,status) ~ age + sex + disease + 
                frailty(id, dist='gauss'), kidney)
coxph(Surv(time, status) ~ age + sex + frailty(id, dist='gauss', method='aic',caic=TRUE), kidney)
# uncorrected aic
coxph(Surv(time, status) ~ age + sex + frailty(id, method='aic', caic=FALSE), kidney)

rfit2a <- survreg(Surv(time, status) ~ rx +
                  frailty.gaussian(litter, df=13, sparse=FALSE), rats )
rfit2b <- survreg(Surv(time, status) ~ rx +
                  frailty.gaussian(litter, df=13, sparse=TRUE), rats )

[Package survival version 2.31 Index]