Estimador Kaplan-Meier

Primeros ejemplos

Consideremos primero un ejemplo en el cual sólo tenemos fallas y no censuras, y el tiempo de supervivencia es:

\[ 10 \ \ 22\ \ 29\ \ 37\ \ 45\ \ 51\ \ 52\ \ 52\ \ 64\ \ 79 \] donde sólo hay una falla entre cada intervalo. Calculamos el estimador de Kaplan-Meier para la función de supervivencia como sigue:

  • \(t=0:\) \((10/10)=1\)
  • \(t=10:\) \((10/10)\cdot(9/10)=0.9\). Pues sobreviven 9 sujetos de los 10 que teníamos, dado que uno ya falló.
  • \(t=22:\) \((10/10)\cdot(9/10)\cdot (8/9)=0.8\). Pues sobreviven 8 sujetos de los 9 que teníamos, dado que uno ya falló. \(\vdots\)
  • \(t=52:\) \((10/10)\cdot(9/10)\cdot(8/9)\cdot (7/8) \cdot (4/5)\cdot (2/4)=0.2\). Agregamos al final el \((2/4)\) puesto que tuvimos un empate, es decir, en \(t=52\) ocurrieron dos fallas por lo cual quedaron 2 sujetos de los 4 que teníamos.

Y continuamos así sucesivamente. En R implementamos el análisis anterior como sigue:

# Funcion de supervivencia: Kaplan-Meier

# Cargamos la librería necesaria
library(survival)

# Definimos el tiempo de supervivencia
tiempo = c(10,22,29,37,45,51,52,52,64,79)

Luego, utilizaremos una función indicadora para identificar las censuras y las fallas:

