-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathcap-medicina.html
725 lines (709 loc) · 65.5 KB
/
cap-medicina.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Capítulo 54 Análisis de datos en medicina | Fundamentos de ciencia de datos con R</title>
<meta name="author" content="Gema Fernández-Avilés y José-María Montero">
<meta name="description" content="Alberto M. Borobia\(^{a}\) y María Jiménez-González\(^{a}\) \(^{a}\)Hospital Universitario La Paz - IdiPAZ 54.1 Justificación La aplicación de la estadística en la investigación clínica ha sido...">
<meta name="generator" content="bookdown 0.37 with bs4_book()">
<meta property="og:title" content="Capítulo 54 Análisis de datos en medicina | Fundamentos de ciencia de datos con R">
<meta property="og:type" content="book">
<meta property="og:image" content="/img/cover.png">
<meta property="og:description" content="Alberto M. Borobia\(^{a}\) y María Jiménez-González\(^{a}\) \(^{a}\)Hospital Universitario La Paz - IdiPAZ 54.1 Justificación La aplicación de la estadística en la investigación clínica ha sido...">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Capítulo 54 Análisis de datos en medicina | Fundamentos de ciencia de datos con R">
<meta name="twitter:description" content="Alberto M. Borobia\(^{a}\) y María Jiménez-González\(^{a}\) \(^{a}\)Hospital Universitario La Paz - IdiPAZ 54.1 Justificación La aplicación de la estadística en la investigación clínica ha sido...">
<meta name="twitter:image" content="/img/cover.png">
<!-- JS --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://kit.fontawesome.com/6ecbd6c532.js" crossorigin="anonymous"></script><script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="libs/bootstrap-4.6.0/bootstrap.min.css" rel="stylesheet">
<script src="libs/bootstrap-4.6.0/bootstrap.bundle.min.js"></script><script src="libs/bs3compat-0.6.1/transition.js"></script><script src="libs/bs3compat-0.6.1/tabs.js"></script><script src="libs/bs3compat-0.6.1/bs3compat.js"></script><link href="libs/bs4_book-1.0.0/bs4_book.css" rel="stylesheet">
<script src="libs/bs4_book-1.0.0/bs4_book.js"></script><link href="libs/tabwid-1.1.3/tabwid.css" rel="stylesheet">
<script src="libs/tabwid-1.1.3/tabwid.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- CSS --><link rel="stylesheet" href="bs4_style.css">
<link rel="stylesheet" href="bs4_book.css">
<link rel="stylesheet" href="style.css">
</head>
<body data-spy="scroll" data-target="#toc">
<div class="container-fluid">
<div class="row">
<header class="col-sm-12 col-lg-3 sidebar sidebar-book"><a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
<div class="d-flex align-items-start justify-content-between">
<h1>
<a href="index.html" title="">Fundamentos de ciencia de datos con <strong>R</strong></a>
</h1>
<button class="btn btn-outline-primary d-lg-none ml-2 mt-1" type="button" data-toggle="collapse" data-target="#main-nav" aria-expanded="true" aria-controls="main-nav"><i class="fas fa-bars"></i><span class="sr-only">Show table of contents</span></button>
</div>
<div id="main-nav" class="collapse-lg">
<form role="search">
<input id="search" class="form-control" type="search" placeholder="Buscar" aria-label="Buscar">
</form>
<nav aria-label="Contenido"><h2>Contenido</h2>
<ul class="book-toc list-unstyled">
<li><a class="" href="index.html">Prefacio</a></li>
<li><a class="" href="pr%C3%B3logo-by-julia-silge.html">Prólogo (by Julia Silge)</a></li>
<li><a class="" href="pr%C3%B3logo-por-yanina-bellini.html">Prólogo (por Yanina Bellini)</a></li>
<li class="book-part">Ciencia, datos, software… y científicos</li>
<li><a class="" href="ciencia-datos.html"><span class="header-section-number">1</span> ¿Es la ciencia de datos una ciencia?</a></li>
<li><a class="" href="metodologia.html"><span class="header-section-number">2</span> Metodología en ciencia de datos</a></li>
<li><a class="" href="ch-110003.html"><span class="header-section-number">3</span> R para ciencia de datos</a></li>
<li><a class="" href="cap-etica.html"><span class="header-section-number">4</span> Ética en la ciencia de datos</a></li>
<li class="book-part">Bienvenidos a la jungla de datos</li>
<li><a class="" href="datos-sql.html"><span class="header-section-number">5</span> Gestión de bases de datos relacionales</a></li>
<li><a class="" href="cap-nosql.html"><span class="header-section-number">6</span> Gestión de bases de datos NoSQL</a></li>
<li><a class="" href="DGDQM.html"><span class="header-section-number">7</span> Gobierno, gestión y calidad del dato</a></li>
<li><a class="" href="cap-130009.html"><span class="header-section-number">8</span> Integración y limpieza de datos</a></li>
<li><a class="" href="chap-feature.html"><span class="header-section-number">9</span> Selección y transformación de variables</a></li>
<li><a class="" href="chap-herramientas.html"><span class="header-section-number">10</span> Herramientas para el análisis en ciencia de datos</a></li>
<li><a class="" href="cap-120006-aed.html"><span class="header-section-number">11</span> Análisis exploratorio de datos</a></li>
<li class="book-part">Fundamentos de estadística</li>
<li><a class="" href="Funda-probab.html"><span class="header-section-number">12</span> Probabilidad</a></li>
<li><a class="" href="Fundainfer.html"><span class="header-section-number">13</span> Inferencia estadística</a></li>
<li><a class="" href="muestreo.html"><span class="header-section-number">14</span> Muestreo y remuestreo</a></li>
<li class="book-part">Modelización estadística</li>
<li><a class="" href="cap-lm.html"><span class="header-section-number">15</span> Modelización lineal</a></li>
<li><a class="" href="cap-glm.html"><span class="header-section-number">16</span> Modelos lineales generalizados</a></li>
<li><a class="" href="cap-gam.html"><span class="header-section-number">17</span> Modelos aditivos generalizados</a></li>
<li><a class="" href="cap-mxm.html"><span class="header-section-number">18</span> Modelos mixtos</a></li>
<li><a class="" href="cap-sparse.html"><span class="header-section-number">19</span> Modelos \(\textit{sparse}\) y métodos penalizados de regresión</a></li>
<li><a class="" href="cap-series-temp.html"><span class="header-section-number">20</span> Modelización de series temporales</a></li>
<li><a class="" href="cap-discriminante.html"><span class="header-section-number">21</span> Análisis discriminante</a></li>
<li><a class="" href="cap-conjunto.html"><span class="header-section-number">22</span> Análisis conjunto</a></li>
<li><a class="" href="tablas-contingencia.html"><span class="header-section-number">23</span> Análisis de tablas de contingencia</a></li>
<li class="book-part">Machine learning supervisado</li>
<li><a class="" href="cap-arboles.html"><span class="header-section-number">24</span> Árboles de clasificación y regresión</a></li>
<li><a class="" href="cap-svm.html"><span class="header-section-number">25</span> Máquinas de vector soporte</a></li>
<li><a class="" href="cap-knn.html"><span class="header-section-number">26</span> Clasificador \(k\)-vecinos más próximos</a></li>
<li><a class="" href="cap-naive-bayes.html"><span class="header-section-number">27</span> Naive Bayes</a></li>
<li><a class="" href="cap-bagg-rf.html"><span class="header-section-number">28</span> Métodos ensamblados: \(\bf \textit {bagging}\) y \(\bf \textit{random}\) \(\bf \textit{forest}\)</a></li>
<li><a class="" href="cap-boosting-xgboost.html"><span class="header-section-number">29</span> \(\bf \textit{Boosting}\) y el algoritmo XGBoost</a></li>
<li class="book-part">Machine learning no supervisado</li>
<li><a class="" href="cap-cluster.html"><span class="header-section-number">30</span> Análisis clúster: clusterización jerárquica</a></li>
<li><a class="" href="no-jerarquico.html"><span class="header-section-number">31</span> Análisis clúster: clusterización no jerárquica</a></li>
<li><a class="" href="acp.html"><span class="header-section-number">32</span> Análisis de componentes principales</a></li>
<li><a class="" href="af.html"><span class="header-section-number">33</span> Análisis factorial</a></li>
<li><a class="" href="mds.html"><span class="header-section-number">34</span> Escalamiento multidimensional</a></li>
<li><a class="" href="correspondencias.html"><span class="header-section-number">35</span> Análisis de correspondencias</a></li>
<li class="book-part">Deep learning</li>
<li><a class="" href="capNN.html"><span class="header-section-number">36</span> Redes neuronales artificiales</a></li>
<li><a class="" href="cap-redes-convol.html"><span class="header-section-number">37</span> Redes neuronales convolucionales</a></li>
<li class="book-part">Ciencia de datos de texto y redes</li>
<li><a class="" href="mineria-textos.html"><span class="header-section-number">38</span> Minería de textos</a></li>
<li><a class="" href="grafos.html"><span class="header-section-number">39</span> Análisis de grafos y redes sociales</a></li>
<li class="book-part">Ciencia de datos espaciales</li>
<li><a class="" href="datos-espaciales.html"><span class="header-section-number">40</span> Trabajando con datos espaciales</a></li>
<li><a class="" href="geo.html"><span class="header-section-number">41</span> Geoestadística</a></li>
<li><a class="" href="cap-econom-esp.html"><span class="header-section-number">42</span> Modelos econométricos espaciales</a></li>
<li><a class="" href="cap-pp.html"><span class="header-section-number">43</span> Procesos de puntos</a></li>
<li class="book-part">Comunica y colabora</li>
<li><a class="" href="cap-120007-informes.html"><span class="header-section-number">44</span> Informes reproducibles con R Markdown y Quarto</a></li>
<li><a class="" href="shiny.html"><span class="header-section-number">45</span> Creación de aplicaciones web interactivas con Shiny</a></li>
<li><a class="" href="github.html"><span class="header-section-number">46</span> Git y GitHub R</a></li>
<li><a class="" href="geoproces.html"><span class="header-section-number">47</span> Geoprocesamiento en nube</a></li>
<li class="book-part">Casos de estudio en ciencia de datos</li>
<li><a class="" href="cap-crimen.html"><span class="header-section-number">48</span> Análisis de una red criminal</a></li>
<li><a class="" href="cap-publicidad.html"><span class="header-section-number">49</span> Optimización de inversiones publicitarias</a></li>
<li><a class="" href="cap-twitter.html"><span class="header-section-number">50</span> ¿Cómo tuitea Elon Musk?</a></li>
<li><a class="" href="cap-periodismo.html"><span class="header-section-number">51</span> Análisis electoral: de RStudio a su periódico favorito</a></li>
<li><a class="" href="paro-clm.html"><span class="header-section-number">52</span> El impacto de las crisis financiera y de la COVID-19 en el paro de CLM</a></li>
<li><a class="" href="cap-rfm.html"><span class="header-section-number">53</span> Segmentación de clientes en el comercio minorista</a></li>
<li><a class="active" href="cap-medicina.html"><span class="header-section-number">54</span> Análisis de datos en medicina</a></li>
<li><a class="" href="cap-futbol.html"><span class="header-section-number">55</span> Messi y Ronaldo: dos ídolos desde la perspectiva de los datos</a></li>
<li><a class="" href="cambioclimatico.html"><span class="header-section-number">56</span> Una nota sobre el cambio climático</a></li>
<li><a class="" href="cap-sist-exp.html"><span class="header-section-number">57</span> Implementación de un sistema experto en el ámbito pediátrico</a></li>
<li><a class="" href="cap-ree.html"><span class="header-section-number">58</span> Predicción de consumo eléctrico con redes neuronales artificiales</a></li>
<li><a class="" href="nlp-textil.html"><span class="header-section-number">59</span> El procesamiento del lenguaje natural para tendencias de moda en textil</a></li>
<li><a class="" href="cap-fraude.html"><span class="header-section-number">60</span> Detección de fraude de tarjetas de crédito</a></li>
<li class="book-part">Appendix</li>
<li><a class="" href="info-session.html"><span class="header-section-number">A</span> Información de la sesión</a></li>
<li><a class="" href="referencias.html">Referencias</a></li>
</ul>
<div class="book-extra">
</div>
</nav>
</div>
</header><main class="col-sm-12 col-md-9 col-lg-7" id="content"><div id="cap-medicina" class="section level1" number="54">
<h1>
<span class="header-section-number">Capítulo 54</span> Análisis de datos en medicina<a class="anchor" aria-label="anchor" href="#cap-medicina"><i class="fas fa-link"></i></a>
</h1>
<p><em>Alberto M. Borobia</em><span class="math inline">\(^{a}\)</span> y <em>María Jiménez-González</em><span class="math inline">\(^{a}\)</span></p>
<p><span class="math inline">\(^{a}\)</span>Hospital Universitario La Paz - IdiPAZ</p>
<div id="justificación" class="section level2" number="54.1">
<h2>
<span class="header-section-number">54.1</span> Justificación<a class="anchor" aria-label="anchor" href="#justificaci%C3%B3n"><i class="fas fa-link"></i></a>
</h2>
<p>La aplicación de la estadística en la investigación clínica ha sido una de las herramientas clave en los últimos dos años. La enfermedad por coronavirus (COVID-19) es una enfermedad infecciosa provocada por el virus SARS-CoV-2 que causó una pandemia mundial.
Durante el año 2020, más de 13 millones de casos diagnosticados en España arrojaban un diagnóstico claro: se necesitaba más investigación.</p>
<p>El primer apartado de este capítulo señala la importancia de la identificación de los sesgos (en concreto, del sesgo de selección) que aparecen en los estudios de investigación no aleatorizados. Tras ello, se aborda un ejemplo práctico de una de las aplicaciones más significativas de la bioestadística: el análisis de supervivencia, con el que se contestan preguntas tan importantes como: ¿qué factores de riesgo están asociados a la mortalidad provocada por coronavirus?
</p>
</div>
<div id="datos-en-investigación-clínica-y-ensayos-clínicos" class="section level2" number="54.2">
<h2>
<span class="header-section-number">54.2</span> Datos en investigación clínica y ensayos clínicos<a class="anchor" aria-label="anchor" href="#datos-en-investigaci%C3%B3n-cl%C3%ADnica-y-ensayos-cl%C3%ADnicos"><i class="fas fa-link"></i></a>
</h2>
<p>Se abordarán tres tipos de análisis a partir de los conjuntos de datos <code>datos_observacional</code> y <code>datos_supervivencia</code>, incluidos en el paquete <code>CDR</code> de este manual: (i) eliminación de sesgos, o más concretamente, la eliminación del sesgo de selección; (ii) estimación e interpretación de las curvas de supervivencia; y (iii) estimación e interpretación de la regresión de Cox.</p>
<div id="qué-es-un-ensayo-clínico" class="section level3" number="54.2.1">
<h3>
<span class="header-section-number">54.2.1</span> ¿Qué es un ensayo clínico?<a class="anchor" aria-label="anchor" href="#qu%C3%A9-es-un-ensayo-cl%C3%ADnico"><i class="fas fa-link"></i></a>
</h3>
<p>
</p>
<p>En la investigación clínica existen dos tipos de estudios: <strong>ensayos clínicos</strong> y <strong>estudios observacionales</strong>. Los ensayos clínicos aleatorios son el diseño experimental óptimo para proporcionar evidencia, eficacia y seguridad de una intervención <span class="citation">(<a href="referencias.html#ref-Lium3164">X. Liu et al., 2020</a>)</span>. En este tipo de diseño, los tratamientos estudiados o investigados son asignados aleatoriamente a distintos grupos, lo que permitirá afirmar que las diferencias en los resultados después del tratamiento, si es que las hay, reflejen los efectos de dichos tratamientos y no de otras características de los individuos participantes en el ensayo <span class="citation">(<a href="referencias.html#ref-rosenbaum2005observational">Rosenbaum, 2005</a>)</span>. Cuando estas condiciones ideales no son posibles (falta de recursos, financiación, tiempo, etc.), ya no se habla de ensayos clínicos aleatorizados, sino de estudios observacionales.</p>
<p>Previo a la puesta en marcha de un ensayo clínico, es imprescindible la redacción de un <strong>protocolo</strong> y un <strong>plan de análisis estadístico (PAE)</strong>. El protocolo, elaborado por los investigadores del estudio, precisa y justifica los métodos y planes del proceso que se llevará a cabo en el ensayo clínico <span class="citation">(<a href="referencias.html#ref-rivera2020guidelines">Rivera et al., 2020</a>)</span>; el PAE detalla las características principales del análisis estadístico de los datos, que deben describirse en la sección estadística del protocolo <span class="citation">(<a href="referencias.html#ref-lewis1999statistical">Lewis, 1999</a>)</span>.</p>
<p>Los trabajos anteriormente mencionados, y el resto de directrices necesarias para un ensayo clínico, están regulados por la <em>Conferencia Internacional sobre Armonización de Requisitos Técnicos para el Registro de Productos Farmacéuticos para Uso Humano</em> (ICH, por sus siglas en inglés).</p>
</div>
<div id="limitaciones-de-los-estudios-observacionales" class="section level3" number="54.2.2">
<h3>
<span class="header-section-number">54.2.2</span> Limitaciones de los estudios observacionales<a class="anchor" aria-label="anchor" href="#limitaciones-de-los-estudios-observacionales"><i class="fas fa-link"></i></a>
</h3>
<p>En la sección anterior se puso de manifiesto la importancia de los ensayos clínicos aleatorizados. Sin embargo, la posible falta de recursos, financiación, tiempo o materiales dificultan la puesta en marcha y realización de los mismos. En consecuencia, la puesta en práctica de la investigación puede no ser la ideal. Los estudios observacionales, sin embargo, son una herramienta elemental en circunstancias no tan óptimas, ya que permiten analizar e investigar (contra viento y marea).</p>
<p>La limitación principal de los estudios observacionales es que introducen sesgos en el análisis. Los ensayos clínicos tienen como principal objetivo eliminar el <strong>sesgo de selección</strong>: cuando los sujetos no son asignados aleatoriamente, los resultados diferentes con distintos tratamientos pueden reflejar diferencias en las características del pacientes en lugar del efecto de los tratamientos <span class="citation">(<a href="referencias.html#ref-rosenbaum2005observational">Rosenbaum, 2005</a>)</span>.</p>
<p>Abundando en la cuestión, a la hora de valorar el efecto de un tratamiento determinado en la evolución de los pacientes, el diseño ideal es el del estudio aleatorizado. Si la decisión sobre quién recibirá o no el tratamiento no es aleatoria, las conclusiones que se obtengan del análisis no serán fiables porque pueden estar influidas por otros factores vinculados con la evolución del paciente (variables confusoras) que, en realidad, son los verdaderos responsables de dicha evolución y no el tratamiento.</p>
<p>Por ejemplo, si para determinar si es mejor cirugía o tratamiento médico se aplica cirugía a los pacientes más jóvenes y con menos comorbilidades y tratamiento médico a los más enfermos, no se podrá concluir posteriormente que la mejor evolución de los pacientes corresponde a la cirugía, porque dicha mejor evolución podría deberse a las diferencias en el patrón de covariables.</p>
<p>La aleatorización, al asegurar que las características basales conocidas y las desconocidas son similares en los pacientes a los que se les aplica cirugía y en aquellos a los que se le aplica tratamiento médico, elimina, en principio, el sesgo de selección, y permite afirmar que si hay diferencias en la evolución de los pacientes con cirugía y con tratamiento médico, dichas diferencias se deben precisamente a la forma de tratar a esos pacientes.</p>
<p>
</p>
</div>
<div id="índice-de-propensión" class="section level3" number="54.2.3">
<h3>
<span class="header-section-number">54.2.3</span> Índice de propensión<a class="anchor" aria-label="anchor" href="#%C3%ADndice-de-propensi%C3%B3n"><i class="fas fa-link"></i></a>
</h3>
<p>Una solución aconsejable y recomendable ante los sesgos “escondidos” en los estudios observacionales es utilizar la técnica del <strong>índice de propensión</strong> (<em>propensity score</em>). El índice de propensión normalmente se formula en forma de probabilidad condicionada. Hablando en términos de pacientes a los que se les puede aplicar cirugía o tratamiento médico, es una forma de expresar en términos probabilísticos si el reparto de pacientes entre ambos grupos (cirugía y tratamiento) se ha hecho homogéneamente o no respecto a una serie de variables confusoras que podrían provocar una mala interpretación del resultado obtenido.</p>
<p>En concreto se trata de contrastar dos probabilidades. Utilizando el ejemplo de cirugía o tratamiento médico, la primera probabilidad es P(Ser sometido a una cirugía | Ciertos valores de las variables confusoras) mientras que la segunda es
P(Ser sometido a cirugía). Si ambas probabilidades son iguales, entonces los valores de las variables confusoras están repartidos más o menos igualmente entre el grupo de pacientes al que se le aplica cirugía y el grupo al que se le aplica tratamiento médico. En caso de ser distintas, dicho reparto sería heterogéneo y, en consecuencia, debería reconducirse la muestra para conseguir una situación de homogeneidad.</p>
<p>La pregunta que surge ahora es ¿cómo se consigue dicha homogeneización?<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content='<p>Para profundizar en esta cuestión, así como en el concepto de índice de propensión, véase <a href="https://jllopisperez.com/2013/03/04/tema-24-analisis-de-propensiones-propensity-score-analysis/">https://jllopisperez.com/2013/03/04/tema-24-analisis-de-propensiones-propensity-score-analysis/</a>.</p>'><sup>303</sup></a> Se pueden contemplar tres modalidades básicas: <span class="math inline">\((i)\)</span> emparejamiento (<em>matching</em>); <span class="math inline">\((ii)\)</span> estratificación y <span class="math inline">\((iii)\)</span> regresión logística.</p>
<p>El emparejamiento consiste en seleccionar entre los grupos en función del posicionamiento de los puntos en el espacio de tantas dimensiones como variables se quieran contemplar en el estudio. La estratificación, como su propio nombre indica, consiste en crear estratos, es decir, subconjuntos en cada uno de los grupos que sean homogéneos entre sí. Posteriormente se mezclan los estratos y se deja fuera a los individuos que no encajen en esos estratos. Para construir los estratos se utiliza el análisis clúster. Se trata de elegir estratos generados a través del dendrograma, estratos homogéneos que tengan representantes de los dos grupos que se quieran comparar y que, al estar cerca en el dendrograma, tendrán propensiones similares. La tercera modalidad consiste en hacer una regresión logística con variable respuesta dicotómica: ser de un grupo (por ejemplo, cirugía) o del otro (tratamiento médico), y como variables independientes, las variables confusoras. Y se trata, entonces, de ver cómo se comportan los coeficientes de esa regresión. Cuando los coeficientes de la regresión logística no sean significativos los grupos serán homogéneos.</p>
</div>
<div id="ejemplo-práctico-en-r-de-un-estudio-observacional" class="section level3" number="54.2.4">
<h3>
<span class="header-section-number">54.2.4</span> Ejemplo práctico en <strong>R</strong> de un estudio observacional<a class="anchor" aria-label="anchor" href="#ejemplo-pr%C3%A1ctico-en-r-de-un-estudio-observacional"><i class="fas fa-link"></i></a>
</h3>
<p>El dataset sintético <code>datos_observacional</code> contenido en la librería <code>CDR</code> del libro contiene los datos de un hipotético estudio observacional sobre coronavirus a partir de personas hospitalizadas por dicha enfermedad. El objetivo del estudio es analizar los factores de riesgo asociados a la mortalidad causada por dicha enfermedad.</p>
<div class="sourceCode" id="cb800"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st">"CDR"</span><span class="op">)</span></span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="http://haozhu233.github.io/kableExtra/">"kableExtra"</a></span><span class="op">)</span></span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://dplyr.tidyverse.org">"dplyr"</a></span><span class="op">)</span></span>
<span><span class="va">datos_observacional</span> <span class="op"><-</span> <span class="va">datos_observacional</span> <span class="op">|></span></span>
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html">mutate</a></span><span class="op">(</span>comorbilidades <span class="op">=</span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/recode.html">recode</a></span><span class="op">(</span><span class="va">comorbilidades</span>,</span>
<span> `1 o más comorbilidades` <span class="op">=</span> <span class="st">"1 o más"</span>, No <span class="op">=</span> <span class="st">"No"</span><span class="op">)</span><span class="op">)</span></span>
<span><span class="fu"><a href="https://rdrr.io/pkg/terra/man/headtail.html">head</a></span><span class="op">(</span><span class="va">datos_observacional</span>, <span class="fl">3</span><span class="op">)</span></span>
<span><span class="co">#> # A tibble: 3 × 8</span></span>
<span><span class="co">#> ID fecha_hospitalizacion sexo edad comorbilidades fecha_alta exitus</span></span>
<span><span class="co">#> <dbl> <dttm> <chr> <dbl> <chr> <chr> <dbl></span></span>
<span><span class="co">#> 1 1 2015-04-17 00:00:00 Mujer 76 1 o más 17/04/2020 1</span></span>
<span><span class="co">#> 2 2 2015-03-21 00:00:00 Mujer 64 1 o más 31/03/2020 0</span></span>
<span><span class="co">#> 3 3 2015-04-09 00:00:00 Hombre 65 1 o más 16/04/2020 0</span></span>
<span><span class="co">#> # ℹ 1 more variable: fecha_exitus <dttm></span></span></code></pre></div>
<p>En la literatura sobre la cuestión, se ha evidenciado que las mujeres de mayor edad y con una o más comorbilidades tienen más riesgo de fallecer (<em>exitus</em>) por coronavirus. En investigación, la estructura de
los resultados en un <em>paper</em> o en un informe estadístico, independientemente de la revista o PAE,
comienza en el mismo punto: una tabla resumen de las características basales de la población
objeto de estudio. El paquete <code>tableone</code> (sencillo juego de palabras) integra funciones específicas para la creación de dichas tablas. La función principal de este paquete es <code><a href="https://rdrr.io/pkg/tableone/man/CreateTableOne.html">CreateTableOne()</a></code>.</p>
<div class="sourceCode" id="cb801"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://github.com/kaz-yos/tableone">"tableone"</a></span><span class="op">)</span></span>
<span><span class="va">my_vars</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"sexo"</span>, <span class="st">"edad"</span>, <span class="st">"comorbilidades"</span><span class="op">)</span></span>
<span><span class="va">nonnormal</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"edad"</span><span class="op">)</span></span>
<span><span class="va">factor_vars</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"sexo"</span>, <span class="st">"comorbilidades"</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># crea la tabla</span></span>
<span><span class="va">tab1</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/pkg/tableone/man/CreateTableOne.html">CreateTableOne</a></span><span class="op">(</span></span>
<span> vars <span class="op">=</span> <span class="va">my_vars</span>, factorVars <span class="op">=</span> <span class="va">factor_vars</span>,</span>
<span> strata <span class="op">=</span> <span class="st">"exitus"</span>, data <span class="op">=</span> <span class="va">datos_observacional</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="co"># imprime la tabla</span></span>
<span><span class="va">tab1</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span><span class="op">(</span><span class="va">tab1</span>,</span>
<span> showAllLevels <span class="op">=</span> <span class="cn">TRUE</span>, formatOptions <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html">list</a></span><span class="op">(</span>big.mark <span class="op">=</span> <span class="st">","</span><span class="op">)</span>,</span>
<span> exact <span class="op">=</span> <span class="st">"stage"</span>, nonnormal <span class="op">=</span> <span class="va">nonnormal</span></span>
<span><span class="op">)</span></span></code></pre></div>
<p>Para presentar la tabla de resultados formateada basta con usar la función <code><a href="https://rdrr.io/pkg/knitr/man/kable.html">kable()</a></code>:</p>
<div class="sourceCode" id="cb802"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/kableExtra/man/add_footnote.html">add_footnote</a></span><span class="op">(</span><span class="fu">knitr</span><span class="fu">::</span><span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html">kable</a></span><span class="op">(</span><span class="va">tab1</span><span class="op">[</span>,<span class="op">-</span><span class="fl">5</span><span class="op">]</span>, booktabs<span class="op">=</span><span class="cn">TRUE</span>,</span>
<span> caption <span class="op">=</span> <span class="st">"Características basales de la población"</span>,</span>
<span> col.names <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"Nivel"</span>,<span class="st">"Vivo"</span>, <span class="st">"Exitus"</span>,<span class="st">"p-valor"</span><span class="op">)</span><span class="op">)</span>,</span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"Median = Mediana"</span>,<span class="st">"IQR = Rango intercuartílico"</span><span class="op">)</span>, notation <span class="op">=</span> <span class="st">"number"</span><span class="op">)</span></span></code></pre></div>
<div class="inline-table"><table class="table table-sm">
<caption>
<span id="tab:tabla1">Tabla 54.1: </span>Características basales de la población
</caption>
<thead><tr>
<th style="text-align:left;">
</th>
<th style="text-align:left;">
Nivel
</th>
<th style="text-align:left;">
Vivo
</th>
<th style="text-align:left;">
Exitus
</th>
<th style="text-align:left;">
p-valor
</th>
</tr></thead>
<tbody>
<tr>
<td style="text-align:left;">
n
</td>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
79
</td>
<td style="text-align:left;">
21
</td>
<td style="text-align:left;">
</td>
</tr>
<tr>
<td style="text-align:left;">
sexo (%)
</td>
<td style="text-align:left;">
Hombre
</td>
<td style="text-align:left;">
28 (35.4)
</td>
<td style="text-align:left;">
2 ( 9.5)
</td>
<td style="text-align:left;">
0.042
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
Mujer
</td>
<td style="text-align:left;">
51 (64.6)
</td>
<td style="text-align:left;">
19 (90.5)
</td>
<td style="text-align:left;">
</td>
</tr>
<tr>
<td style="text-align:left;">
edad (median [IQR])
</td>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
64.00 [53.00, 73.00]
</td>
<td style="text-align:left;">
82.00 [72.00, 85.00]
</td>
<td style="text-align:left;">
<0.001
</td>
</tr>
<tr>
<td style="text-align:left;">
comorbilidades (%)
</td>
<td style="text-align:left;">
1 o más
</td>
<td style="text-align:left;">
43 (54.4)
</td>
<td style="text-align:left;">
18 (85.7)
</td>
<td style="text-align:left;">
0.018
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
No
</td>
<td style="text-align:left;">
36 (45.6)
</td>
<td style="text-align:left;">
3 (14.3)
</td>
<td style="text-align:left;">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="padding: 0; border:0;" colspan="100%">
<sup>1</sup> Median = Mediana
</td>
</tr>
<tr>
<td style="padding: 0; border:0;" colspan="100%">
<sup>2</sup> IQR = Rango intercuartílico
</td>
</tr>
</tfoot>
</table></div>
<p>La Tabla <a href="cap-medicina.html#tab:tabla1">54.1</a> confirma los resultados anteriormente publicados en la literatura: el sesgo de selección que provoca el desequilibrio en los totales marginales de los dos niveles la variable principal (<code>exitus</code>) en las variables <code>sexo</code>, <code>edad</code> y <code>comorbilidades</code> se evidencia a través de la significación de estas.<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content="<p>Esto ocurre porque el <em>p</em>-valor combina la magnitud de la relación observada entre una variable explicativa y la variable respuesta con la cantidad de información disponible. Por eso, una relación puede ser no significativa porque realmente la relación sea inexistente o bien porque se posee poca información (muestra insuficiente) para considerar una determinada relación como significativa. Y al contrario, cuando existe mucha información, aunque la relación no exista, puede salir significativa debido a la gran cantidad de información disponible.</p>"><sup>304</sup></a> Por consiguiente, para llevar a cabo cualquier análisis estadístico de los datos, por ejemplo, para estimar un modelo predictivo, se hace absolutamente necesaria la aplicación del índice de propensión; en otro caso, los resultados no serán fiables.</p>
<p>El paquete <code>MatchIt</code> integra las funciones principales para la aplicación del índice de propensión. Concretamente, la función <code><a href="https://kosukeimai.github.io/MatchIt/reference/matchit.html">matchit()</a></code> integra la teoría de <span class="citation">D. E. Ho et al. (<a href="referencias.html#ref-ho2007matching">2007</a>)</span> para el emparejamiento óptimo de los grupos estudiados. Los argumentos más importantes de esta función son:</p>
<ul>
<li><p><code>formula</code>: modelo de regresión que estudia la relación entre la variable dependiente (<em>exitus</em>) con las variables sesgadas (sexo, edad y comorbilidades).</p></li>
<li><p><code>method</code>: especifica el método de emparejamiento (<em>matching</em>).</p></li>
<li><p><code>distance</code>: especifica el método para la estimación del índice de propensión.</p></li>
</ul>
<p>La función <code><a href="https://kosukeimai.github.io/MatchIt/reference/match.data.html">get_matches()</a></code> empareja las coincidencias que resultan del <code>MatchIt</code>.</p>
<div class="infobox">
<p><strong>Nota</strong></p>
<p>Es imprescindible que los casos del dataset estén completos.</p>
</div>
<div class="sourceCode" id="cb803"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://kosukeimai.github.io/MatchIt/">"MatchIt"</a></span><span class="op">)</span></span>
<span><span class="va">match</span> <span class="op"><-</span> <span class="fu"><a href="https://kosukeimai.github.io/MatchIt/reference/matchit.html">matchit</a></span><span class="op">(</span><span class="va">exitus</span> <span class="op">~</span> <span class="va">edad</span> <span class="op">+</span> <span class="fu"><a href="https://rdrr.io/pkg/terra/man/is.bool.html">as.factor</a></span><span class="op">(</span><span class="va">sexo</span><span class="op">)</span> <span class="op">+</span> <span class="fu"><a href="https://rdrr.io/pkg/terra/man/is.bool.html">as.factor</a></span><span class="op">(</span><span class="va">comorbilidades</span><span class="op">)</span>,</span>
<span> method <span class="op">=</span> <span class="st">"nearest"</span>, distance <span class="op">=</span> <span class="st">"mahalanobis"</span>,</span>
<span> data <span class="op">=</span> <span class="va">datos_observacional</span></span>
<span><span class="op">)</span></span>
<span><span class="va">datos_observacional_match</span> <span class="op"><-</span> <span class="fu"><a href="https://kosukeimai.github.io/MatchIt/reference/match.data.html">get_matches</a></span><span class="op">(</span><span class="va">match</span>, <span class="va">datos_observacional</span><span class="op">)</span></span></code></pre></div>
<p>Para comprobar que el sesgo de selección ha desaparecido, se reproduce la Tabla <a href="cap-medicina.html#tab:tabla1">54.1</a>.</p>
<div class="sourceCode" id="cb804"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">tab1_corregida</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/pkg/tableone/man/CreateTableOne.html">CreateTableOne</a></span><span class="op">(</span></span>
<span> vars <span class="op">=</span> <span class="va">my_vars</span>, factorVars <span class="op">=</span> <span class="va">factor_vars</span>,</span>
<span> strata <span class="op">=</span> <span class="st">"exitus"</span>, data <span class="op">=</span> <span class="va">datos_observacional_match</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="co"># se imprime en el objeto tab1_corregida</span></span>
<span><span class="va">tab1_corregida</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span><span class="op">(</span><span class="va">tab1_corregida</span>,</span>
<span> showAllLevels <span class="op">=</span> <span class="cn">TRUE</span>, formatOptions <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html">list</a></span><span class="op">(</span>big.mark <span class="op">=</span> <span class="st">","</span><span class="op">)</span>,</span>
<span> exact <span class="op">=</span> <span class="st">"stage"</span>, nonnormal <span class="op">=</span> <span class="va">nonnormal</span></span>
<span><span class="op">)</span></span></code></pre></div>
<p>Se formatea la salida de la tabla con el siguiente código. En la Tabla <a href="cap-medicina.html#tab:tab1-corregida">54.2</a> se observa que el sesgo de selección existente en la muestra se ha resuelto equilibrando las variables (aunque reduciendo la muestra). Tras este paso previo, podría realizarse un análisis estándar de esta muestra intentando aproximarse lo máximo posible a un estudio aleatorizado.</p>
<div class="sourceCode" id="cb805"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/kableExtra/man/add_footnote.html">add_footnote</a></span><span class="op">(</span><span class="fu">knitr</span><span class="fu">::</span><span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html">kable</a></span><span class="op">(</span><span class="va">tab1_corregida</span><span class="op">[</span>,<span class="op">-</span><span class="fl">5</span><span class="op">]</span>, booktabs<span class="op">=</span><span class="cn">TRUE</span>,</span>
<span> caption <span class="op">=</span> <span class="st">"Características basales de la población tras la aplicación del índice de propensión"</span>, col.names <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"Nivel"</span>,<span class="st">"Vivo"</span>, <span class="st">"Exitus"</span>,<span class="st">"p-valor"</span><span class="op">)</span><span class="op">)</span>,</span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"Median = Mediana"</span>,<span class="st">"IQR = Rango intercuartílico"</span><span class="op">)</span>, notation <span class="op">=</span> <span class="st">"number"</span><span class="op">)</span></span></code></pre></div>
<div class="inline-table"><table class="table table-sm">
<caption>
<span id="tab:tab1-corregida">Tabla 54.2: </span>Características basales de la población tras la aplicación del índice de propensión
</caption>
<thead><tr>
<th style="text-align:left;">
</th>
<th style="text-align:left;">
Nivel
</th>
<th style="text-align:left;">
Vivo
</th>
<th style="text-align:left;">
Exitus
</th>
<th style="text-align:left;">
p-valor
</th>
</tr></thead>
<tbody>
<tr>
<td style="text-align:left;">
n
</td>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
21
</td>
<td style="text-align:left;">
21
</td>
<td style="text-align:left;">
</td>
</tr>
<tr>
<td style="text-align:left;">
sexo (%)
</td>
<td style="text-align:left;">
Hombre
</td>
<td style="text-align:left;">
2 ( 9.5)
</td>
<td style="text-align:left;">
2 ( 9.5)
</td>
<td style="text-align:left;">
1.000
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
Mujer
</td>
<td style="text-align:left;">
19 (90.5)
</td>
<td style="text-align:left;">
19 (90.5)
</td>
<td style="text-align:left;">
</td>
</tr>
<tr>
<td style="text-align:left;">
edad (median [IQR])
</td>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
72.00 [69.00, 84.00]
</td>
<td style="text-align:left;">
82.00 [72.00, 85.00]
</td>
<td style="text-align:left;">
0.182
</td>
</tr>
<tr>
<td style="text-align:left;">
comorbilidades (%)
</td>
<td style="text-align:left;">
1 o más
</td>
<td style="text-align:left;">
18 (85.7)
</td>
<td style="text-align:left;">
18 (85.7)
</td>
<td style="text-align:left;">
1.000
</td>
</tr>
<tr>
<td style="text-align:left;">
</td>
<td style="text-align:left;">
No
</td>
<td style="text-align:left;">
3 (14.3)
</td>
<td style="text-align:left;">
3 (14.3)
</td>
<td style="text-align:left;">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="padding: 0; border:0;" colspan="100%">
<sup>1</sup> Median = Mediana
</td>
</tr>
<tr>
<td style="padding: 0; border:0;" colspan="100%">
<sup>2</sup> IQR = Rango intercuartílico
</td>
</tr>
</tfoot>
</table></div>
</div>
</div>
<div id="análisis-de-supervivencia" class="section level2" number="54.3">
<h2>
<span class="header-section-number">54.3</span> Análisis de supervivencia<a class="anchor" aria-label="anchor" href="#an%C3%A1lisis-de-supervivencia"><i class="fas fa-link"></i></a>
</h2>
<p>Durante la pandemia ocasionada por el SARS-CoV-2, la pregunta principal de los investigadores clínicos se centró en un mismo objetivo: los factores de riesgo asociados a la mortalidad causada por COVID-19. El análisis de supervivencia ha permitido a los investigadores detectar las causas que hay detrás de una mayor probabilidad de fallecer. El análisis de supervivencia permite estudiar los factores de riesgo asociados a la mortalidad. La ventaja principal de este análisis frente a un análisis estándar (como puede ser una regresión logística) es la integración en la variable respuesta del evento y del tiempo hasta el evento, que tiene como consecuencia la interpretación de los resultados en términos de riesgo y no de probabilidad.
</p>
<p>El dataset utilizado, <code>datos_supervivencia</code>, está incluido en el paquete <code>CDR</code> y está formado por 301 pacientes, 101 diagnosticados con infección por SARS-CoV-2 y 100 <em>exitus</em>.</p>
<div class="sourceCode" id="cb806"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/terra/man/headtail.html">head</a></span><span class="op">(</span><span class="va">datos_supervivencia</span>, <span class="fl">3</span><span class="op">)</span></span>
<span><span class="co">#> # A tibble: 3 × 7</span></span>
<span><span class="co">#> id EXITUS_TIME DIAG_COVID EXITUS N_COMORBIDITIES SEX EDAD</span></span>
<span><span class="co">#> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl></span></span>
<span><span class="co">#> 1 262 0 1 1 5 Hombre 83</span></span>
<span><span class="co">#> 2 236 1 1 1 5 Hombre 72</span></span>
<span><span class="co">#> 3 170 11 0 0 2 Mujer 65</span></span></code></pre></div>
<div id="estimación-y-comparación-de-curvas-de-supervivencia" class="section level3" number="54.3.1">
<h3>
<span class="header-section-number">54.3.1</span> Estimación y comparación de curvas de supervivencia<a class="anchor" aria-label="anchor" href="#estimaci%C3%B3n-y-comparaci%C3%B3n-de-curvas-de-supervivencia"><i class="fas fa-link"></i></a>
</h3>
<p>La <strong>función (o curva) de supervivencia</strong> estudia la probabilidad de que el paciente o sujeto sobreviva a un tiempo X. El estimador más utilizado para el ajuste de la función de supervivencia es el estimador no paramétrico de <strong>Kaplan-Meier</strong> y su función escalonada. Una vez generadas estas curvas de supervivencia, existen diferentes métodos (paramétricos y no paramétricos) para su comparación. En este apartado, se utiliza el <strong>test de Mantel-Cox</strong> (o <strong>test</strong> <strong><em>log-rank</em></strong>) para el contraste de funciones.</p>
<p>Los paquetes <code>survival</code> y <code>survminer</code> integran las funciones principales de la técnica:</p>
<ul>
<li><p><code><a href="https://rdrr.io/pkg/survival/man/Surv.html">survival::Surv()</a></code> crea un objeto de supervivencia formado por el evento (<em>exitus</em>) y el tiempo hasta la ocurrencia del evento;</p></li>
<li><p><code><a href="https://rdrr.io/pkg/survival/man/survfit.html">survival::survfit()</a></code> estima la función de supervivencia mediante el método Kaplan-Meier del objeto <code>Surv</code> y los factores de riesgo asociados;</p></li>
<li><p>la función <code><a href="https://rdrr.io/pkg/survminer/man/ggsurvplot.html">ggsurvplot()</a></code> genera el gráfico de la curva de supervivencia (basada en la librería <code>ggplot2</code>). El argumento principal de la función es la función de supervivencia estimada, <code><a href="https://rdrr.io/pkg/survival/man/survfit.html">survfit()</a></code>. Los argumentos más importantes (y recomendables) a la hora de graficar la función de supervivencia son: <code>pval</code>, que muestra el <span class="math inline">\(p\)</span>-valor correspondiente al test <em>log-rank</em>; <code>conf.int</code> que muestra los intervalos de confianza de la(s) curva(s) de supervivencia y <code>risk.table</code>, que añade el número de sujetos (absoluto o relativo) en riesgo en cada momento del período objeto de estudio.</p></li>
</ul>
<p>Se cargan los paquetes:</p>
<div class="sourceCode" id="cb807"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://github.com/therneau/survival">"survival"</a></span><span class="op">)</span></span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html">library</a></span><span class="op">(</span><span class="st"><a href="https://rpkgs.datanovia.com/survminer/index.html">"survminer"</a></span><span class="op">)</span></span></code></pre></div>
<p>Se ajusta el modelo y, posteriormente, se representa:</p>
<div class="sourceCode" id="cb808"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">fit</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/pkg/survival/man/survfit.html">survfit</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/pkg/survival/man/Surv.html">Surv</a></span><span class="op">(</span><span class="va">EXITUS_TIME</span>, <span class="va">EXITUS</span><span class="op">)</span> <span class="op">~</span> <span class="va">DIAG_COVID</span>,</span>
<span> data <span class="op">=</span> <span class="va">datos_supervivencia</span><span class="op">)</span></span></code></pre></div>
<div class="sourceCode" id="cb809"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/survminer/man/ggsurvplot.html">ggsurvplot</a></span><span class="op">(</span><span class="va">fit</span>,</span>
<span> data <span class="op">=</span> <span class="va">datos_supervivencia</span>,</span>
<span> pval <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> conf.int <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> ggtheme <span class="op">=</span> <span class="fu"><a href="https://ggplot2.tidyverse.org/reference/ggtheme.html">theme_bw</a></span><span class="op">(</span><span class="op">)</span>,</span>
<span> palette <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"#E7B800"</span>, <span class="st">"#2E9FDF"</span><span class="op">)</span>,</span>
<span> xlab <span class="op">=</span> <span class="st">"Tiempo (días)"</span>,</span>
<span> ylab <span class="op">=</span> <span class="st">"Probabilidad de supervivencia"</span>,</span>
<span> legend.labs <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span><span class="op">(</span><span class="st">"Sano"</span>, <span class="st">"COVID"</span><span class="op">)</span>,</span>
<span> <span class="co"># añade tabla de supervivencia</span></span>
<span> risk.table <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span> tables.height <span class="op">=</span> <span class="fl">0.2</span>,</span>
<span> tables.theme <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/pkg/survminer/man/ggsurvtheme.html">theme_cleantable</a></span><span class="op">(</span><span class="op">)</span></span>
<span><span class="op">)</span></span></code></pre></div>
<div class="figure" style="text-align: center">
<span style="display:block;" id="fig:survplot"></span>
<img src="212051_cd_medicina_files/figure-html/survplot-1.png" alt="Probabilidades de supervivencia de pacientes con COVID-19." width="70%"><p class="caption">
Figura 54.1: Probabilidades de supervivencia de pacientes con COVID-19.
</p>
</div>
<p>En la Fig. <a href="cap-medicina.html#fig:survplot">54.1</a>, donde el eje X corresponde al tiempo en días y el eje Y a la probabilidad de supervivencia, se observa que la probabilidad de supervivencia de las personas expuestas a COVID-19 es significativamente menor (<span class="math inline">\(p\)</span>-valor < 0,001) que la de las personas sanas. La mediana de supervivencia (línea trazada desde el 0,5 del eje Y, correspondiente al 50% de la probabilidad de supervivencia) corresponde a los 120 días, es decir, el 50% de los sujetos diagnosticados por COVID-19 y objeto de estudio sobrevivieron, al menos, 120 días. Por tanto, se puede concluir que se ha encontrado evidencia sobre el aumento de mortalidad asociada a la enfermedad COVID-19.</p>
</div>
</div>
<div id="regresión-de-cox" class="section level2" number="54.4">
<h2>
<span class="header-section-number">54.4</span> Regresión de Cox<a class="anchor" aria-label="anchor" href="#regresi%C3%B3n-de-cox"><i class="fas fa-link"></i></a>
</h2>
<p>La regresión de Cox,<a class="footnote-ref" tabindex="0" data-toggle="popover" data-content='<p>Es importante distinguir la regresión de Cox de la regresión logística (véase el Cap. <a href="cap-glm.html#cap-glm">16</a>). La regresión logística relaciona la variable dependiente dicotómica con un conjunto de variables independientes sin contemplar el tiempo o contemplándolo solo de forma estática, viendo en un punto fijo del tiempo si el suceso estudiado ha acontecido o no, pero no teniendo en consideración en qué momento ha sucedido. La regresión de Cox proporciona un análisis más fino. No analiza, en un instante de tiempo dado, si un acontecimiento de interés ha sucedido o no, sino cuándo ha sucedido, si es que ha sucedido, y lo hace teniendo en cuenta el comportamiento de una o varias variables independientes. Es por ello que la regresión logística trabaja con la <em>odds ratio</em> y la regresión de Cox, con la <em>hazard ratio</em>.</p>'><sup>305</sup></a> o modelo de riesgos proporcionales, es una técnica utilizada para el estudio del efecto de covariables sobre el tiempo hasta la ocurrencia de un evento (<em>exitus</em>, recaída, progresión, etc). La regresión de Cox es realmente una regresión en la que la variable dependiente es siempre una función de riesgo o supervivencia (están íntimamente relacionadas) y los predictores son una función del tiempo y una función de las variables consideradas como explicativas. En general, se suele expresar así:
<span class="math display">\[h(t, x_1, x_2,..., x_ p)=h_0(t)+g(x_1,x_2,...,x_p),\]</span>
y más concretamente:
<span class="math display">\[h(t, x_1, x_2,..., x_ p)=h_0(t)+e^{[g(x_1,x_2,...,x_p)]},\]</span> donde <span class="math inline">\(g\)</span>, normalmente, indica una combinación lineal de las covariables o variables explicativas. Es, por tanto, una técnica semiparamétrica.</p>
<p>La función principal para el ajuste de un modelo de regresión de Cox es <code><a href="https://rdrr.io/pkg/survival/man/coxph.html">coxph()</a></code>. Esta función, al igual que la función <code><a href="https://rdrr.io/pkg/survival/man/survfit.html">survfit()</a></code>, está formada por un objeto <code>Surv</code> y las covariables del modelo.</p>
<div class="sourceCode" id="cb810"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">fit_cox</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/pkg/survival/man/coxph.html">coxph</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/pkg/survival/man/Surv.html">Surv</a></span><span class="op">(</span><span class="va">EXITUS_TIME</span>, <span class="va">EXITUS</span><span class="op">)</span> <span class="op">~</span> <span class="va">DIAG_COVID</span> <span class="op">+</span> <span class="va">EDAD</span> <span class="op">+</span> <span class="va">SEX</span> <span class="op">+</span> <span class="va">N_COMORBIDITIES</span>,</span>
<span> data <span class="op">=</span> <span class="va">datos_supervivencia</span></span>
<span><span class="op">)</span></span></code></pre></div>
<p>
</p>
<p>El <em>output</em> principal de una regresión de Cox, <span class="math inline">\(h(t, x_1, x_2,..., x_ p),\)</span>
son las <strong>razones de riesgos</strong> o <strong><em>hazard ratios</em></strong> (HR), es decir, la relación entre las dos funciones de riesgo en función de los cambios operados en las variables explicativas. En concreto, la exponencial del coeficiente estimado para la variable explicativa <span class="math inline">\(X_i\)</span> indica el incremento en el riesgo de fallecer cuando la variable explicativa aumenta en una unidad y las demás permanecen constantes. La razón de riesgos oscila entre 0 y <span class="math inline">\(\infty\)</span>, siendo el intervalo [0, 1] una relación de riesgo bajo y [1, <span class="math inline">\(\infty\)</span>] una relación de riesgo alto.</p>
<div class="infobox">
<p><strong>Nota</strong></p>
<ul>
<li><p>Los HR localizados entre 1 y 2 se interpretan en porcentaje. Es decir, HR = 1,5 indica un aumento del riesgo del 50%.</p></li>
<li><p>Los HR localizados entre 2 e <span class="math inline">\(\infty\)</span> se interpretan en “veces”. Es decir, HR = 3 indica a un aumento del riesgo de 3 veces.</p></li>
<li><p>Los HR localizados entre 0 y 1 se interpretan como una reducción del riesgo del <span class="math inline">\((1-HR)\times 100 \%\)</span>. Es decir, HR = 0,8 indica a una disminución del riesgo del 20%.</p></li>
</ul>
</div>
<div class="sourceCode" id="cb811"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/terra/man/summary.html">summary</a></span><span class="op">(</span><span class="va">fit_cox</span><span class="op">)</span></span>
<span><span class="co">#> Call:</span></span>
<span><span class="co">#> coxph(formula = Surv(EXITUS_TIME, EXITUS) ~ DIAG_COVID + EDAD + </span></span>
<span><span class="co">#> SEX + N_COMORBIDITIES, data = datos_supervivencia)</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> n= 271, number of events= 100 </span></span>
<span><span class="co">#> (30 observations deleted due to missingness)</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> coef exp(coef) se(coef) z Pr(>|z|) </span></span>
<span><span class="co">#> DIAG_COVID 1.3023581 3.6779594 0.5184547 2.512 0.0120 * </span></span>
<span><span class="co">#> EDAD 0.0006006 1.0006008 0.0116113 0.052 0.9587 </span></span>
<span><span class="co">#> SEXMujer -1.1256901 0.3244285 0.2360183 -4.770 1.85e-06 ***</span></span>
<span><span class="co">#> N_COMORBIDITIES 0.1643743 1.1786554 0.0774043 2.124 0.0337 * </span></span>
<span><span class="co">#> ---</span></span>
<span><span class="co">#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> exp(coef) exp(-coef) lower .95 upper .95</span></span>
<span><span class="co">#> DIAG_COVID 3.6780 0.2719 1.3314 10.1605</span></span>
<span><span class="co">#> EDAD 1.0006 0.9994 0.9781 1.0236</span></span>
<span><span class="co">#> SEXMujer 0.3244 3.0823 0.2043 0.5153</span></span>
<span><span class="co">#> N_COMORBIDITIES 1.1787 0.8484 1.0127 1.3717</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> Concordance= 0.815 (se = 0.025 )</span></span>
<span><span class="co">#> Likelihood ratio test= 130.1 on 4 df, p=<2e-16</span></span>
<span><span class="co">#> Wald test = 117.9 on 4 df, p=<2e-16</span></span>
<span><span class="co">#> Score (logrank) test = 165.9 on 4 df, p=<2e-16</span></span></code></pre></div>
<p>En la salida del modelo deben resaltarse y explicarse los siguientes puntos: <span class="math inline">\((i)\)</span> la fórmula del modelo, tamaño muestral y número de eventos; <span class="math inline">\((ii)\)</span> los coeficientes del modelo y sus <span class="math inline">\(p\)</span>-valores; <span class="math inline">\((iii)\)</span> las <em>hazard ratios</em> (exponencial de los coeficientes del modelo) y sus intervalos de confianza del 90% y <span class="math inline">\((iv)\)</span> las medidas de bondad de ajuste del modelo.</p>
<p>Por tanto, de este modelo se deduce que: un paciente diagnosticado de COVID-19 tiene 3,6 veces más riesgo de fallecer que un paciente sano; una mujer tiene un 67,6% menos riesgo de fallecer que un hombre y por cada comorbilidad, el riesgo de fallecer aumenta un 17,9%.</p>
</div>
<div id="conclusión" class="section level2" number="54.5">
<h2>
<span class="header-section-number">54.5</span> Conclusión<a class="anchor" aria-label="anchor" href="#conclusi%C3%B3n"><i class="fas fa-link"></i></a>
</h2>
<p>Ha sido necesaria una pandemia mundial para que la sociedad empiece a dar visibilidad y reconocimiento no solo a la bioestadística, sino a la investigación clínica y a la necesidad de gestionar el uso masivo de datos en el ámbito de la salud. A pesar de los múltiples estudios y experiencias pasadas que llamaban a la prudencia y a la acción concreta si se daba una situación similar, el mundo ha sido incapaz de actuar convenientemente. Esto último se ve reflejado en el mínimo aumento de inversión, reconocimiento y notoriedad no solo en investigación o desarrollo, sino también en el apoyo a la ciencia. Es, quizá, la paradoja más extraña pero que representa el dicho popular: “la sociedad no avanzará si la ciencia no lo hace primero”.</p>
</div>
</div>
<div class="chapter-nav">
<div class="prev"><a href="cap-rfm.html"><span class="header-section-number">53</span> Segmentación de clientes en el comercio minorista</a></div>
<div class="next"><a href="cap-futbol.html"><span class="header-section-number">55</span> Messi y Ronaldo: dos ídolos desde la perspectiva de los datos</a></div>
</div></main><div class="col-md-3 col-lg-2 d-none d-md-block sidebar sidebar-chapter">
<nav id="toc" data-toggle="toc" aria-label="Índice del capítulo"><h2>Índice del capítulo</h2>
<ul class="nav navbar-nav">
<li><a class="nav-link" href="#cap-medicina"><span class="header-section-number">54</span> Análisis de datos en medicina</a></li>
<li><a class="nav-link" href="#justificaci%C3%B3n"><span class="header-section-number">54.1</span> Justificación</a></li>
<li>
<a class="nav-link" href="#datos-en-investigaci%C3%B3n-cl%C3%ADnica-y-ensayos-cl%C3%ADnicos"><span class="header-section-number">54.2</span> Datos en investigación clínica y ensayos clínicos</a><ul class="nav navbar-nav">
<li><a class="nav-link" href="#qu%C3%A9-es-un-ensayo-cl%C3%ADnico"><span class="header-section-number">54.2.1</span> ¿Qué es un ensayo clínico?</a></li>
<li><a class="nav-link" href="#limitaciones-de-los-estudios-observacionales"><span class="header-section-number">54.2.2</span> Limitaciones de los estudios observacionales</a></li>
<li><a class="nav-link" href="#%C3%ADndice-de-propensi%C3%B3n"><span class="header-section-number">54.2.3</span> Índice de propensión</a></li>
<li><a class="nav-link" href="#ejemplo-pr%C3%A1ctico-en-r-de-un-estudio-observacional"><span class="header-section-number">54.2.4</span> Ejemplo práctico en R de un estudio observacional</a></li>
</ul>
</li>
<li>
<a class="nav-link" href="#an%C3%A1lisis-de-supervivencia"><span class="header-section-number">54.3</span> Análisis de supervivencia</a><ul class="nav navbar-nav"><li><a class="nav-link" href="#estimaci%C3%B3n-y-comparaci%C3%B3n-de-curvas-de-supervivencia"><span class="header-section-number">54.3.1</span> Estimación y comparación de curvas de supervivencia</a></li></ul>
</li>
<li><a class="nav-link" href="#regresi%C3%B3n-de-cox"><span class="header-section-number">54.4</span> Regresión de Cox</a></li>
<li><a class="nav-link" href="#conclusi%C3%B3n"><span class="header-section-number">54.5</span> Conclusión</a></li>
</ul>
<div class="book-extra">
<ul class="list-unstyled">
</ul>
</div>
</nav>
</div>
</div>
</div> <!-- .container -->
<footer class="bg-primary text-light mt-5"><div class="container"><div class="row">
<div class="col-12 col-md-6 mt-3">
<p>"<strong>Fundamentos de ciencia de datos con <strong>R</strong></strong>" coordinado por <a href="https://blog.uclm.es/gemafaviles/" class="text-light">Gema Fernández-Avilés y José-María Montero</a>. </p>
</div>
<div class="col-12 col-md-6 mt-3">
<p>Este libro ha sido generado con el paquete de R <a class="text-light" href="https://bookdown.org">bookdown</a>.</p>
</div>
</div></div>
</footer><!-- dynamically load mathjax for compatibility with self-contained --><script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
var src = "true";
if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
if (location.protocol !== "file:")
if (/^https?:/.test(src))
src = src.replace(/^https?:/, '');
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script><script type="text/x-mathjax-config">const popovers = document.querySelectorAll('a.footnote-ref[data-toggle="popover"]');
for (let popover of popovers) {
const div = document.createElement('div');
div.setAttribute('style', 'position: absolute; top: 0, left:0; width:0, height:0, overflow: hidden; visibility: hidden;');
div.innerHTML = popover.getAttribute('data-content');
var has_math = div.querySelector("span.math");
if (has_math) {
document.body.appendChild(div);
MathJax.Hub.Queue(["Typeset", MathJax.Hub, div]);
MathJax.Hub.Queue(function() {
popover.setAttribute('data-content', div.innerHTML);
document.body.removeChild(div);
})
}
}
</script>
</body>
</html>