[R] How to stop Kaplan-Meier curve at a time point

David Winsemius dwinsemius at comcast.net
Thu Nov 21 20:56:11 CET 2013


On Nov 21, 2013, at 5:08 AM, Andrews, Chris wrote:

> That subset will give you right truncation, not right censoring.  See code below.  Use Thomas's solution.

I completely agree that my strategy was wrong. It inappropriately removed the long-lived cases from the riskset at earlier times so there would be an over-estimate of risk in proportion to the ratio of such cases to the entire population.

-- 
David.


> 
> Chris
> 
> 
> library(survival)
> set.seed(20131121)
> ngroup <- 100
> xxx <- rep(0:1, e=ngroup)
> ttt <- rexp(length(xxx), rate=xxx+.5)
> plot(survfit(Surv(ttt) ~ xxx))
> survdiff(Surv(ttt) ~ xxx)
> 
> # impose earlier stop time?
> tstop <- 2
> lines(survfit(Surv(ttt) ~ xxx, subset=ttt<tstop), col=2)
> survdiff(Surv(ttt) ~ xxx, subset=ttt<tstop)
> 
> # censor at earlier stop time
> ddd <- ttt<tstop
> ttt2<- pmin(ttt, tstop)
> 
> lines(survfit(Surv(ttt2, ddd) ~ xxx), col=3)
> survdiff(Surv(ttt2, ddd) ~ xxx)
> # green lines match black lines up to tstop
> 
> 
> 
> 
> -----Original Message-----
> From: David Winsemius [mailto:dwinsemius at comcast.net] 
> Sent: Wednesday, November 20, 2013 5:49 PM
> To: Dr.Vinay Pitchika
> Cc: r-help at r-project.org
> Subject: Re: [R] How to stop Kaplan-Meier curve at a time point
> 
> 
> On Nov 20, 2013, at 12:01 PM, Dr.Vinay Pitchika wrote:
> 
>> Hello R users
>> 
>> I have a question with Kaplan-Meier Curve with respect to my research. We
>> have done a retrospective study on fillings in the tooth and their survival
>> in relation to the many influencing factors. We had a long follow-up time
>> (upto 8yrs for some variables). However, we decided to stop the analysis at
>> the 6year follow up time, so that we can have uniform follow-up time for
>> all the variables.
>> 
>> I did play a bit with the formula and tried to stop the Kaplan-Meier curve
>> at my desired time (2190days)or roughly 6 years. However, my question is I
>> want to find the significance (log rank test) at this time point between
>> the two curves; because I am not able to find a way to stop the survfit at
>> this time point with my knowledge. Below is the code I used.
>> 
>> Gender2<-survfit(Surv(Survival_days, Outcome)~Gender)
> 
> I'm assuming that you have a dataframe with those variables and have attached it. If so, then:
> 
> dfrm <- detach(said_df)
> 
> # If not, then:
> 
> dfrm <- data.frame(Survival_days, Outcome, Gender)
> 
> Gender2<-survfit(Surv(Survival_days, Outcome)~Gender, 
>                  data=dfrm, subset = Survival_days < 6*365.25 )
> 
>> 
>> plot (Gender2, xmax=2190, mark.time=FALSE, col=c(1:2), xlab="Survival time
>> (Days)", ylab="Survival probability", main="Gender") # mark.time=FALSE will
>> remove the censoring lines in the graph. If censoring lines are needed,
>> then remove the mark.time section in the formula.
>> 
>> legend("topright",c("Females", "Males"), col=(1:2), lwd=0.5)
>> 
>> Am sure, the code in the first line has to be modified. Please help me with
>> this and I will be very thankful to you.
>> 
> 
> 
> David Winsemius
> Alameda, CA, USA
> 
> 
> **********************************************************
> Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues 
> 

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list