Análisis de datos de sarcopenia y necesidades de cuidados paliativos (SPARC)
Análisis exploratorio de datos
Objetivo . Estimar la asociación entre sarcopenia medida mediante el instrumento SARCF y las necesidades holísticas no satisfechas de cuidados paliativos determinadas mediante SPARC, en pacientes con enfermedades crónicas no transmisibles oncológicas y no oncológicas del Hospital universitario San José entre el 2021 y 2022. Este objetivo es de naturaleza exploratoria y no causal.
Objetivos Específicos
Describir las características sociodemográficas de los pacientes con enfermedades no transmisibles crónicas oncológicas y no oncológicas.
Describir la prevalencia de sarcopenia, definida por un puntaje en la escala SARC-F >4 puntos en pacientes con enfermedades crónicas no transmisibles.
Determinar la prevalencia de necesidades holísticas no satisfechas existentes en la población de pacientes con enfermedades crónicas no transmisibles y estratificar la estimación por cada uno de los 8 dominios de la herramienta SPARC-Sp.
Diseñar una estrategia de visualización apropiada para el reporte de las necesidades holísticas no satisfechas valoradas mediante la herramienta SPARC-Sp.
Pregunta de Investigación (PECO): ¿En los pacientes con enfermedades no transmisibles, existe asociación entre la presencia de sarcopenia medida a través del instrumento SARC-F y las necesidades no satisfechas o no resueltas, determinadas con el instrumento SPARC?
Preparacion de los datos - Librerias
library (readxl)
library (dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library (ggplot2)
library (tidyr)
#install.packages("summarytools")
library (summarytools)
Warning in fun(libname, pkgname): couldn't connect to display
"/private/tmp/com.apple.launchd.iGR9EbHhvo/org.xquartz:0"
system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
#install.packages("gtsummary")
library (gtsummary)
library (gtsummary)
#install.packages("performance")
library (performance)
#install.packages("see", dependencies = TRUE)
library (see)
#install.packages("fmsb")
library (fmsb)
#install.packages("broom.helpers")
library (broom.helpers)
Attaching package: 'broom.helpers'
The following objects are masked from 'package:gtsummary':
all_categorical, all_continuous, all_contrasts, all_dichotomous,
all_interaction, all_intercepts
Importando datos y summary inicial
data <- read_excel ("~/Rdocs/sarcopenia/SPARC_data_labels.xlsx" )
New names:
• `` -> `...2`
• `` -> `...19`
• `` -> `...20`
• `` -> `...21`
• `` -> `...46`
• `` -> `...47`
• `` -> `...48`
• `` -> `...49`
• `` -> `...50`
• `` -> `...51`
• `` -> `...52`
• `` -> `...94`
• `` -> `...95`
• `` -> `...96`
• `` -> `...97`
• `` -> `...98`
• `` -> `...99`
• `` -> `...100`
• `` -> `...101`
• `` -> `...102`
• `` -> `...103`
• `` -> `...104`
• `` -> `...105`
• `` -> `...106`
• `` -> `...107`
data_orig <- data
dfSummary (data)
Data Frame Summary
data
Dimensions: 546 x 107
Duplicates: 0
--------------------------------------------------------------------------------------------------------------------------
No Variable Stats / Values Freqs (% of Valid) Graph Valid Missing
----- ------------- ----------------------------------- --------------------- ---------------------- ---------- ----------
1 id Mean (sd) : 273.5 (157.8) 546 distinct values : : : : : : : : : : 546 0
[numeric] min < med < max: : : : : : : : : : : (100.0%) (0.0%)
1 < 273.5 < 546 : : : : : : : : : :
IQR (CV) : 272.5 (0.6) : : : : : : : : : :
: : : : : : : : : :
2 ...2 Mean (sd) : 270.7 (157.5) 537 distinct values : : . . : . . . . : 546 0
[numeric] min < med < max: : : : : : : : : : : (100.0%) (0.0%)
1 < 271 < 543 : : : : : : : : : :
IQR (CV) : 272.5 (0.6) : : : : : : : : : :
: : : : : : : : : :
3 docum Mean (sd) : 103627098 (502017358) 522 distinct values : 546 0
[numeric] min < med < max: : (100.0%) (0.0%)
287468 < 25495570 < 10074221744 :
IQR (CV) : 24011516 (4.8) :
:
4 fecha min : 2021-11-09 109 distinct values : 546 0
[POSIXct, med : 2022-06-09 : (100.0%) (0.0%)
POSIXt] max : 2022-07-13 : :
range : 8m 4d . . : :
. . : . . . : : : :
5 sitio 1. Hospital San José Popayán 545 (99.8%) IIIIIIIIIIIIIIIIIII 546 0
[character] 2. Otro hospital 1 ( 0.2%) (100.0%) (0.0%)
6 invest 1. Camilo Cortes 79 (14.5%) II 546 0
[character] 2. Cindy Mendieta 239 (43.8%) IIIIIIII (100.0%) (0.0%)
3. Isabela Bolaños 57 (10.4%) II
4. Javier Orozco 97 (17.8%) III
5. Karen Rivera 74 (13.6%) II
7 sitio_hos 1. Atención ambulatoria de O 63 (11.5%) II 546 0
[character] 2. Atención ambulatoria del 4 ( 0.7%) (100.0%) (0.0%)
3. Otra área hospitalaria 69 (12.6%) II
4. Salas de hospitalización 410 (75.1%) IIIIIIIIIIIIIII
8 etnia 1. Afrocolombiano 28 ( 5.1%) I 546 0
[character] 2. Blanco 71 (13.0%) II (100.0%) (0.0%)
3. Indígena 36 ( 6.6%) I
4. Mestizo 411 (75.3%) IIIIIIIIIIIIIII
9 genero 1. Femenino 329 (60.3%) IIIIIIIIIIII 546 0
[character] 2. Masculino 217 (39.7%) IIIIIII (100.0%) (0.0%)
10 edad Mean (sd) : 65 (14.8) 72 distinct values . : 546 0
[numeric] min < med < max: : : : . (100.0%) (0.0%)
18 < 66 < 95 : : : : :
IQR (CV) : 20 (0.2) . : : : : :
. . : : : : : : : :
11 civil 1. Casado 198 (36.3%) IIIIIII 546 0
[character] 2. Separado 24 ( 4.4%) (100.0%) (0.0%)
3. Soltero 105 (19.2%) III
4. Unión libre 136 (24.9%) IIII
5. Viudo 83 (15.2%) III
12 religion 1. Agnóstico 4 ( 0.7%) 546 0
[character] 2. Ateo 3 ( 0.5%) (100.0%) (0.0%)
3. Católico 450 (82.4%) IIIIIIIIIIIIIIII
4. Cristiano 63 (11.5%) II
5. Otro 26 ( 4.8%)
13 g_religion Mean (sd) : 3.7 (1.1) 0 : 9 ( 1.6%) 546 0
[numeric] min < med < max: 1 : 8 ( 1.5%) (100.0%) (0.0%)
0 < 4 < 5 2 : 53 ( 9.7%) I
IQR (CV) : 2 (0.3) 3 : 171 (31.3%) IIIIII
4 : 147 (26.9%) IIIII
5 : 158 (28.9%) IIIII
14 educa 1. Bachillerato 166 (30.4%) IIIIII 546 0
[character] 2. Ninguno 88 (16.1%) III (100.0%) (0.0%)
3. Primaria 230 (42.1%) IIIIIIII
4. Técnico 31 ( 5.7%) I
5. Universitario 31 ( 5.7%) I
15 ocupa 1. AMA DE CASA 221 (40.5%) IIIIIIII 546 0
[character] 2. CESANTE 80 (14.7%) II (100.0%) (0.0%)
3. AGRICULTOR 36 ( 6.6%) I
4. PENSIONADO 35 ( 6.4%) I
5. COMERCIANTE 21 ( 3.8%)
6. AGRICULTURA 20 ( 3.7%)
7. INDEPENDIENTE 13 ( 2.4%)
8. DESEMPLEADO 9 ( 1.6%)
9. OFICIOS VARIOS 8 ( 1.5%)
10. PENSIONADA 8 ( 1.5%)
[ 70 others ] 95 (17.4%) III
16 procede 1. Rural 202 (37.0%) IIIIIII 546 0
[character] 2. Urbana 344 (63.0%) IIIIIIIIIIII (100.0%) (0.0%)
17 convivi Mean (sd) : 3.5 (1.6) 11 distinct values : : : 546 0
[numeric] min < med < max: : : : (100.0%) (0.0%)
1 < 3 < 13 : : :
IQR (CV) : 2 (0.5) : : : :
: : : : :
18 transpor 1. 0.5 115 (21.1%) IIII 546 0
[character] 2. 1 88 (16.1%) III (100.0%) (0.0%)
3. 0.25 59 (10.8%) II
4. 0.17 46 ( 8.4%) I
5. 0.08 32 ( 5.9%) I
6. 0.3 27 ( 4.9%)
7. 2 23 ( 4.2%)
8. 1.5 21 ( 3.8%)
9. 0.2 17 ( 3.1%)
10. 0.33 16 ( 2.9%)
[ 31 others ] 102 (18.7%) III
19 ...19 1. Algunas veces 135 (24.7%) IIII 546 0
[character] 2. Nunca 42 ( 7.7%) I (100.0%) (0.0%)
3. Siempre 369 (67.6%) IIIIIIIIIIIII
20 ...20 1. Algunas veces 152 (27.8%) IIIII 546 0
[character] 2. Nunca 31 ( 5.7%) I (100.0%) (0.0%)
3. Siempre 363 (66.5%) IIIIIIIIIIIII
21 ...21 1. Algunas veces 212 (38.8%) IIIIIII 546 0
[character] 2. Nunca 58 (10.6%) II (100.0%) (0.0%)
3. Siempre 276 (50.5%) IIIIIIIIII
22 dx1 1. HIPERTENSION ARTERIAL 195 (35.7%) IIIIIII 546 0
[character] 2. DIABETES MELLITUS 42 ( 7.7%) I (100.0%) (0.0%)
3. DIABETES MELLITUS TIPO II 34 ( 6.2%) I
4. OSTEOPOROSIS 16 ( 2.9%)
5. HIPERTENSIÓN ARTERIAL 15 ( 2.7%)
6. ENFERMEDAD PULMONAR OBSTR 11 ( 2.0%)
7. CANCER DE PROSTATA 10 ( 1.8%)
8. ENFERMEDAD RENAL CRONICA 8 ( 1.5%)
9. CANCER DE MAMA 5 ( 0.9%)
10. DIABETES MELLITUS TIPO II 5 ( 0.9%)
[ 156 others ] 205 (37.5%) IIIIIII
23 dx2 1. HIPERTENSION ARTERIAL 54 (14.5%) II 372 174
[character] 2. ENFERMEDAD RENAL CRONICA 18 ( 4.8%) (68.1%) (31.9%)
3. DIABETES MELLITUS 16 ( 4.3%)
4. HIPOTIROIDISMO 11 ( 3.0%)
5. DIABETES MELLITUS TIPO II 9 ( 2.4%)
6. ENFERMEDAD PULMONAR OBSTR 7 ( 1.9%)
7. OSTEOPOROSIS 7 ( 1.9%)
8. ASMA 4 ( 1.1%)
9. GASTRITIS 4 ( 1.1%)
10. OBESIDAD 4 ( 1.1%)
[ 216 others ] 238 (64.0%) IIIIIIIIIIII
24 dx_oms 1. Diabetes mellitus 102 (21.0%) IIII 485 61
[character] 2. Enfermedad cardiovascular 260 (53.6%) IIIIIIIIII (88.8%) (11.2%)
3. Enfermedad neoplásica 104 (21.4%) IIII
4. Enfermedad respiratoria c 19 ( 3.9%)
25 dx_oms_ca 1. Cancer 104 (19.0%) III 546 0
[character] 2. No oncologica 442 (81.0%) IIIIIIIIIIIIIIII (100.0%) (0.0%)
26 fecha_dx Mean (sd) : 2011.5 (10.4) 42 distinct values : 546 0
[numeric] min < med < max: : (100.0%) (0.0%)
1960 < 2014 < 2022 : :
IQR (CV) : 11 (0) : :
. . . : : : :
27 tratam 1. No 36 ( 6.6%) I 546 0
[character] 2. Si tengo tratamiento 510 (93.4%) IIIIIIIIIIIIIIIIII (100.0%) (0.0%)
28 onco 1. No 426 (78.0%) IIIIIIIIIIIIIII 546 0
[character] 2. Si 120 (22.0%) IIII (100.0%) (0.0%)
29 onco_estad 1. Desconocido 32 (26.7%) IIIII 120 426
[character] 2. I 7 ( 5.8%) I (22.0%) (78.0%)
3. II 18 (15.0%) III
4. III 18 (15.0%) III
5. IV 33 (27.5%) IIIII
6. No aplica 12 (10.0%) II
30 onco_meta 1. Ausentes 33 (27.5%) IIIII 120 426
[character] 2. Desconocido 51 (42.5%) IIIIIIII (22.0%) (78.0%)
3. No aplica 3 ( 2.5%)
4. Presentes 33 (27.5%) IIIII
31 onco_qx 1. Checked 53 ( 9.7%) I 546 0
[character] 2. Unchecked 493 (90.3%) IIIIIIIIIIIIIIIIII (100.0%) (0.0%)
32 onco_radio 1. Checked 20 ( 3.7%) 546 0
[character] 2. Unchecked 526 (96.3%) IIIIIIIIIIIIIIIIIII (100.0%) (0.0%)
33 onco_cp 1. Checked 26 ( 4.8%) 546 0
[character] 2. Unchecked 520 (95.2%) IIIIIIIIIIIIIIIIIII (100.0%) (0.0%)
34 onco_cx 1. Checked 44 ( 8.1%) I 546 0
[character] 2. Unchecked 502 (91.9%) IIIIIIIIIIIIIIIIII (100.0%) (0.0%)
35 onco_inm 1. Checked 10 ( 1.8%) 546 0
[character] 2. Unchecked 536 (98.2%) IIIIIIIIIIIIIIIIIII (100.0%) (0.0%)
36 onco_alt 1. Checked 19 ( 3.5%) 546 0
[character] 2. Unchecked 527 (96.5%) IIIIIIIIIIIIIIIIIII (100.0%) (0.0%)
37 onco_no 1. Checked 25 ( 4.6%) 546 0
[character] 2. Unchecked 521 (95.4%) IIIIIIIIIIIIIIIIIII (100.0%) (0.0%)
38 ecog 1. 0 11 ( 9.2%) I 120 426
[character] 2. 1 32 (26.7%) IIIII (22.0%) (78.0%)
3. 2 30 (25.0%) IIIII
4. 3 32 (26.7%) IIIII
5. 4 13 (10.8%) II
6. Desconocido 1 ( 0.8%)
7. No aplica 1 ( 0.8%)
39 karno Mean (sd) : 74.5 (18.6) 14 distinct values . : 546 0
[numeric] min < med < max: : : (100.0%) (0.0%)
10 < 80 < 100 : : :
IQR (CV) : 30 (0.2) : : : : : :
. . : : : : : : :
40 sarc1 1. Alguna 190 (34.8%) IIIIII 546 0
[character] 2. Mucha o incapaz 150 (27.5%) IIIII (100.0%) (0.0%)
3. Ninguna 206 (37.7%) IIIIIII
41 sarc2 1. Alguna 168 (30.8%) IIIIII 546 0
[character] 2. Mucha, usando auxiliares 132 (24.2%) IIII (100.0%) (0.0%)
3. Ninguna 246 (45.1%) IIIIIIIII
42 sarc3 1. Alguna 181 (33.2%) IIIIII 546 0
[character] 2. Mucha, o incapaz sin ayud 117 (21.4%) IIII (100.0%) (0.0%)
3. Ninguna 248 (45.4%) IIIIIIIII
43 sarc4 1. Alguna 214 (39.2%) IIIIIII 546 0
[character] 2. Mucha o incapaz 177 (32.4%) IIIIII (100.0%) (0.0%)
3. Ninguna 155 (28.4%) IIIII
44 sarc5 1. 1 a 3 caídas 199 (36.4%) IIIIIII 546 0
[character] 2. 4 o más caídas 22 ( 4.0%) (100.0%) (0.0%)
3. Ninguna 325 (59.5%) IIIIIIIIIII
45 sarcf All NA's 0 546
[logical] (0.0%) (100.0%)
46 ...46 1. No 70 (12.8%) II 546 0
[character] 2. Si 476 (87.2%) IIIIIIIIIIIIIIIII (100.0%) (0.0%)
47 ...47 1. No 314 (57.5%) IIIIIIIIIII 546 0
[character] 2. Si 232 (42.5%) IIIIIIII (100.0%) (0.0%)
48 ...48 1. No 276 (50.5%) IIIIIIIIII 546 0
[character] 2. Si 270 (49.5%) IIIIIIIII (100.0%) (0.0%)
49 ...49 1. No 399 (73.1%) IIIIIIIIIIIIII 546 0
[character] 2. Si 147 (26.9%) IIIII (100.0%) (0.0%)
50 ...50 1. No 462 (84.6%) IIIIIIIIIIIIIIII 546 0
[character] 2. Si 84 (15.4%) III (100.0%) (0.0%)
51 ...51 1. No 49 ( 9.0%) I 544 2
[character] 2. Si 495 (91.0%) IIIIIIIIIIIIIIIIII (99.6%) (0.4%)
52 ...52 1. No 167 (53.5%) IIIIIIIIII 312 234
[character] 2. Si 145 (46.5%) IIIIIIIII (57.1%) (42.9%)
53 s2 1. Bastante 188 (34.4%) IIIIII 546 0
[character] 2. Mucho 124 (22.7%) IIII (100.0%) (0.0%)
3. Nada 123 (22.5%) IIII
4. Un poco 111 (20.3%) IIII
54 s3 1. Bastante 53 ( 9.7%) I 546 0
[character] 2. Mucho 10 ( 1.8%) (100.0%) (0.0%)
3. Nada 326 (59.7%) IIIIIIIIIII
4. Un poco 157 (28.8%) IIIII
55 s4 1. Bastante 64 (11.7%) II 546 0
[character] 2. Mucho 27 ( 4.9%) (100.0%) (0.0%)
3. Nada 293 (53.7%) IIIIIIIIII
4. Un poco 162 (29.7%) IIIII
56 s5 1. Bastante 88 (16.2%) III 544 2
[character] 2. Mucho 31 ( 5.7%) I (99.6%) (0.4%)
3. Nada 284 (52.2%) IIIIIIIIII
4. Un poco 141 (25.9%) IIIII
57 s6 1. Bastante 27 ( 4.9%) 546 0
[character] 2. Mucho 4 ( 0.7%) (100.0%) (0.0%)
3. Nada 474 (86.8%) IIIIIIIIIIIIIIIII
4. Un poco 41 ( 7.5%) I
58 s7 1. Bastante 80 (14.7%) II 546 0
[character] 2. Mucho 16 ( 2.9%) (100.0%) (0.0%)
3. Nada 310 (56.8%) IIIIIIIIIII
4. Un poco 140 (25.6%) IIIII
59 s8 1. Bastante 75 (13.8%) II 545 1
[character] 2. Mucho 13 ( 2.4%) (99.8%) (0.2%)
3. Nada 311 (57.1%) IIIIIIIIIII
4. Un poco 146 (26.8%) IIIII
60 s9 1. Bastante 78 (14.3%) II 546 0
[character] 2. Mucho 21 ( 3.8%) (100.0%) (0.0%)
3. Nada 287 (52.6%) IIIIIIIIII
4. Un poco 160 (29.3%) IIIII
61 s10 1. Bastante 52 ( 9.5%) I 546 0
[character] 2. Mucho 22 ( 4.0%) (100.0%) (0.0%)
3. Nada 353 (64.7%) IIIIIIIIIIII
4. Un poco 119 (21.8%) IIII
62 s11 1. Bastante 99 (18.1%) III 546 0
[character] 2. Mucho 36 ( 6.6%) I (100.0%) (0.0%)
3. Nada 232 (42.5%) IIIIIIII
4. Un poco 179 (32.8%) IIIIII
63 s12 1. Bastante 45 ( 8.2%) I 546 0
[character] 2. Mucho 20 ( 3.7%) (100.0%) (0.0%)
3. Nada 380 (69.6%) IIIIIIIIIIIII
4. Un poco 101 (18.5%) III
64 s13 1. Bastante 156 (28.6%) IIIII 545 1
[character] 2. Mucho 48 ( 8.8%) I (99.8%) (0.2%)
3. Nada 167 (30.6%) IIIIII
4. Un poco 174 (31.9%) IIIIII
65 s14 1. Bastante 181 (33.2%) IIIIII 546 0
[character] 2. Mucho 55 (10.1%) II (100.0%) (0.0%)
3. Nada 118 (21.6%) IIII
4. Un poco 192 (35.2%) IIIIIII
66 s15 1. Bastante 134 (24.5%) IIII 546 0
[character] 2. Mucho 63 (11.5%) II (100.0%) (0.0%)
3. Nada 174 (31.9%) IIIIII
4. Un poco 175 (32.1%) IIIIII
67 s16 1. Bastante 101 (18.5%) III 546 0
[character] 2. Mucho 24 ( 4.4%) (100.0%) (0.0%)
3. Nada 223 (40.8%) IIIIIIII
4. Un poco 198 (36.3%) IIIIIII
68 s17 1. Bastante 105 (19.3%) III 545 1
[character] 2. Mucho 26 ( 4.8%) (99.8%) (0.2%)
3. Nada 263 (48.3%) IIIIIIIII
4. Un poco 151 (27.7%) IIIII
69 s18 1. Bastante 124 (22.7%) IIII 546 0
[character] 2. Mucho 35 ( 6.4%) I (100.0%) (0.0%)
3. Nada 207 (37.9%) IIIIIII
4. Un poco 180 (33.0%) IIIIII
70 s19 1. Bastante 22 ( 4.0%) 546 0
[character] 2. Mucho 11 ( 2.0%) (100.0%) (0.0%)
3. Nada 426 (78.0%) IIIIIIIIIIIIIII
4. Un poco 87 (15.9%) III
71 s20 1. Bastante 91 (16.7%) III 546 0
[character] 2. Mucho 32 ( 5.9%) I (100.0%) (0.0%)
3. Nada 297 (54.4%) IIIIIIIIII
4. Un poco 126 (23.1%) IIII
72 s21 1. Bastante 122 (22.3%) IIII 546 0
[character] 2. Mucho 32 ( 5.9%) I (100.0%) (0.0%)
3. Nada 199 (36.4%) IIIIIII
4. Un poco 193 (35.3%) IIIIIII
73 s22 1. Bastante 149 (27.3%) IIIII 546 0
[character] 2. Mucho 58 (10.6%) II (100.0%) (0.0%)
3. Nada 221 (40.5%) IIIIIIII
4. Un poco 118 (21.6%) IIII
74 s23 1. Bastante 157 (28.8%) IIIII 546 0
[character] 2. Mucho 41 ( 7.5%) I (100.0%) (0.0%)
3. Nada 143 (26.2%) IIIII
4. Un poco 205 (37.5%) IIIIIII
75 s24 1. Bastante 135 (24.7%) IIII 546 0
[character] 2. Mucho 61 (11.2%) II (100.0%) (0.0%)
3. Nada 152 (27.8%) IIIII
4. Un poco 198 (36.3%) IIIIIII
76 s25 1. Bastante 83 (15.2%) III 546 0
[character] 2. Mucho 19 ( 3.5%) (100.0%) (0.0%)
3. Nada 304 (55.7%) IIIIIIIIIII
4. Un poco 140 (25.6%) IIIII
77 s26 1. Bastante 55 (10.1%) II 546 0
[character] 2. Mucho 19 ( 3.5%) (100.0%) (0.0%)
3. Nada 354 (64.8%) IIIIIIIIIIII
4. Un poco 118 (21.6%) IIII
78 s27 1. Bastante 65 (11.9%) II 545 1
[character] 2. Mucho 29 ( 5.3%) I (99.8%) (0.2%)
3. Nada 343 (62.9%) IIIIIIIIIIII
4. Un poco 108 (19.8%) III
79 s28 1. Bastante 91 (16.7%) III 546 0
[character] 2. Mucho 32 ( 5.9%) I (100.0%) (0.0%)
3. Nada 266 (48.7%) IIIIIIIII
4. Un poco 157 (28.8%) IIIII
80 s29 1. Bastante 38 ( 7.0%) I 546 0
[character] 2. Mucho 13 ( 2.4%) (100.0%) (0.0%)
3. Nada 436 (79.9%) IIIIIIIIIIIIIII
4. Un poco 59 (10.8%) II
81 s30 1. Bastante 20 ( 3.7%) 544 2
[character] 2. Mucho 3 ( 0.6%) (99.6%) (0.4%)
3. Nada 483 (88.8%) IIIIIIIIIIIIIIIII
4. Un poco 38 ( 7.0%) I
82 s31 1. Bastante 41 ( 7.5%) I 545 1
[character] 2. Mucho 46 ( 8.4%) I (99.8%) (0.2%)
3. Nada 394 (72.3%) IIIIIIIIIIIIII
4. Un poco 64 (11.7%) II
83 s32 1. Bastante 84 (15.4%) III 546 0
[character] 2. Mucho 22 ( 4.0%) (100.0%) (0.0%)
3. Nada 281 (51.5%) IIIIIIIIII
4. Un poco 159 (29.1%) IIIII
84 s33 1. Bastante 31 ( 5.7%) I 546 0
[character] 2. Mucho 9 ( 1.6%) (100.0%) (0.0%)
3. Nada 372 (68.1%) IIIIIIIIIIIII
4. Un poco 134 (24.5%) IIII
85 s34 1. Bastante 190 (34.8%) IIIIII 546 0
[character] 2. Mucho 73 (13.4%) II (100.0%) (0.0%)
3. Nada 151 (27.7%) IIIII
4. Un poco 132 (24.2%) IIII
86 s35 1. Bastante 172 (31.5%) IIIIII 546 0
[character] 2. Mucho 86 (15.8%) III (100.0%) (0.0%)
3. Nada 164 (30.0%) IIIIII
4. Un poco 124 (22.7%) IIII
87 s36 1. Bastante 145 (26.6%) IIIII 546 0
[character] 2. Mucho 86 (15.8%) III (100.0%) (0.0%)
3. Nada 181 (33.2%) IIIIII
4. Un poco 134 (24.5%) IIII
88 s37 1. Bastante 84 (15.4%) III 546 0
[character] 2. Mucho 29 ( 5.3%) I (100.0%) (0.0%)
3. Nada 232 (42.5%) IIIIIIII
4. Un poco 201 (36.8%) IIIIIII
89 s38 1. Bastante 165 (30.2%) IIIIII 546 0
[character] 2. Mucho 92 (16.8%) III (100.0%) (0.0%)
3. Nada 146 (26.7%) IIIII
4. Un poco 143 (26.2%) IIIII
90 s39 1. Bastante 44 ( 8.1%) I 546 0
[character] 2. Mucho 28 ( 5.1%) I (100.0%) (0.0%)
3. Nada 373 (68.3%) IIIIIIIIIIIII
4. Un poco 101 (18.5%) III
91 s40 1. Bastante 55 (10.1%) II 546 0
[character] 2. Mucho 33 ( 6.0%) I (100.0%) (0.0%)
3. Nada 314 (57.5%) IIIIIIIIIII
4. Un poco 144 (26.4%) IIIII
92 s41 1. Bastante 123 (22.5%) IIII 546 0
[character] 2. Mucho 53 ( 9.7%) I (100.0%) (0.0%)
3. Nada 195 (35.7%) IIIIIII
4. Un poco 175 (32.1%) IIIIII
93 s42 1. Bastante 122 (22.3%) IIII 546 0
[character] 2. Mucho 52 ( 9.5%) I (100.0%) (0.0%)
3. Nada 209 (38.3%) IIIIIII
4. Un poco 163 (29.9%) IIIII
94 ...94 1. No 281 (51.5%) IIIIIIIIII 546 0
[character] 2. Si 265 (48.5%) IIIIIIIII (100.0%) (0.0%)
95 ...95 1. No 251 (46.1%) IIIIIIIII 545 1
[character] 2. Si 294 (53.9%) IIIIIIIIII (99.8%) (0.2%)
96 ...96 1. No 123 (22.5%) IIII 546 0
[character] 2. Si 423 (77.5%) IIIIIIIIIIIIIII (100.0%) (0.0%)
97 ...97 1. No 135 (24.7%) IIII 546 0
[character] 2. Si 411 (75.3%) IIIIIIIIIIIIIII (100.0%) (0.0%)
98 ...98 1. No 116 (21.3%) IIII 545 1
[character] 2. Si 429 (78.7%) IIIIIIIIIIIIIII (99.8%) (0.2%)
99 ...99 1. No 246 (45.2%) IIIIIIIII 544 2
[character] 2. Si 298 (54.8%) IIIIIIIIII (99.6%) (0.4%)
100 ...100 1. No 309 (56.8%) IIIIIIIIIII 544 2
[character] 2. Si 235 (43.2%) IIIIIIII (99.6%) (0.4%)
101 ...101 1. No 198 (64.1%) IIIIIIIIIIII 309 237
[character] 2. Si 111 (35.9%) IIIIIII (56.6%) (43.4%)
102 ...102 1. NINGUNO 87 (23.1%) IIII 377 169
[character] 2. NO 58 (15.4%) III (69.0%) (31.0%)
3. NINGUNA 22 ( 5.8%) I
4. NO. A VECES ME PREOCUPA Q 2 ( 0.5%)
5. ¿CÓMO VA A TERMINAR ESTO? 1 ( 0.3%)
6. ¿CUAL ES MI PRONTOSTICO? 1 ( 0.3%)
7. ¿QUÉ IMPACTO HAN TENIDO E 1 ( 0.3%)
8. ¿QUÉ PASA CON LA ENFERMED 1 ( 0.3%)
9. ¿QUE VA A PASAR CONMIGO? 1 ( 0.3%)
10. A LOS PACIENTES LES VULNE 1 ( 0.3%)
[ 202 others ] 202 (53.6%) IIIIIIIIII
103 ...103 1. NINGUNO 133 (46.0%) IIIIIIIII 289 257
[character] 2. NINGUNA 45 (15.6%) III (52.9%) (47.1%)
3. ME GUSTARÍA SABER MÁS SOB 2 ( 0.7%)
4. ¿ CUÁNDO VOLVERÉ A TRABAJ 1 ( 0.3%)
5. ¿A FUTURO QUÉ VA A PASAR? 1 ( 0.3%)
6. ¿CÓMO COSTEAR LOS GASTOS 1 ( 0.3%)
7. ¿CÓMO QUEDÓ FUNCIONANDO M 1 ( 0.3%)
8. ¿CÓMO SALIERON LOS EXAMEN 1 ( 0.3%)
9. ¿CÓMO SALIERON LOS EXAMEN 1 ( 0.3%)
10. ¿COMO SERÁ LA CIRUGÍA? 1 ( 0.3%)
[ 102 others ] 102 (35.3%) IIIIIII
104 ...104 1. ¿CÓMO HAN SALIDO LOS EXAM 1 ( 4.2%) 24 522
[character] 2. ¿CÓMO PUEDO CAMBIAR DE PO 1 ( 4.2%) (4.4%) (95.6%)
3. ¿CUÁL ES MI DIAGNÓSTICO? 1 ( 4.2%)
4. ¿CUÁL VA A SER EL TRATAMI 1 ( 4.2%)
5. ¿CUANDO LE DARÁN SALIDA? 1 ( 4.2%)
6. ¿LE VAN A RETIRAR ALGUNO 1 ( 4.2%)
7. ¿POR QUÉ PASÓ TANTO TIEMP 1 ( 4.2%)
8. ¿QUE PODRÍA HACER EN LA C 1 ( 4.2%)
9. ¿SI EL MEDICAMENTE NO SE 1 ( 4.2%)
10. A DONDE LLEVO EL TENSIOME 1 ( 4.2%)
[ 14 others ] 14 (58.3%) IIIIIIIIIII
105 ...105 1. ¿CUÁL ES LA MÁS QUE LE AC 1 (16.7%) III 6 540
[character] 2. CUAL ES EL PROPOSITO DE L 1 (16.7%) III (1.1%) (98.9%)
3. CUAL SERIA EL PROCESO A S 1 (16.7%) III
4. EL PIE ESTÁ VOLANDO, NO L 1 (16.7%) III
5. LA TERAPEUTA LE PREOCUPAB 1 (16.7%) III
6. QUE TODO SER HUMANO QUE E 1 (16.7%) III
106 ...106 Mean (sd) : 5.6 (2.9) 11 distinct values : 545 1
[numeric] min < med < max: . : . : (99.8%) (0.2%)
0 < 6 < 10 : : : : : .
IQR (CV) : 4 (0.5) : : . : : : : : :
: : : : : : : : : :
107 ...107 1. Complete 545 (100.0%) IIIIIIIIIIIIIIIIIIII 545 1
[character] (99.8%) (0.2%)
--------------------------------------------------------------------------------------------------------------------------
Recodificando sarc y sparc
vars1 <- c ("sarc1" ,"sarc2" ,"sarc3" ,"sarc4" ,"sarc5" )
data[vars1] <- lapply (data[vars1], function (x) {
x <- as.character (x)
recode <- c (
"Ninguna" = 0 ,
"Alguna" = 1 ,
"1 a 3 caídas" = 1
)
x_num <- recode[x]
x_num[is.na (x_num) & ! is.na (x)] <- 2
as.numeric (x_num)
})
vars2 <- c ("s2" ,"s3" ,"s4" ,"s5" ,"s6" ,"s7" ,"s8" ,"s9" ,"s10" ,"s11" ,
"s12" ,"s13" ,"s14" ,"s15" ,"s16" ,"s17" ,"s18" ,"s19" ,"s20" ,
"s21" ,"s22" ,"s23" ,"s24" ,"s25" ,"s26" ,"s27" ,"s28" ,"s29" ,
"s30" ,"s31" ,"s32" ,"s33" ,"s34" ,"s35" ,"s36" ,"s37" ,"s38" ,
"s39" ,"s40" ,"s41" ,"s42" )
data[vars2] <- lapply (data[vars2], function (x) {
x <- as.character (x)
x[x == "Nada" ] <- 0
x[x == "Un poco" ] <- 1
x[x == "Bastante" ] <- 2
x[x == "Mucho" ] <- 3
as.numeric (x)
})
data$ genero <- factor (data$ genero)
data$ procede <- factor (data$ procede)
data$ educa <- factor (data$ educa)
data$ dx_oms_ca <- factor (data$ dx_oms_ca)
levels (data$ dx_oms_ca)
[1] "Cancer" "No oncologica"
data$ dx_oms_ca <- relevel (data$ dx_oms_ca, ref = "No oncologica" )
data$ educa <- relevel (data$ educa, ref = "Ninguno" )
data$ genero <- relevel (data$ genero, ref = "Masculino" )
data$ procede <- relevel (data$ procede, ref = "Urbana" )
Calculando nuevas variables (sarc_tot y sparc_dominios)
data <- data %>%
rowwise () %>%
mutate (sarc_tot = sum (c_across (all_of (vars1)), na.rm = TRUE
))
data <- data %>%
rowwise () %>%
mutate (sparc_fis = sum (c_across (s2: s22), na.rm = TRUE ),
sparc_psic = sum (c_across (s23: s31), na.rm = TRUE ),
sparc_rel = sum (c_across (s32: s33), na.rm = TRUE ),
sparc_inde = sum (c_across (s34: s36), na.rm = TRUE ),
sparc_fami = sum (c_across (s37: s40), na.rm = TRUE ),
sparc_tra = sum (c_across (s41: s42), na.rm = TRUE )
)
vars3 <- c ("sparc_fis" , "sparc_psic" , "sparc_rel" ,
"sparc_inde" , "sparc_fami" , "sparc_tra" )
summary (data[, vars3])
sparc_fis sparc_psic sparc_rel sparc_inde
Min. : 0.00 Min. : 0.000 Min. :0.000 Min. :0.000
1st Qu.:10.00 1st Qu.: 2.250 1st Qu.:0.000 1st Qu.:1.000
Median :16.00 Median : 5.000 Median :1.000 Median :4.000
Mean :16.93 Mean : 5.945 Mean :1.128 Mean :3.918
3rd Qu.:22.00 3rd Qu.: 8.000 3rd Qu.:2.000 3rd Qu.:6.000
Max. :50.00 Max. :26.000 Max. :6.000 Max. :9.000
sparc_fami sparc_tra
Min. : 0.000 Min. :0.000
1st Qu.: 1.000 1st Qu.:0.000
Median : 3.000 Median :2.000
Mean : 3.353 Mean :2.093
3rd Qu.: 5.000 3rd Qu.:4.000
Max. :12.000 Max. :6.000
colSums (data[, vars3], na.rm = TRUE )
sparc_fis sparc_psic sparc_rel sparc_inde sparc_fami sparc_tra
9243 3246 616 2139 1831 1143
##Ponderacion de los dominios de SPARC a 1
data <- data %>%
mutate (
sparc_fis_p = sparc_fis / 63 * 100 ,
sparc_psic_p = sparc_psic / 27 * 100 ,
sparc_rel_p = sparc_rel / 6 * 100 ,
sparc_inde_p = sparc_inde / 9 * 100 ,
sparc_fami_p = sparc_fami / 12 * 100 ,
sparc_tra_p = sparc_tra / 6 * 100
)
data <- data %>%
mutate (
across (
ends_with ("_p" ),
~ round (.x, 1 )
)
)
summary (data[, c ("sparc_fis_p" ,"sparc_psic_p" ,"sparc_rel_p" , "sparc_inde_p" ,"sparc_fami_p" ,"sparc_tra_p" )])
sparc_fis_p sparc_psic_p sparc_rel_p sparc_inde_p
Min. : 0.00 Min. : 0.000 Min. : 0.00 Min. : 0.00
1st Qu.:15.90 1st Qu.: 8.325 1st Qu.: 0.00 1st Qu.: 11.10
Median :25.40 Median :18.500 Median : 16.70 Median : 44.40
Mean :26.87 Mean :22.005 Mean : 18.81 Mean : 43.53
3rd Qu.:34.90 3rd Qu.:29.600 3rd Qu.: 33.30 3rd Qu.: 66.70
Max. :79.40 Max. :96.300 Max. :100.00 Max. :100.00
sparc_fami_p sparc_tra_p
Min. : 0.00 Min. : 0.00
1st Qu.: 8.30 1st Qu.: 0.00
Median : 25.00 Median : 33.30
Mean : 27.95 Mean : 34.89
3rd Qu.: 41.70 3rd Qu.: 66.70
Max. :100.00 Max. :100.00
par (las = 2 )
boxplot (
data[, c ("sparc_fis_p" ,"sparc_psic_p" ,"sparc_rel_p" ,
"sparc_inde_p" ,"sparc_fami_p" ,"sparc_tra_p" )],
main = "Boxplot de dominios SPARC ponderados" ,
ylab = "Puntaje ponderado" ,
names = c ("D Físico" , "D Psicológico" , "D Relacional" ,
"D Independencia" , "D Familiar" , "D Tratamiento" ),
col = c ("lightblue" , "lightgreen" , "lightpink" ,
"lightyellow" , "lightgray" , "lightcoral" )
)
##Visualizacion inicial Sarcopenia
ggplot (data, aes (x = sarc_tot)) +
geom_histogram (aes (y = ..density..), binwidth = 1 , fill = "lightblue" , color = "black" ) +
geom_density (color = "red" , size = 1 ) +
labs (title = "Histograma de sarc_tot con línea de densidad" ,
x = "sarc_tot" ,
y = "Densidad" ) +
theme_minimal ()
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
ℹ Please use `after_stat(density)` instead.
—————————————————————————–
Objetivo 1. Describir las características sociodemográficas de los pacientes con enfermedades no transmisibles crónicas oncológicas y no oncológicas.
data <- data %>%
mutate (transpor = as.numeric (as.character (transpor)))
data %>%
tbl_summary (include = c (genero, etnia, edad, civil, religion, educa, procede, convivi, transpor),
by= dx_oms_ca, missing = "no" , sort = all_categorical () ~ "frequency" ) %>%
add_n () %>%
add_overall ()
genero
546
Femenino
329 (60%)
274 (62%)
55 (53%)
Masculino
217 (40%)
168 (38%)
49 (47%)
etnia
546
Mestizo
411 (75%)
335 (76%)
76 (73%)
Blanco
71 (13%)
56 (13%)
15 (14%)
Indígena
36 (6.6%)
27 (6.1%)
9 (8.7%)
Afrocolombiano
28 (5.1%)
24 (5.4%)
4 (3.8%)
edad
546
66 (56, 76)
67 (57, 76)
65 (49, 74)
civil
546
Casado
198 (36%)
154 (35%)
44 (42%)
Unión libre
136 (25%)
117 (26%)
19 (18%)
Soltero
105 (19%)
80 (18%)
25 (24%)
Viudo
83 (15%)
69 (16%)
14 (13%)
Separado
24 (4.4%)
22 (5.0%)
2 (1.9%)
religion
546
Católico
450 (82%)
370 (84%)
80 (77%)
Cristiano
63 (12%)
43 (9.7%)
20 (19%)
Otro
26 (4.8%)
24 (5.4%)
2 (1.9%)
Agnóstico
4 (0.7%)
3 (0.7%)
1 (1.0%)
Ateo
3 (0.5%)
2 (0.5%)
1 (1.0%)
educa
546
Primaria
230 (42%)
192 (43%)
38 (37%)
Bachillerato
166 (30%)
136 (31%)
30 (29%)
Ninguno
88 (16%)
71 (16%)
17 (16%)
Técnico
31 (5.7%)
21 (4.8%)
10 (9.6%)
Universitario
31 (5.7%)
22 (5.0%)
9 (8.7%)
procede
546
Urbana
344 (63%)
271 (61%)
73 (70%)
Rural
202 (37%)
171 (39%)
31 (30%)
convivi
546
3.00 (2.00, 4.00)
3.00 (2.00, 4.00)
3.00 (2.00, 4.00)
transpor
546
0.50 (0.25, 1.00)
0.50 (0.25, 1.00)
0.32 (0.17, 1.00)
Objetivo 2. Describir la prevalencia de sarcopenia, definida por un puntaje en la escala SARC-F >4 puntos en pacientes con enfermedades crónicas no transmisibles.
data <- data %>%
mutate (
sarc_tot_cat = if_else (
sarc_tot > 4 ,
1 L, # Sarcopenia
0 L # No sarcopenia
)
)
data %>%
tbl_summary (include = c (sarc_tot, sarc_tot_cat),
by= dx_oms_ca, missing = "no" , sort = all_categorical () ~ "frequency" ) %>%
add_n () %>%
add_overall ()
sarc_tot
546
4.00 (1.00, 6.00)
3.50 (1.00, 6.00)
4.00 (2.00, 7.00)
sarc_tot_cat
546
221 (40%)
176 (40%)
45 (43%)
data %>%
tbl_summary (
include = c (sarc_tot_cat),
by = dx_oms_ca,
missing = "no" ,
sort = all_categorical () ~ "frequency" ,
statistic = all_categorical () ~ "{p}%"
) %>%
add_ci () %>%
add_n () %>%
add_overall ()
sarc_tot_cat
546
40%
40%
35%, 45%
43%
34%, 53%
Abbreviation: CI = Confidence Interval
ggplot (data, aes (x = sarc_tot, fill = as.factor (dx_oms_ca))) +
geom_density (alpha = 0.5 ) +
labs (title = "Distribución de sarc_tot por dx_oms_ca" ,
x = "sarc_tot" ,
y = "Densidad" ,
fill = "dx_oms_ca" ) +
theme_minimal ()
Objetivo 3. Determinar la prevalencia de necesidades holísticas no satisfechas existentes en la población de pacientes con enfermedades crónicas no transmisibles y estratificar la estimación por cada uno de los 8 dominios de la herramienta SPARC-Sp.
data %>%
tbl_summary (
include = c (
sparc_fis_p, sparc_psic_p, sparc_rel_p,
sparc_inde_p, sparc_fami_p, sparc_tra_p
),
by = dx_oms_ca,
missing = "no" ,
statistic = all_continuous () ~ "{median} ({p25}, {p75})" ,
type = c (
sparc_rel_p ~ "continuous" ,
sparc_tra_p ~ "continuous"
)
) %>%
add_n () %>%
add_p () %>%
add_overall ()
sparc_fis_p
546
25 (16, 35)
24 (14, 33)
32 (24, 44)
<0.001
sparc_psic_p
546
19 (7, 30)
15 (7, 30)
22 (15, 37)
<0.001
sparc_rel_p
546
17 (0, 33)
17 (0, 33)
17 (0, 33)
0.002
sparc_inde_p
546
44 (11, 67)
44 (11, 67)
50 (22, 67)
0.2
sparc_fami_p
546
25 (8, 42)
25 (8, 42)
25 (8, 42)
0.8
sparc_tra_p
546
33 (0, 67)
33 (0, 50)
33 (17, 67)
0.004
data %>%
tbl_summary (
include = c (
sparc_fis_p, sparc_psic_p, sparc_rel_p,
sparc_inde_p, sparc_fami_p, sparc_tra_p
),
by = sarc_tot_cat,
missing = "no" ,
statistic = all_continuous () ~ "{median} ({p25}, {p75})" ,
type = c (
sparc_rel_p ~ "continuous" ,
sparc_tra_p ~ "continuous"
)
) %>%
add_n () %>%
add_p () %>%
add_overall ()
sparc_fis_p
546
25 (16, 35)
22 (13, 32)
30 (22, 41)
<0.001
sparc_psic_p
546
19 (7, 30)
15 (7, 26)
22 (11, 37)
<0.001
sparc_rel_p
546
17 (0, 33)
17 (0, 33)
17 (0, 33)
0.018
sparc_inde_p
546
44 (11, 67)
33 (11, 56)
56 (33, 67)
<0.001
sparc_fami_p
546
25 (8, 42)
25 (8, 33)
25 (17, 42)
<0.001
sparc_tra_p
546
33 (0, 67)
33 (0, 50)
33 (17, 67)
<0.001
ggplot (data, aes (x = as.factor (sarc_tot_cat), y = sparc_fis_p, fill = as.factor (sarc_tot_cat))) +
geom_boxplot () +
labs (title = "Boxplot de Dominio Físico de SPARC por Sarcopenia" ,
x = "Sarcopenia (0=No, 1=Sí)" ,
y = "Puntaje Dominio Físico (%)" ) +
theme_minimal () +
scale_fill_manual (values = c ("lightblue" , "lightcoral" ), name = "Sarcopenia" , labels = c ("No" , "Sí" ))
Objetivo 3.1 Explorar la asociacion entre Sarcopenia y los dominios de SPARC.
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats 1.0.1 ✔ readr 2.2.0
✔ lubridate 1.9.5 ✔ stringr 1.6.0
✔ purrr 1.2.1 ✔ tibble 3.3.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
✖ tibble::view() masks summarytools::view()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data_long <- data %>%
pivot_longer (
cols = c (
sparc_fis_p, sparc_psic_p, sparc_rel_p,
sparc_inde_p, sparc_fami_p, sparc_tra_p
),
names_to = "dominio" ,
values_to = "puntaje"
)
library (ggpubr)
ggplot (
data_long,
aes (
x = as.factor (sarc_tot_cat),
y = puntaje,
fill = as.factor (sarc_tot_cat)
)
) +
geom_boxplot () +
facet_wrap (~ dominio, scales = "free_y" ) +
stat_compare_means (
method = "wilcox.test" ,
label = "p.format"
) +
labs (
title = "Distribución de los dominios SPARC según sarcopenia" ,
x = "Sarcopenia (0 = No, 1 = Sí)" ,
y = "Puntaje SPARC (%)"
) +
theme_minimal () +
scale_fill_manual (
values = c ("lightblue" , "lightcoral" ),
name = "Sarcopenia" ,
labels = c ("No" , "Sí" )
) +
theme (
legend.position = "bottom" ,
strip.text = element_text (face = "bold" )
)
par (mfrow = c (2 , 3 )) # Configura la disposición de los gráficos
hist (data$ sparc_fis_p, main = "Histograma Sparc Físico" , xlab = "Sparc Físico (%)" , col = "lightblue" )
hist (data$ sparc_psic_p, main = "Histograma Sparc Psicológico
" , xlab = "Sparc Psicológico (%)" , col = "lightgreen" )
hist (data$ sparc_rel_p, main = "Histograma Sparc Relacional" , xlab = "Sparc Relacional (%)" , col = "lightpink" )
hist (data$ sparc_inde_p, main = "Histograma Sparc Independencia" ,
xlab = "Sparc Independencia (%)" , col = "lightyellow" )
hist (data$ sparc_fami_p, main = "Histograma Sparc Familiar" ,
xlab = "Sparc Familiar (%)" , col = "lightgray" )
hist (data$ sparc_tra_p, main = "Histograma Sparc Tratamiento" ,
xlab = "Sparc Tratamiento (%)" , col = "lightcoral" )
shapiro.test (data$ sparc_fis_p)
Shapiro-Wilk normality test
data: data$sparc_fis_p
W = 0.9726, p-value = 1.415e-08
shapiro.test (data$ sparc_psic_p)
Shapiro-Wilk normality test
data: data$sparc_psic_p
W = 0.90219, p-value < 2.2e-16
shapiro.test (data$ sparc_rel_p)
Shapiro-Wilk normality test
data: data$sparc_rel_p
W = 0.82989, p-value < 2.2e-16
shapiro.test (data$ sparc_inde_p)
Shapiro-Wilk normality test
data: data$sparc_inde_p
W = 0.92723, p-value = 1.299e-15
shapiro.test (data$ sparc_fami_p)
Shapiro-Wilk normality test
data: data$sparc_fami_p
W = 0.91519, p-value < 2.2e-16
shapiro.test (data$ sparc_tra_p)
Shapiro-Wilk normality test
data: data$sparc_tra_p
W = 0.88908, p-value < 2.2e-16
data <- data %>%
mutate (sparc_total_p = sparc_fis_p + sparc_psic_p + sparc_rel_p + sparc_inde_p + sparc_fami_p + sparc_tra_p)
hist (data$ sparc_total_p)
shapiro.test (data$ sparc_total_p)
Shapiro-Wilk normality test
data: data$sparc_total_p
W = 0.97065, p-value = 5.413e-09
summary (data$ sparc_total_p)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00 99.22 162.85 174.04 235.03 499.40
rng <- range (data$ sparc_total_p, na.rm = TRUE )
data <- data %>%
mutate (
sparc_total_st = (sparc_total_p - rng[1 ]) / (rng[2 ] - rng[1 ]) * 100
)
hist (data$ sparc_total_st)
ggplot (data, aes (sample = sparc_total_p)) +
stat_qq () +
stat_qq_line (color = "red" ) +
labs (
title = "Q–Q plot de normalidad del puntaje total SPARC" ,
x = "Cuantiles teóricos" ,
y = "Cuantiles observados"
) +
theme_minimal ()
ggplot (data, aes (x = as.factor (sarc_tot_cat), y = sparc_total_st, fill = as.factor (sarc_tot_cat))) +
geom_boxplot () +
labs (title = "Boxplot de Puntaje Total SPARC por Sarcopenia" ,
x = "Sarcopenia (0=No, 1=Sí)" ,
y = "Puntaje Total SPARC (%)" ) +
theme_minimal () +
scale_fill_manual (values = c ("lightblue" , "lightcoral" ), name = "Sarcopenia" , labels = c ("No" , "Sí" ))
ggplot (data, aes (x = sarc_tot, y = sparc_total_st)) +
geom_point (alpha = 0.6 , color = "blue" ) +
geom_smooth (method = "lm" , color = "red" , se = FALSE ) +
labs (title = "Diagrama de dispersión de Puntaje Total SPARC vs Sarcopenia" ,
x = "sarc_tot" ,
y = "Puntaje Total SPARC (%)" ) +
theme_minimal ()
`geom_smooth()` using formula = 'y ~ x'
Modelo lineal univariado
data %>%
tbl_summary (
include = c (
sparc_total_st
),
by = sarc_tot_cat,
missing = "no" ,
statistic = all_continuous () ~ "{median} ({p25}, {p75})" ,
type = c (
sparc_total_st ~ "continuous"
)
) %>%
add_n () %>%
add_p () %>%
add_overall ()
sparc_total_st
546
33 (20, 47)
28 (16, 41)
39 (28, 56)
<0.001
model1 <- lm (sparc_total_st ~ sarc_tot_cat, data = data)
summary (model1)
Call:
lm(formula = sparc_total_st ~ sarc_tot_cat, data = data)
Residuals:
Min 1Q Median 3Q Max
-40.834 -13.957 -2.249 12.303 57.905
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.924 1.029 29.068 < 2e-16 ***
sarc_tot_cat 12.171 1.618 7.522 2.24e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 18.56 on 544 degrees of freedom
Multiple R-squared: 0.09421, Adjusted R-squared: 0.09255
F-statistic: 56.58 on 1 and 544 DF, p-value: 2.242e-13
sarc_tot_cat
12
9.0, 15
<0.001
Abbreviation: CI = Confidence Interval
model_performance (model1)
# Indices of model performance
AIC | AICc | BIC | R2 | R2 (adj.) | RMSE | Sigma
--------------------------------------------------------------
4743.1 | 4743.2 | 4756.0 | 0.094 | 0.093 | 18.524 | 18.558
El conjunto mínimo suficiente para estimar el efecto total de la sarcopenia en las necesidades paliativas está compuesto por: Edad, Estadio del cáncer , Educación, Compañeros de casa, Diagnóstico principal, Estado civil, Sexo, Área de origen y U.
model2 <- lm (sparc_total_st ~ sarc_tot_cat + dx_oms_ca + edad + educa + convivi + civil + genero + procede, data = data)
summary (model2)
Call:
lm(formula = sparc_total_st ~ sarc_tot_cat + dx_oms_ca + edad +
educa + convivi + civil + genero + procede, data = data)
Residuals:
Min 1Q Median 3Q Max
-47.228 -12.839 -1.678 11.936 57.100
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 32.20358 5.88199 5.475 6.76e-08 ***
sarc_tot_cat 13.57466 1.65117 8.221 1.55e-15 ***
dx_oms_caCancer 7.04284 2.01590 3.494 0.000516 ***
edad -0.14652 0.06157 -2.380 0.017670 *
educaBachillerato 1.74446 2.65406 0.657 0.511285
educaPrimaria 0.62571 2.32567 0.269 0.787999
educaTécnico 5.31059 4.01010 1.324 0.185971
educaUniversitario 4.18345 4.04600 1.034 0.301620
convivi -0.11772 0.50393 -0.234 0.815376
civilSeparado 2.40295 4.02922 0.596 0.551176
civilSoltero 4.00919 2.31604 1.731 0.084023 .
civilUnión libre 5.89601 2.13173 2.766 0.005875 **
civilViudo -0.22512 2.52827 -0.089 0.929083
generoFemenino 3.27796 1.67387 1.958 0.050716 .
procedeRural 0.34914 1.77129 0.197 0.843818
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 18.03 on 531 degrees of freedom
Multiple R-squared: 0.1658, Adjusted R-squared: 0.1438
F-statistic: 7.54 on 14 and 531 DF, p-value: 1.524e-14
sarc_tot_cat
14
10, 17
<0.001
dx_oms_ca
No oncologica
—
—
Cancer
7.0
3.1, 11
<0.001
edad
-0.15
-0.27, -0.03
0.018
educa
Ninguno
—
—
Bachillerato
1.7
-3.5, 7.0
0.5
Primaria
0.63
-3.9, 5.2
0.8
Técnico
5.3
-2.6, 13
0.2
Universitario
4.2
-3.8, 12
0.3
convivi
-0.12
-1.1, 0.87
0.8
civil
Casado
—
—
Separado
2.4
-5.5, 10
0.6
Soltero
4.0
-0.54, 8.6
0.084
Unión libre
5.9
1.7, 10
0.006
Viudo
-0.23
-5.2, 4.7
>0.9
genero
Masculino
—
—
Femenino
3.3
-0.01, 6.6
0.051
procede
Urbana
—
—
Rural
0.35
-3.1, 3.8
0.8
Abbreviation: CI = Confidence Interval
model_performance (model2)
# Indices of model performance
AIC | AICc | BIC | R2 | R2 (adj.) | RMSE | Sigma
--------------------------------------------------------------
4724.1 | 4725.2 | 4793.0 | 0.166 | 0.144 | 17.777 | 18.026