Plot the Kaplan-Meier estimation of the survival function
Survival times are data that measure follow-up time from a defined starting point to the occurrence of a given event, for example the time from the beginning to the end of a remission period or the time from the diagnosis of a disease to death. Standard statistical techniques cannot usually be applied because the underlying distribution is rarely Normal and the data are often "censored". A survival time is described as censored when there is a follow-up time but the event has not yet occurred or is not known to have occurred. For example, if remission time is being studied and the patient is still in remission at the end of the study, then that patient's remission time would be censored. If a patient for some reason drops out of a study before the end of the study period, then that patient's follow-up time would also be considered to be censored. The survival function S(t) is defined as the probability of surviving at least to time t. The graph of S(t) against t is called the survival curve. The Kaplan-Meier method can be used to estimate this curve from the observed survival times without the assumption of an underlying probability distribution.
Created by Giuseppe Cardillo
To cite this file, this would be an appropriate format:Curve Cardillo G. (2008). KMPLOT: Kaplan-Meier estimation of the survival function. http://www.mathworks.com/matlabcentral/fileexchange/22293
Looks great, thanks!
As I rote in the help section, the survivors will have 0 flag in the second column of the Nx2 input matrix
How do i deal with survivors in this program? people that haven't died (yet) during the follow ups.
Sometimes this function fails to plot the survival curve reporting such error: "CAT arguments dimensions are not consistent." "Error in ==> kmplot at 240 str2=['Median time ' num2str(mt)]; %string for LEGEND function".
usually you dont exaclty know when a subject really is censored (in example: a patient died between to follow-up points or a patient that decided to not present himself to follow-up). So the best "graphical" choice is to divide the space between to points in to N+1 segments (where N is the censored data between T1 and T2) and to plot a cross for each segments.
I noticed that the time of censoring is not plotted correctly. I could not fix it. Could you maybe help?
serves the purpose - thanks a lot!
inputparser; github link
fixed a bug into "input error handling" section
function for hazard rate computation was changed to avoid NaN in non linear fit.
Hazard rate computation added
Changes in description
improvement for censored data
error correction in confidence curve trimming
The function was adapted to be recalled by LOGRANK function (a function of mine). More vectorization.
help section change to correctly cite this file; median time computation was changed (in some cases there is not median time)