Search code examples
rsurvival-analysis

Kaplan Meier survival plot


Good morning,

I am having trouble understanding some of my outputs for my Kaplan Meier analyses. I have managed to produce the following plots and outputs using ggsurvplot and survfit. I first made a plot of survival time of 55 nest with time and then did the same with the top predictors for nest failure, one being microtopography, as seen in this example.

Survival time

Call: npsurv(formula = (S) ~ 1, data = nestdata, conf.type = "log-log")

26 observations deleted due to missingness 
records   n.max n.start  events  median 0.95LCL 0.95UCL 
 55      45       0      13      29       2      NA 

Microtopography

Call: npsurv(formula = (S) ~ Microtopography, data = nestdata, conf.type = "log-log")

29 observations deleted due to missingness 
                    records n.max n.start events median 0.95LCL 0.95UCL
Microtopography=0      14    13       0      1     NA      NA      NA
Microtopography=1      26    21       0      7     NA      29      NA
Microtopography=2      12     8       0      5      3       2      NA

So, I have two primary questions. 1. The survival curves are for a ground nesting bird with an egg incubation time of 21-23 days. Incubation time is the number of days the hen sits of the eggs before they hatch. Knowing that, how is it possible that the median survival time in plot #1 is 29 days? It seems to fit with the literature I have read on this same species, however, I assume it has something to do with the left censoring in my models, but am honestly at a loss. If anyone has any insight or even any litterature that could help me understand this concept, I would really appreciate it.

  1. I am also wondering how I can compare median survival times for the 2nd plot. Because microtopography survival curves 1 and 2 never croos the .5 pt, the median survival times returned are NA. I understand I can chose another interval, such as .75, but in this example that still wouldnt help me because microtopography 0 never drops below .9 or so. How would one go about reporting this data. Would the work around be to choose a survival interval, using:

summary(s,times=c(7,14,21,29))

Call: npsurv(formula = (S) ~ Microtopography, data = nestdata, conf.type = "log-log")

     29 observations deleted due to missingness 
                Microtopography=0 
     time n.risk n.event censored survival std.err lower 95% CI upper 95% CI
      7      3       0        0    1.000  0.0000        1.000        1.000
     14      7       0        0    1.000  0.0000        1.000        1.000
     21     13       0        0    1.000  0.0000        1.000        1.000
     29      8       1        5    0.909  0.0867        0.508        0.987

                Microtopography=1 
     time n.risk n.event censored survival std.err lower 95% CI upper 95% CI
      7      9       0        0    1.000  0.0000        1.000        1.000
      14     17       1        0    0.933  0.0644        0.613        0.990
      21     21       3        0    0.798  0.0909        0.545        0.919
      29     15       3        7    0.655  0.1060        0.409        0.819

                Microtopography=2 
     time n.risk n.event censored survival std.err lower 95% CI upper 95% CI
      7      1       2        0    0.333   0.272      0.00896        0.774
     14      7       1        0    0.267   0.226      0.00968        0.686
     21      8       1        0    0.233   0.200      0.00990        0.632
     29      3       1        5    0.156   0.148      0.00636        0.504

Solution

  • Late to the party...

    The median survival time of 29 days is the median incubation time that birds of this species are expected to be in the egg until they hatch - based on your data. Your median of 21-24 (based on ?) is probably based on many experiments/studies of eggs that have hatched, ignoring those that haven't hatched yet (those that failed?).

    From your overall survival curve, it is clear that some eggs have not yet hatched, even after more than 35 days. These are taken into account when calculating the expected survival times. If you think that these eggs will fail, then omit them. Otherwise, the software cannot possibly know that they will eventually fail. But how can anyone know for sure if an egg is going to fail, even after 30 days? Is there a known maximum hatching time? The record-breaker of all hatched eggs?