Estimación de la función de supervivencia \(S(t)\) con el estimador de Kaplan Meier

Ejemplo: La información de 12 personas acerca de la duración en su primer empleo se presenta a continuación (3 personas declararon permanecer en su primer empleo)

Tiempo en el 1er. empleo

i Tiempo
1 0.4
2 0.9
3 1.1
4 1.9
5 2.0
6 3.3
7 5.3
8 5.8
9 14.0

Tiempo en el primer empleo (aún permanecen trabajando en el primer empleo)

i Tiempo
1 1.5
2 3.0
3 6.2

Cálculo Manual

\(i\) \(t_i\) \(n_i\) \(d_i\) (\(1-\frac{d_i}{n_i}\)) \(\widehat{S}(t)=\prod\limits_{t_{(i)}\leq t}(1-\frac{d_i}{n_i})\) \[ \widetilde{S}(t)=\prod_{t_{(i)}\leq t}\exp{(-\frac{d_i}{n_i})} \]
1 0.4 12 1 \(1-\frac{1}{12}=\frac{11}{12}\) \(\frac{11}{12}=\) 0.917 \(\exp{[-(\frac{1}{12})]}=\) 0.920
2 0.9 11 1 \(1-\frac{1}{11}=\frac{10}{11}\) \(\frac{11}{12}\frac{10}{11}=\frac{10}{12}=\frac{5}{6}=\) 0.833 \(\exp{-[(\frac{1}{12}+\frac{1}{11})]}=\) 0.840
3 1.1 10 1 \(1-\frac{1}{10}=\frac{9}{10}\) \(\frac{9}{10}\frac{10}{12}=\frac{9}{12}=\frac{3}{4}=\) 0.750 \(\exp{-[(\frac{1}{12}+\frac{1}{11}+\frac{1}{10})]}=\) 0.760
4 1.5+ 9 0 \(\bf{1-\frac{0}{9}=1}\) \(\bf{\frac{3}{4}*1}\)=0.750 \(\bf{\exp{-[(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+0)]}=}\) 0.760
5 1.9 8 1 \(1-\frac{1}{8}=\frac{7}{8}\) \(\frac{3}{4}\frac{7}{8}=\frac{21}{32}=\) 0.656 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8})]}=\) 0.671
6 2.0 7 1 \(1-\frac{1}{7}=\frac{6}{7}\) \(\frac{21}{32}\frac{6}{7}=\frac{9}{16}=\) 0.562 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7})]}=\) 0.582
7 3.0+ 6 0 \(\bf{1-\frac{0}{6}=1}\) \(\bf{\frac{9}{16}*1=}\) 0.562 \(\bf{\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+0)]}=}\) 0.582
8 3.3 5 1 \(1-\frac{1}{5}=\frac{4}{5}\) \(\frac{9}{16}\frac{4}{5}=\frac{9}{20}=\) 0.450 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+\frac{1}{5})]}=\) 0.476
9 5.3 4 1 \(1-\frac{1}{4}=\frac{3}{4}\) \(\frac{9}{20}\frac{3}{4}=\frac{27}{80}=\) 0.338 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+\frac{1}{5}+\frac{1}{4})]}=\) 0.371
10 5.8 3 1 \(1-\frac{1}{3}=\frac{2}{3}\) \(\frac{27}{80}\frac{2}{3}=\frac{9}{40}=\) 0.225 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+\frac{1}{5}+\frac{1}{4}+\frac{1}{3})]}=\) 0.266
11 6.2+ 2 1 \(\bf{1-\frac{0}{2}=1}\) \(\bf{\frac{9}{40}*1=}\) 0.225 \(\bf{\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+\frac{1}{5}+\frac{1}{4}+\frac{1}{3}+0)]}=}\) 0.098
12 14.0 1 1 \(1-\frac{1}{1}=0\) \(\frac{9}{40}*0=\) 0.000 \(\exp{[-(\frac{1}{12}+\frac{1}{11}+\frac{1}{10}+\frac{1}{8}+\frac{1}{7}+\frac{1}{5}+\frac{1}{4}+\frac{1}{3}+\frac{1}{1})]}=\) 0.098

Usando la paquetería survival de R

library(survival)
library(survminer)
time<-c(1.5,3.0,6.2,0.4,0.9,1.1,1.9,2.0,3.3,5.3,5.8,14)
cc<-c(0,0,0,1,1,1,1,1,1,1,1,1)

