[R] Survfit with a coxph object
Frank E Harrell Jr
f.harrell at vanderbilt.edu
Sat Dec 30 15:35:29 CET 2006
sj wrote:
> I am fitting a coxph model on a large dataset (approx 100,000 patients), and
> then trying to estimate the survival curves for several new patients based
> on the coxph object using survfit. When I run coxph I get the coxph object
> back fairly quickly however when I try to run survfit it does not come
> back. I am wondering if their is a more efficient way to get predicted
> survival curves from a coxph object.predict.coxph does not seem to generate
> survival curves.
>
> here is some sample code that mirrors what I am trying to do with my
> dataset, I get results using this code but it still takes a long time, my
> dataset includes quite a few more covariates, so any suggestions on speeding
> this up would be greatly appreciated.
>
>
> library(survival)
> ### generate sample data
> time <- rexp(100000,(1/180))
> ag <- rnorm(100000,38,12)
> sx <- sample(x=c(0,1),100000,replace=TRUE)
> ac <- factor(sample(x=c(1,2,3,4,5),100000,replace=TRUE),levels=c(1:5))
> ev <- sample(x=c(0,1),100000,replace=TRUE)
> c1 <- as.data.frame(cbind(ag,sx,ac))
cl <- data.frame(ag, sex, ac)
>
> #generate newdata
> ts <- as.data.frame
> (cbind(ag[23:24],sx[1000:1001],factor(ac[9000:9001],levels=c(1:5))))
> colnames(ts) <- c("ag","sx","ac")
>
>
> cph <- coxph(Surv(time,ev)~ ag+sx+ac,data=c1)
Don't need data= since everything is already available.
>
> survfit(cph,newdata=ts,individual=F)
The delay is probably due to computations of confidence limits. If you
don't need them or don't mind using approximate confidence limits you
can get very quick estimates using
library(Design)
f <- cph(Surv(time,ev) ~ ..., surv=TRUE) # do ?cph
survplot(f, ...) # do ?survplot
survest(f, ...) # do ?survest
survfit(f, ...) # do ?survfit
Or create a nomogram that gives users almost instant computations of
survival probabilities at selected times without using a computer.
There are examples of this in my book Regression Modeling Strategies.
Do ?nomogram which has an example of drawing a nomogram that shows
median, 3-month, and 6-month survival estimates from a parametric
survival model fit, which you can also do with the Cox model using cph
(a wrapper for coxph).
Frank Harrell
>
>
>
> thanks,
>
> Spencer
>
--
Frank E Harrell Jr Professor and Chair School of Medicine
Department of Biostatistics Vanderbilt University
More information about the R-help
mailing list