\[ \mathbb{I}(w)=\left\{\begin{array}&1 \ \ \textrm{si w es falla}\\0 \ \ \textrm{si w es censura}\end{array}\right. \]

por lo cual tenemos que

# Definimos un vector de censuras y fallas.
# En este caso es sólo un vector de fallas

censura = c(1,1,1,1,1,1,1,1,1,1)

Después utilizamos la función Surv()

Surv(tiempo,censura)
##  [1] 10 22 29 37 45 51 52 52 64 79

para juntar el tiempo de supervivencia con las fallas correspondientes a cad tiempo (que en este caso es una falla por tiempo). Proseguimos realizando el ajuste del estimador Kaplan-Meier:

ajuste <- survfit(Surv(tiempo,censura)~1, type = "kaplan-meier", conf.type="none")

summary(ajuste)
## Call: survfit(formula = Surv(tiempo, censura) ~ 1, type = "kaplan-meier", 
##     conf.type = "none")
## 
##  time n.risk n.event survival std.err
##    10     10       1      0.9  0.0949
##    22      9       1      0.8  0.1265
##    29      8       1      0.7  0.1449
##    37      7       1      0.6  0.1549
##    45      6       1      0.5  0.1581
##    51      5       1      0.4  0.1549
##    52      4       2      0.2  0.1265
##    64      2       1      0.1  0.0949
##    79      1       1      0.0     NaN
ajuste$surv
## [1] 0.9 0.8 0.7 0.6 0.5 0.4 0.2 0.1 0.0

y vemos que se obtiene los resultados (algunos) que ya habíamos obtenido antes.

Ahora continuamos con un ejemplo incluyendo censuras:

\[ 10 \ \ 22\ \ 25^{+} \ \ 29\ \ 37\ \ 45^{+}\ \ 45 \ \ 51\ \ 52\ \ 52\ \ 64\ \ 79 \] donde el superíndice + indica que en dicho tiempo de supervivencia se presentó una censura. Para los casos en que se presenta censura, la función de supervivencia se mantiene igual. Por ejemplo, en el tiempo \(t=22\) tenemos que \(\hat{S}(t)=0.833\) y en \(t=25^{+}\) se tiene igual que \(\hat{S}(t)=0.833\). En R tenemos que:

# Funcion de supervivencia: Kaplan-Meier

tiempo = c(10,22,25,29,37,45,45,51,52,52,64,79)
censura = c(1,1,0,1,1,1,0,1,1,1,1,1)
Surv(tiempo,censura)
##  [1] 10  22  25+ 29  37  45  45+ 51  52  52  64  79

vemos que en automático R indica que se presentó una censura en el tiempo \(t=25\) y \(t=45\). Luego

ajuste <- survfit(Surv(tiempo,censura)~1, type = "kaplan-meier", conf.type="none")

summary(ajuste)
## Call: survfit(formula = Surv(tiempo, censura) ~ 1, type = "kaplan-meier", 
##     conf.type = "none")
## 
##  time n.risk n.event survival std.err
##    10     12       1    0.917  0.0798
##    22     11       1    0.833  0.1076
##    29      9       1    0.741  0.1295
##    37      8       1    0.648  0.1426
##    45      7       1    0.556  0.1493
##    51      5       1    0.444  0.1554
##    52      4       2    0.222  0.1356
##    64      2       1    0.111  0.1038
##    79      1       1    0.000     NaN
ajuste$surv
##  [1] 0.9166667 0.8333333 0.8333333 0.7407407 0.6481481 0.5555556 0.4444444
##  [8] 0.2222222 0.1111111 0.0000000

y notamos que se omiten los tiempos donde ocurrieron censuras.

Otro ejemplo

Continuaremos con el ejemplo de la clase pasada

uis <- read.csv("uis.csv")
head(uis)
##   id age  beck hercoc ivhx ndrugtx race treat site time censor
## 1  1  39  9.00      4    3       1    0     1    0  188      1
## 2  2  33 34.00      4    2       8    0     1    0   26      1
## 3  3  33 10.00      2    3       3    0     1    0  207      1
## 4  4  32 20.00      4    3       1    0     0    0  144      1
## 5  5  24  5.00      2    1       5    1     1    0  551      0
## 6  6  30 32.55      3    3       1    0     1    0   32      1

y comenzamos por realizar el ajuste para la función de supervivencia mostrando los respectivos intervalos de confianza:

# Funcion de supervivencia: Kaplan-Meier

ajuste <- survfit(Surv(time, censor)~1, type = "kaplan-meier", conf.type="log-log", conf.int=0.95, data=uis)

summary(ajuste)
## Call: survfit(formula = Surv(time, censor) ~ 1, data = uis, type = "kaplan-meier", 
##     conf.type = "log-log", conf.int = 0.95)
## 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     4    575       2    0.997 0.00246        0.986        0.999
##     6    573       2    0.993 0.00347        0.982        0.997
##     7    571       4    0.986 0.00488        0.972        0.993
##     8    567       1    0.984 0.00518        0.970        0.992
##     9    566       1    0.983 0.00545        0.968        0.991
##    10    565       3    0.977 0.00620        0.961        0.987
##    11    562       2    0.974 0.00665        0.957        0.984
##    12    560       2    0.970 0.00706        0.953        0.982
##    14    558       4    0.963 0.00782        0.945        0.976
##    15    554       2    0.960 0.00817        0.940        0.973
##    18    552       1    0.958 0.00834        0.938        0.972
##    19    551       2    0.955 0.00867        0.934        0.969
##    20    549       1    0.953 0.00882        0.932        0.968
##    21    548       2    0.950 0.00913        0.928        0.965
##    22    546       2    0.946 0.00942        0.924        0.962
##    23    544       5    0.937 0.01010        0.914        0.954
##    24    539       2    0.934 0.01036        0.910        0.951
##    25    537       1    0.932 0.01049        0.908        0.950
##    26    536       4    0.925 0.01097        0.900        0.944
##    28    532       1    0.923 0.01109        0.899        0.942
##    29    531       1    0.922 0.01120        0.897        0.941
##    30    530       2    0.918 0.01143        0.893        0.938
##    31    528       2    0.915 0.01164        0.889        0.935
##    32    526       2    0.911 0.01186        0.885        0.932
##    33    524       1    0.910 0.01196        0.883        0.930
##    34    523       1    0.908 0.01206        0.881        0.929
##    35    522       3    0.903 0.01236        0.875        0.924
##    36    519       3    0.897 0.01265        0.870        0.920
##    37    516       2    0.894 0.01284        0.866        0.916
##    38    514       2    0.890 0.01303        0.862        0.913
##    40    512       1    0.889 0.01312        0.860        0.912
##    43    511       1    0.887 0.01321        0.858        0.910
##    44    510       4    0.880 0.01355        0.851        0.904
##    45    506       3    0.875 0.01380        0.845        0.899
##    46    503       3    0.870 0.01404        0.839        0.895
##    47    500       3    0.864 0.01428        0.834        0.890
##    48    497       1    0.863 0.01436        0.832        0.888
##    50    496       1    0.861 0.01443        0.830        0.887
##    51    495       4    0.854 0.01473        0.822        0.880
##    52    491       1    0.852 0.01480        0.820        0.879
##    53    490       2    0.849 0.01494        0.817        0.876
##    54    488       3    0.843 0.01515        0.811        0.871
##    55    485       1    0.842 0.01522        0.809        0.869
##    56    484       3    0.837 0.01542        0.804        0.864
##    57    481       3    0.831 0.01562        0.798        0.860
##    58    478       2    0.828 0.01574        0.794        0.856
##    59    476       2    0.824 0.01587        0.791        0.853
##    60    474       1    0.823 0.01593        0.789        0.851
##    61    473       1    0.821 0.01599        0.787        0.850
##    62    472       1    0.819 0.01605        0.785        0.848
##    65    471       4    0.812 0.01629        0.778        0.842
##    67    467       1    0.810 0.01635        0.776        0.840
##    68    466       2    0.807 0.01646        0.772        0.837
##    69    464       2    0.803 0.01657        0.769        0.834
##    70    462       2    0.800 0.01668        0.765        0.830
##    71    460       2    0.797 0.01679        0.761        0.827
##    72    458       1    0.795 0.01684        0.759        0.826
##    73    457       2    0.791 0.01695        0.756        0.822
##    74    455       3    0.786 0.01710        0.750        0.817
##    75    452       1    0.784 0.01715        0.748        0.816
##    76    451       2    0.781 0.01725        0.745        0.813
##    78    449       3    0.776 0.01740        0.739        0.808
##    79    446       4    0.769 0.01758        0.732        0.801
##    80    442       2    0.765 0.01768        0.728        0.798
##    81    440       4    0.758 0.01785        0.721        0.791
##    83    436       2    0.755 0.01794        0.717        0.788
##    84    434       3    0.750 0.01807        0.712        0.783
##    85    431       2    0.746 0.01815        0.708        0.780
##    86    429       3    0.741 0.01827        0.703        0.775
##    87    426       6    0.730 0.01850        0.692        0.765
##    89    420       2    0.727 0.01858        0.689        0.761
##    90    418       4    0.720 0.01872        0.681        0.755
##    91    414       2    0.717 0.01879        0.678        0.751
##    92    412       3    0.711 0.01890        0.672        0.746
##    93    409       1    0.710 0.01893        0.671        0.745
##    94    408       3    0.704 0.01903        0.665        0.740
##    95    405       2    0.701 0.01909        0.662        0.736
##    96    403       2    0.697 0.01916        0.658        0.733
##    97    401       1    0.696 0.01919        0.656        0.731
##    98    400       2    0.692 0.01925        0.653        0.728
##    99    398       3    0.687 0.01934        0.647        0.723
##   100    395       2    0.683 0.01940        0.644        0.720
##   101    393       1    0.682 0.01943        0.642        0.718
##   102    392       4    0.675 0.01954        0.635        0.711
##   103    388       2    0.671 0.01959        0.631        0.708
##   104    386       2    0.668 0.01964        0.628        0.705
##   105    384       2    0.664 0.01969        0.624        0.701
##   106    382       5    0.656 0.01982        0.615        0.693
##   107    377       1    0.654 0.01984        0.613        0.691
##   110    376       2    0.650 0.01989        0.610        0.688
##   111    374       1    0.649 0.01991        0.608        0.686
##   113    373       1    0.647 0.01993        0.606        0.684
##   115    372       5    0.638 0.02004        0.598        0.676
##   116    367       2    0.635 0.02008        0.594        0.673
##   118    365       1    0.633 0.02010        0.592        0.671
##   119    364       4    0.626 0.02018        0.585        0.664
##   120    360       3    0.621 0.02023        0.580        0.659
##   121    357       3    0.616 0.02029        0.575        0.654
##   122    354       4    0.609 0.02035        0.568        0.647
##   123    350       3    0.603 0.02040        0.562        0.642
##   124    347       2    0.600 0.02043        0.559        0.639
##   126    345       1    0.598 0.02044        0.557        0.637
##   127    344       1    0.597 0.02046        0.555        0.635
##   129    343       1    0.595 0.02047        0.553        0.634
##   130    342       2    0.591 0.02050        0.550        0.630
##   131    340       1    0.590 0.02051        0.548        0.629
##   132    339       1    0.588 0.02053        0.546        0.627
##   133    338       1    0.586 0.02054        0.545        0.625
##   134    337       1    0.584 0.02055        0.543        0.623
##   136    336       2    0.581 0.02058        0.539        0.620
##   137    334       1    0.579 0.02059        0.538        0.618
##   138    333       1    0.577 0.02060        0.536        0.617
##   139    332       1    0.576 0.02061        0.534        0.615
##   140    331       1    0.574 0.02062        0.532        0.613
##   142    330       3    0.569 0.02065        0.527        0.608
##   143    327       2    0.565 0.02067        0.524        0.605
##   144    325       3    0.560 0.02070        0.518        0.599
##   147    322       1    0.558 0.02071        0.517        0.598
##   148    321       2    0.555 0.02073        0.513        0.594
##   150    319       1    0.553 0.02073        0.511        0.593
##   151    318       1    0.551 0.02074        0.510        0.591
##   152    317       1    0.550 0.02075        0.508        0.589
##   153    316       1    0.548 0.02076        0.506        0.587
##   154    315       1    0.546 0.02076        0.504        0.586
##   155    314       1    0.544 0.02077        0.503        0.584
##   156    313       3    0.539 0.02079        0.497        0.579
##   157    310       1    0.537 0.02079        0.496        0.577
##   159    309       3    0.532 0.02081        0.491        0.572
##   161    306       2    0.529 0.02082        0.487        0.569
##   162    304       2    0.525 0.02082        0.484        0.565
##   164    302       3    0.520 0.02083        0.478        0.560
##   166    299       2    0.517 0.02084        0.475        0.556
##   167    297       2    0.513 0.02084        0.471        0.553
##   168    295       4    0.506 0.02085        0.465        0.546
##   169    291       1    0.504 0.02085        0.463        0.544
##   170    290       3    0.499 0.02085        0.458        0.539
##   171    287       1    0.497 0.02085        0.456        0.537
##   174    286       1    0.496 0.02085        0.454        0.536
##   175    285       3    0.490 0.02085        0.449        0.531
##   176    282       2    0.487 0.02084        0.445        0.527
##   177    280       1    0.485 0.02084        0.444        0.525
##   180    279       2    0.482 0.02084        0.440        0.522
##   181    277       2    0.478 0.02083        0.437        0.518
##   182    275       1    0.477 0.02083        0.435        0.517
##   183    274       1    0.475 0.02082        0.433        0.515
##   184    273       3    0.470 0.02081        0.428        0.510
##   186    270       2    0.466 0.02080        0.425        0.506
##   187    268       1    0.464 0.02080        0.423        0.505
##   188    267       2    0.461 0.02079        0.420        0.501
##   189    265       1    0.459 0.02078        0.418        0.499
##   190    264       2    0.456 0.02077        0.415        0.496
##   191    262       1    0.454 0.02076        0.413        0.494
##   192    261       2    0.450 0.02075        0.409        0.491
##   193    259       1    0.449 0.02074        0.408        0.489
##   196    258       1    0.447 0.02073        0.406        0.487
##   198    257       2    0.443 0.02072        0.403        0.484
##   199    255       1    0.442 0.02071        0.401        0.482
##   200    254       1    0.440 0.02070        0.399        0.480
##   203    253       2    0.437 0.02068        0.396        0.477
##   204    251       1    0.435 0.02067        0.394        0.475
##   207    250       1    0.433 0.02066        0.392        0.473
##   208    249       1    0.431 0.02065        0.391        0.471
##   209    248       1    0.430 0.02064        0.389        0.470
##   210    247       2    0.426 0.02062        0.385        0.466
##   211    245       1    0.424 0.02061        0.384        0.464
##   212    244       1    0.423 0.02060        0.382        0.463
##   215    243       1    0.421 0.02059        0.380        0.461
##   216    242       1    0.419 0.02058        0.379        0.459
##   217    241       1    0.417 0.02056        0.377        0.457
##   218    240       1    0.416 0.02055        0.375        0.456
##   220    239       4    0.409 0.02050        0.368        0.449
##   222    235       1    0.407 0.02049        0.367        0.447
##   224    234       3    0.402 0.02044        0.362        0.442
##   225    231       1    0.400 0.02043        0.360        0.440
##   226    230       3    0.395 0.02038        0.355        0.435
##   227    227       2    0.391 0.02035        0.351        0.431
##   228    225       2    0.388 0.02032        0.348        0.427
##   231    223       3    0.383 0.02027        0.343        0.422
##   232    220       2    0.379 0.02023        0.339        0.419
##   233    218       2    0.376 0.02020        0.336        0.415
##   237    216       1    0.374 0.02018        0.334        0.413
##   238    215       1    0.372 0.02016        0.333        0.412
##   239    214       1    0.370 0.02014        0.331        0.410
##   242    213       2    0.367 0.02010        0.328        0.406
##   243    211       2    0.363 0.02006        0.324        0.403
##   244    209       1    0.362 0.02004        0.323        0.401
##   245    208       2    0.358 0.02000        0.319        0.397
##   246    206       1    0.357 0.01997        0.318        0.396
##   248    205       1    0.355 0.01995        0.316        0.394
##   250    204       1    0.353 0.01993        0.314        0.392
##   253    203       1    0.351 0.01991        0.312        0.390
##   255    202       2    0.348 0.01986        0.309        0.387
##   256    200       1    0.346 0.01984        0.307        0.385
##   259    199       2    0.343 0.01979        0.304        0.381
##   260    197       2    0.339 0.01974        0.301        0.378
##   267    195       1    0.337 0.01972        0.299        0.376
##   268    194       2    0.334 0.01967        0.296        0.373
##   273    192       1    0.332 0.01964        0.294        0.371
##   274    191       3    0.327 0.01956        0.289        0.365
##   276    188       1    0.325 0.01954        0.287        0.364
##   279    187       1    0.323 0.01951        0.286        0.362
##   280    186       1    0.322 0.01948        0.284        0.360
##   282    185       1    0.320 0.01945        0.282        0.358
##   285    184       3    0.315 0.01937        0.277        0.353
##   287    181       1    0.313 0.01934        0.276        0.351
##   289    180       1    0.311 0.01931        0.274        0.349
##   290    179       2    0.308 0.01925        0.271        0.346
##   292    177       1    0.306 0.01922        0.269        0.344
##   296    176       1    0.304 0.01919        0.267        0.342
##   297    175       1    0.303 0.01916        0.266        0.340
##   299    174       1    0.301 0.01913        0.264        0.339
##   300    173       1    0.299 0.01909        0.262        0.337
##   306    172       2    0.296 0.01903        0.259        0.333
##   307    170       2    0.292 0.01896        0.256        0.330
##   310    168       1    0.290 0.01893        0.254        0.328
##   313    167       1    0.289 0.01890        0.252        0.326
##   317    166       1    0.287 0.01886        0.251        0.324
##   321    165       1    0.285 0.01883        0.249        0.323
##   324    164       1    0.283 0.01879        0.247        0.321
##   325    163       1    0.282 0.01876        0.246        0.319
##   328    162       1    0.280 0.01872        0.244        0.317
##   332    161       1    0.278 0.01869        0.242        0.315
##   339    160       1    0.277 0.01865        0.241        0.314
##   343    159       1    0.275 0.01862        0.239        0.312
##   348    158       1    0.273 0.01858        0.237        0.310
##   349    157       1    0.271 0.01854        0.236        0.308
##   353    156       1    0.270 0.01850        0.234        0.306
##   354    155       3    0.264 0.01839        0.229        0.301
##   355    152       1    0.263 0.01835        0.227        0.299
##   360    151       1    0.261 0.01831        0.226        0.297
##   361    150       1    0.259 0.01827        0.224        0.296
##   362    149       1    0.257 0.01823        0.222        0.294
##   364    148       1    0.256 0.01819        0.221        0.292
##   369    147       1    0.254 0.01815        0.219        0.290
##   373    146       1    0.252 0.01811        0.217        0.288
##   374    145       1    0.250 0.01807        0.216        0.286
##   377    144       1    0.249 0.01803        0.214        0.285
##   379    143       1    0.247 0.01798        0.213        0.283
##   380    142       1    0.245 0.01794        0.211        0.281
##   384    141       1    0.243 0.01790        0.209        0.279
##   386    140       1    0.242 0.01785        0.208        0.277
##   396    139       1    0.240 0.01781        0.206        0.276
##   398    138       1    0.238 0.01777        0.204        0.274
##   399    137       1    0.237 0.01772        0.203        0.272
##   401    136       1    0.235 0.01768        0.201        0.270
##   408    135       1    0.233 0.01763        0.199        0.268
##   431    134       1    0.231 0.01758        0.198        0.267
##   434    133       1    0.230 0.01754        0.196        0.265
##   436    132       1    0.228 0.01749        0.194        0.263
##   437    131       1    0.226 0.01744        0.193        0.261
##   441    130       1    0.224 0.01740        0.191        0.259
##   442    129       1    0.223 0.01735        0.190        0.257
##   449    128       1    0.221 0.01730        0.188        0.256
##   458    127       1    0.219 0.01725        0.186        0.254
##   459    126       2    0.216 0.01715        0.183        0.250
##   461    124       1    0.214 0.01710        0.181        0.248
##   471    123       1    0.212 0.01705        0.180        0.246
##   477    122       1    0.210 0.01700        0.178        0.245
##   490    121       1    0.209 0.01695        0.177        0.243
##   491    120       1    0.207 0.01689        0.175        0.241
##   494    119       1    0.205 0.01684        0.173        0.239
##   499    118       1    0.203 0.01679        0.172        0.237
##   502    116       1    0.202 0.01674        0.170        0.235
##   516    111       1    0.200 0.01668        0.168        0.234
##   519    110       1    0.198 0.01663        0.167        0.232
##   559     50       1    0.194 0.01676        0.162        0.228
##   568     37       1    0.189 0.01711        0.157        0.224
##   659      8       1    0.165 0.02668        0.117        0.221

y graaficamos el estimador con sus respectivos intervalos de confianza

plot(ajuste, main="Estimador Kaplan-Meier: Recaída en adicciones", xlab="tiempo", ylab=expression(hat(S)(t)), col="blue", col.main="darkred", col.lab="darkred", conf.int=T, lwd=2)