50 lines
1.5 KiB
R
50 lines
1.5 KiB
R
options(na.action=na.exclude) # preserve missings
|
|
options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
|
|
library(survival)
|
|
|
|
aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
|
|
|
|
lfit2 <- survreg(Surv(time, status) ~ age + ph.ecog + strata(sex), lung)
|
|
lfit3 <- survreg(Surv(time, status) ~ sex + (age+ph.ecog)*strata(sex), lung)
|
|
|
|
lfit4 <- survreg(Surv(time, status) ~ age + ph.ecog , lung,
|
|
subset=(sex==1))
|
|
lfit5 <- survreg(Surv(time, status) ~ age + ph.ecog , lung,
|
|
subset=(sex==2))
|
|
|
|
if (exists('censorReg')) {
|
|
lfit1 <- censorReg(censor(time, status) ~ age + ph.ecog + strata(sex),lung)
|
|
aeq(lfit4$coef, lfit1[[1]]$coef)
|
|
aeq(lfit4$scale, lfit1[[1]]$scale)
|
|
aeq(c(lfit4$scale, lfit5$scale), sapply(lfit1, function(x) x$scale))
|
|
}
|
|
aeq(c(lfit4$scale, lfit5$scale), lfit3$scale )
|
|
|
|
#
|
|
# Test out ridge regression and splines
|
|
#
|
|
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)
|
|
|
|
lfit0
|
|
lfit1
|
|
lfit2
|
|
lfit3
|
|
|
|
|
|
xx <- pspline(lung$age, nterm=3, theta=.3)
|
|
xx <- matrix(unclass(xx), ncol=ncol(xx)) # the raw matrix
|
|
lfit4 <- survreg(Surv(time, status) ~xx, lung)
|
|
lfit5 <- survreg(Surv(time, status) ~age, lung)
|
|
|
|
lfit6 <- survreg(Surv(time, status)~pspline(age, df=2), lung)
|
|
|
|
lfit7 <- survreg(Surv(time, status) ~ offset(lfit6$lin), lung)
|
|
|
|
lfit4
|
|
lfit5
|
|
lfit6
|
|
signif(lfit7$coef,6)
|