In this section Life Table Survival Analysis and Kaplan-Meier Survival Analysis are described. When the exact failure time is known, Kaplan-Meier analysis is preferred and Life Table analysis is mostly obsolete. However, it is discussed here for illustrative and educational purposes.
- Survival analysis calculates the cumulative probability of survival for a group of patients between two events: the start date / time and the end date / time.
- In survival analysis it is essential to define a ‘hard end point’ (binary outcome measure) for the event of interest.
- The most elementary method is life table survival analysis. However, when the exact survival time is known this method is mostly obsolete.
- For medical purposes, the preferred method is Kaplan-Meier survival analysis.
- Patients are called uncensored if the event of interest has occurred.
- All other patients are censored; the event of interest has not yet occurred, patient are withdrawn from follow up or have been lost to follow up.
- In life table analysis, censored patients are at risk of the event of interest for only part of that year.
- The survival curve is stepped at yearly intervals in life table survival analysis.
- In Kaplan-Meier survival analysis, the curve is also stepped. However, the steps are at the times the event of interest has occurred (and are therefore not regular). If there are many of these events, the curve will have a smooth appearance (but when magnified, will always stay stepped!).
- The ‘tail end’ of the survival curve can give a wrong impression if the number of patients remaining in follow up is low.
- The five-year survival is the cumulative probability of being alive after 5 years.
- The median survival is the time it takes for the cumulative survival to be 50%.
The survival package 1 should be installed and loaded to perform survival analysis in R. The DeducerSurvival package 1 may be used with the Deducer GUI.
Using the console:
- Create a survival object (ie: mysurvival)
- mysurvival<-Surv(FU time, Event)
- Fit the survival curve on the survival object (95% conf levels)
- mycurve<-survfit(mysurvival~1,conf.int=0.95)
- Plot the survival curve
- plot(mycurve)
Logrank test:
mycompare<-survdiff(mysurvival~group)
Cox proportional hazards:
mycompare<-coxph(mysurvival~group)