Primer_empleo_plain<-
surv_summary(survfit(Surv(time,cc)~1, conf.type="plain",conf.int=0.95))

Primer_empleo_log<-
surv_summary(survfit(Surv(time,cc)~1, conf.type="log-log",conf.int=0.95))

knitr::kable(Primer_empleo_plain, caption = "Intervalos simples", digits = 3)
Intervalos simples
time n.risk n.event n.censor surv std.err upper lower
0.4 12 1 0 0.917 0.087 1.000 0.760
0.9 11 1 0 0.833 0.129 1.000 0.622
1.1 10 1 0 0.750 0.167 0.995 0.505
1.5 9 0 1 0.750 0.167 0.995 0.505
1.9 8 1 0 0.656 0.214 0.931 0.381
2.0 7 1 0 0.562 0.264 0.853 0.272
3.0 6 0 1 0.562 0.264 0.853 0.272
3.3 5 1 0 0.450 0.346 0.755 0.145
5.3 4 1 0 0.338 0.450 0.635 0.040
5.8 3 1 0 0.225 0.608 0.493 0.000
6.2 2 0 1 0.225 0.608 0.493 0.000
14.0 1 1 0 0.000 Inf NaN NaN
knitr::kable(Primer_empleo_log, caption = "Intervalos transformados", digits = 3)
Intervalos transformados
time n.risk n.event n.censor surv std.err upper lower
0.4 12 1 0 0.917 0.087 0.988 0.539
0.9 11 1 0 0.833 0.129 0.956 0.482
1.1 10 1 0 0.750 0.167 0.912 0.408
1.5 9 0 1 0.750 0.167 0.912 0.408
1.9 8 1 0 0.656 0.214 0.856 0.320
2.0 7 1 0 0.562 0.264 0.791 0.244
3.0 6 0 1 0.562 0.264 0.791 0.244
3.3 5 1 0 0.450 0.346 0.710 0.155
5.3 4 1 0 0.338 0.450 0.618 0.086
5.8 3 1 0 0.225 0.608 0.511 0.036
6.2 2 0 1 0.225 0.608 0.511 0.036
14.0 1 1 0 0.000 Inf NA NA
ggsurvplot(Primer_empleo_plain, conf.int = FALSE)+ggtitle("S(t) Kaplan Meier")

ggsurvplot(Primer_empleo_plain, conf.int = TRUE)+ggtitle("S(t) Kaplan Meier, IC simples")

ggsurvplot(Primer_empleo_log, conf.int = TRUE)+ggtitle("S(t) Kaplan Meier, IC log-transformados")

El estimador de Nelson-Aalen

Primer_empleo_log_NA<-
surv_summary(survfit(Surv(time,cc)~1, , type= "fleming-harrington", conf.type="log-log",conf.int=0.95))


knitr::kable(Primer_empleo_log_NA, caption = "Intervalos transformados", digits = 3)
Intervalos transformados
time n.risk n.event n.censor surv std.err upper lower
0.4 12 1 0 0.920 0.083 0.988 0.553
0.9 11 1 0 0.840 0.123 0.957 0.498
1.1 10 1 0 0.760 0.159 0.916 0.426
1.5 9 0 1 0.760 0.159 0.916 0.426
1.9 8 1 0 0.671 0.202 0.862 0.341
2.0 7 1 0 0.582 0.247 0.801 0.265
3.0 6 0 1 0.582 0.247 0.801 0.265
3.3 5 1 0 0.476 0.318 0.726 0.179
5.3 4 1 0 0.371 0.405 0.640 0.110
5.8 3 1 0 0.266 0.524 0.543 0.056
6.2 2 0 1 0.266 0.524 0.543 0.056
14.0 1 1 0 0.098 1.129 0.407 0.002
ggsurvplot(Primer_empleo_log_NA, conf.int = FALSE)+ggtitle("S(t) Nelson-Aalen")

ggsurvplot(Primer_empleo_log_NA, conf.int = TRUE)+ggtitle("S(t) Nelson-Aalen, IC simples")

ggsurvplot(Primer_empleo_log_NA, conf.int = TRUE)+ggtitle("S(t) Nelson-Aalen, IC log-transformados")