[R] plotting coxph results using survfit() function

Terry Therneau therneau at mayo.edu
Wed Nov 21 15:29:17 CET 2007


   The survfit function, when applied to the results of a Cox model, will give 
the predicted survival curve for any particular combination of covariates in the 
model.  You cannot get what you are asking for, i.e., distinct levels of X while 
ignoring Y, from survfit.  What you need to do is create a data frame containing 
values for the curves that you want, e.g.,
   	mydata <- data.frame(X=c(1,2,3,4), y=c(8,8,8,8))
	cfit  <- survfit(mod.phm, newdata=mydata)
	plot(cfit, lty=1:4)
People often choose a 'common' value of y for the plot.

Arguably the better approach is to average over the levels of y.  For this, I 
would recommend that you read chapter 10 of Therneau and Grambsch, Modeling 
Survival Data.  The discussion really does take a whole chapter, and is too long 
for a help-list synopsis.
	Terry Therneau
	
------------------------------------------------------------	
begin included message


Thanks for your help. I want to draw a plot which shows separate
survival curves for each category of X on the same plot(same set of
axes). Your code produces a separate curve for each combination of X
and Y but I don't want curves for combinations of X and Y since Y has
many levels and also the values of Y don't have any significance in my
case. Is there  a way of doing what i want to do i.e. getting separate
survival curves for each level of X using the function survfit() on an
object mod.phm which is a coxph object such that:

mod.phm<-coxph(formula=Surv(time,Flag_Death)~X+Y, data= datFrame)



More information about the R-help mailing list