Se carga la base de datos ya filtrada y compactada. En esta base
En esta base se inclyeron un total de 494 registros
#Ajuste de variables inicial (dolor + sintomas/tamizaje + Charlson)
library(dplyr)
BASE$dolor <- ifelse(
apply(BASE[, c(76,81, 82)] == "Checked", 1, any), # Verificar si hay algún "Checked" en cada fila
"Sí",
"No")
BASE$ingreso <- ifelse(BASE$`¿Cuenta con estudios previos de tamizaje para cáncer de cuello uterino?`== "Si", "tamizaje", "sintomas")
BASE$ingreso[is.na(BASE$ingreso)] <- "sintomas"
BASE <- BASE %>%
mutate(charls_cat= cut(`Índice de Charlson`,
breaks = c(-Inf, 2, 4, Inf),
right = T,
labels = c("<=2","3-4", ">=5")))
#table(BASE$`Régimen Afiliación Salud (Colombia)`)
#table(BASE$`Régimen afiliación salud (Guatemala)`)
BASE <- BASE %>%
mutate(AFILIACION = case_when(
`Régimen Afiliación Salud (Colombia)` %in% c("Contributivo", "Particular/Prepagada") |
`Régimen afiliación salud (Guatemala)` %in% c("Privado/Seguro médico") ~ "Contributivo/Privado",
`Régimen Afiliación Salud (Colombia)` %in% c("Subsidiado") |
`Régimen afiliación salud (Guatemala)` %in% c("Sector público", "Seguro social") ~ "Subsidiado/Público",
TRUE ~ NA_character_ # Para los casos que no cumplen ninguna condición
))
BASE$AFILIACION <- factor(BASE$AFILIACION, levels = c("Subsidiado/Público", "Contributivo/Privado")) #REORDENANDO LAS CATEGORIAS
#summary(BASE$`Edad a la fecha de diagnóstico`)
# se convierten en NA los mayores o iguales a 100
BASE$`Edad a la fecha de diagnóstico`[BASE$`Edad a la fecha de diagnóstico` >= 100] <- NA
#summary(BASE$`Intervalo entre Radioterapia Externa y Braquiterapia`)
BASE$`Intervalo entre Radioterapia Externa y Braquiterapia`[BASE$`Intervalo entre Radioterapia Externa y Braquiterapia` >= 1000] <- NA
#table(BASE$`Máximo nivel de educación alcanzado`)
BASE$EDUCACION <- ifelse(BASE$`Máximo nivel de educación alcanzado` %in% c("No sabe leer/escribir", "Primaria"), "Primaria <",
ifelse(BASE$`Máximo nivel de educación alcanzado` %in% c("Secundaria", "Técnico"), "Secundaria + tecnico", ifelse(BASE$`Máximo nivel de educación alcanzado` %in% c("Profesional", "Posgrado (maestría, doctorado)"), "Profesional + posgrado", BASE$`Máximo nivel de educación alcanzado`)))
BASE$EDUCACION <- factor(BASE$EDUCACION, levels = c("Primaria <", "Secundaria + tecnico", "Profesional + posgrado") ) #REORDENANDO LAS CATEGORIAS
#table(BASE$`Grupo étnico`)
BASE$GRUPO_ET <- ifelse(BASE$`Grupo étnico` %in% c("Afroamericano", "Gitanos o romanos", "Latino", "Mestizo", "Otros", "No aplica"), "Sin etnia especifica", ifelse(BASE$`Grupo étnico` %in% c("Indígena (etnias)"), "Indigena", BASE$`Grupo étnico`))
BASE$GRUPO_ET <- factor(BASE$GRUPO_ET, levels = c("Indigena", "Sin etnia especifica")) #REORDENANDO LAS CATEGORIAS
BASE$EST_clin_FIGO<- factor(recode(BASE$`Estadio clínico según clasificación FIGO`, "IB3: Tumor confinado al cuello uterino que mide 4 cm o más de ancho." = "IB3,II,IIA", "II: Cáncer se ha diseminado más allá del útero hacia la vagina o tejido cercano al cuello uterino y esta dentro del área pélvica." = "IB3,II,IIA",
"IIA: Tumor limitado a los dos tercios superiores de la vagina." = "IB3,II,IIA",
"IIB: Tumor diseminado a región parametrial sin llegar a la pared pélvica." = "IIB, III, IIIA, IIIB, IIIC, IVA", "III: Tumor compromete tercio inferior de vagina y/o se ha diseminado a la pared pélvica y/o causa hidronefrosis y/o compromete ganglios linfáticos regionales, sin desiminación a distancia." = "IIB, III, IIIA, IIIB, IIIC, IVA", "IIIA: Tumor compromete tercio inferior de la vagina, no ha crecido hasta interior de la pared pélvica." = "IIB, III, IIIA, IIIB, IIIC, IVA", "IIIB: Tumor ha crecido dentro de la pared pélvica y/o afecta un riñón." = "IIB, III, IIIA, IIIB, IIIC, IVA", "IIIC: Tumor compromete ganglios linfáticos regionales (pelvis y paraaórticos)." = "IIB, III, IIIA, IIIB, IIIC, IVA",
"IVA: Cáncer se ha diseminado a vejiga o recto, pero no hay metástasis a distancia." = "IIB, III, IIIA, IIIB, IIIC, IVA"))
BASE$EST_clin_FIGO <- factor(BASE$EST_clin_FIGO, levels = c("IB3,II,IIA", "IIB, III, IIIA, IIIB, IIIC, IVA")) #REORDENANDO LAS CATEGORIAS
BASE$TABAQUISMO <- ifelse(BASE$Tabaquismo %in% c("Fumadora al momento del diagnóstico 1 paquete año o menos", "Fumadora al momento del diagnóstico 2 paquetes año o más"), "Fumadora", ifelse(BASE$Tabaquismo %in% c("Fumó hasta menos de 15 años previos al diagnóstico (al momento del diagnóstico sin consumo)"), "Ex-Fumadora", ifelse(BASE$Tabaquismo %in% c("Nunca o dejó de fumar 15 años o más antes del diagnóstico"), "No fumadora", BASE$Tabaquismo)))
BASE$TABAQUISMO <- factor(BASE$TABAQUISMO, levels = c("No fumadora","Ex-Fumadora", "Fumadora"))
BASE$ECOG <- factor(recode(BASE$ECOG, "0 Asintomático, sin restricciones para realización de la actividad física" = "ECOG0", "1 Sintomático con limitación para actividades arduas. Logra desempeñar sin asistencia trabajos ligeros y actividades cotidianas. Permanece en cama solo en las horas de sueño" = "ECOG1",
"2 Paciente encamado menos del 50% del día. Satisface la mayoría de sus necesidades solo" = "ECOG2",
"3 Paciente encamado más del 50% del día. Necesita ayuda para satisfacer la mayoría de las actividades diarias" = "ECOG3", "6 Sin dato" = "SIN DATO"))
BASE$ECOG[BASE$ECOG == "SIN DATO"] <- NA
#Numero de casos por intitucion (verificados en calidad)
País | Centro | n |
---|---|---|
Colombia | HUSI | 132 |
Colombia | COAJ | 122 |
Guatemala | ANGELES | 121 |
Guatemala | MIRARI | 119 |
Total | 488 |
myVars1 <- c("Edad a la fecha de diagnóstico", "EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia")
catVars1 <- c("EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia")
# Reordenando las categorias para la tabla 1 PENDIENTES
BASE$`Estado civil` <- factor(BASE$`Estado civil`, levels = c("Soltero", "Casado o en pareja", "Divorciado o viudo")) #REORDENANDO LAS CATEGORIAS
library(tableone)
tab1 <- CreateTableOne(vars = myVars1, factorVars= catVars1, strata = "Procedencia", data = BASE, includeNA = F, test = T,addOverall = T, testNonNormal = T)
table1 <- as.data.frame(print(tab1, showAllLevels= TRUE, printToggle = FALSE, noSpaces = TRUE))
rownames(table1) <- gsub("\\.{3,}", "", rownames(table1)) # Quita puntos suspensivos "..."
rownames(table1) <- gsub("\\.{1,}", "_", rownames(table1)) # Quita puntos suspensivos "..."
rownames(table1) <- gsub("\\_{1,}", " ", rownames(table1)) # Quita puntos suspensivos "..."
library(knitr)
library(kableExtra)
kable(table1, format = "html", caption = "Variable sociodemograficas") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "#D7261E") %>%
column_spec(2, border_left = T, background = "#F3E6E3")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
Edad a la fecha de diagnóstico mean SD | 51.25 (13.39) | 51.77 (14.65) | 50.71 (11.91) | 0.379 | ||
EDUCACION | Primaria < | 144 (37.0) | 47 (30.1) | 97 (41.6) | 0.001 | |
X | Secundaria + tecnico | 209 (53.7) | 85 (54.5) | 124 (53.2) | ||
X 1 | Profesional + posgrado | 36 (9.3) | 24 (15.4) | 12 (5.2) | ||
GRUPO ET | Indigena | 35 (7.1) | 3 (1.2) | 32 (13.3) | <0.001 | |
X 2 | Sin etnia especifica | 459 (92.9) | 251 (98.8) | 208 (86.7) | ||
Estado civil | Soltero | 110 (24.4) | 58 (26.9) | 52 (22.2) | 0.043 | |
X 3 | Casado o en pareja | 254 (56.4) | 127 (58.8) | 127 (54.3) | ||
X 4 | Divorciado o viudo | 86 (19.1) | 31 (14.4) | 55 (23.5) | ||
AFILIACION | Subsidiado/Público | 197 (39.9) | 131 (51.6) | 66 (27.5) | <0.001 | |
X 5 | Contributivo/Privado | 297 (60.1) | 123 (48.4) | 174 (72.5) |
library(openxlsx)
write.xlsx(table1, "tablasocio_dm_Junio.xlsx", rowNames = TRUE)
#cambiando nombres variables y niveles para mejor visualizacion de la tabla 1
colnames(BASE)[colnames(BASE) == "Número de gestaciones (incluyendo abortos, ectópicos y nacimientos vivos previos al ingreso al estudio)"] <- "N.de gestaciones"
colnames(BASE)[colnames(BASE) == "Número de partos vaginales"] <- "N. partos
vaginales"
colnames(BASE)[colnames(BASE) == "Tipo de estudio de tamizaje (choice=Citología)"] <- "Citologia"
colnames(BASE)[colnames(BASE) == "Tipo de estudio de tamizaje (choice=Pruebas moleculares VPH)"] <- "P. molecular VPH"
colnames(BASE)[colnames(BASE) == "Antecedente de procedimientos en cérvix (choice=Conización cervical)"] <- "Conización cervical"
colnames(BASE)[colnames(BASE) == "Antecedente de procedimientos en cérvix (choice=Crioterapia)"] <- "Crioterapia"
colnames(BASE)[colnames(BASE) == "Antecedente de procedimientos en cérvix (choice=Ablación térmica)"] <- "Ablación térmica"
colnames(BASE)[colnames(BASE) == "Antecedente de procedimientos en cérvix (choice=Biopsia exocervical o endocervical)"] <- "Biopsia exocervical o endocervical"
colnames(BASE)[colnames(BASE) == "Antecedente de procedimientos en cérvix (choice=Ninguno)"] <- "Ningun procedimiento cervix previo"
#names(BASE) 35:37, 45:49
BASE <- BASE %>%
mutate(across(c(35:37, 45:49), ~ recode(., "Checked" = "Si", "Unchecked" = "No")))
BASE$`Historia de lesiones premalignas` <- ifelse(BASE$`Historia de lesiones premalignas` %in% c("NIC 1 (displasia leve) - Lesión escamosa intraepitelial de bajo grado"), "NIC 1", ifelse(BASE$`Historia de lesiones premalignas` %in% c("NIC 2 (displasia moderada - Lesión escamosa intraepitelial de alto grado", "NIC 3 (displasia grave) - Lesión escamosa intraepitelial de alto grado"), "NIC 2 - 3", BASE$`Historia de lesiones premalignas`))
BASE$`Historia de lesiones premalignas` <- factor(BASE$`Historia de lesiones premalignas`, levels = c("NIC 2 - 3", "NIC 1", "Carcinoma in situ", "Nunca")) #REORDENANDO LAS CATEGORIAS
BASE <- BASE %>%
mutate(
# Contar cuántas respuestas "Sí" hay
n_procedimientos = (`Ningun procedimiento cervix previo` == "Si") +
(`Biopsia exocervical o endocervical` == "Si") +
(`Ablación térmica`== "Si") +
(`Conización cervical` == "Si") +
(`Crioterapia` == "Si"),
# Crear la columna con la clasificación
Procedimiento_Cervix = case_when(
`Ningun procedimiento cervix previo` == "Si" ~ "NINGUNA",
`Biopsia exocervical o endocervical` == "Si" ~ "BIOPSIA",
`Ablación térmica` == "Si" | `Crioterapia` == "Si" ~ "TRAT. ABLATIVO",
`Conización cervical` == "Si" ~ "CONIZACION",
TRUE ~ NA_character_
)
)
# Ver casos con múltiples respuestas
casos_multiples <- BASE %>%
filter(n_procedimientos > 1) %>%
select(contains("cervix"), contains("Ablación"), contains("Crioterapia"),
contains("Biopsia"), contains("Conización"), Procedimiento_Cervix)
BASE$Procedimiento_Cervix <- factor(BASE$Procedimiento_Cervix, levels = c("NINGUNA", "BIOPSIA", "TRAT. ABLATIVO", "CONIZACION")) #REORDENANDO LAS CATEGORIAS
print(casos_multiples)
## # A tibble: 7 × 7
## Ningun procedimiento cer…¹ Procedimiento_Cervix `Ablación térmica` Crioterapia
## <chr> <chr> <chr> <chr>
## 1 No BIOPSIA No No
## 2 No BIOPSIA No No
## 3 Si NINGUNA No No
## 4 No BIOPSIA No No
## 5 No BIOPSIA No Si
## 6 No BIOPSIA No No
## 7 No BIOPSIA No No
## # ℹ abbreviated name: ¹`Ningun procedimiento cervix previo`
## # ℹ 3 more variables: `Biopsia exocervical o endocervical` <chr>,
## # `Especifique el tipo histologico reportado en biopsia de diagnóstico` <chr>,
## # `Conización cervical` <chr>
myVars2<-c("TABAQUISMO", "N.de gestaciones", "N. partos vaginales", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Procedimiento_Cervix", "charls_cat")
catVars2<-c("TABAQUISMO", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Conización cervical", "Crioterapia", "Procedimiento_Cervix", "charls_cat")
tab2 <- CreateTableOne(vars = myVars2, factorVars= catVars2, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table2 <- as.data.frame(print(tab2, showAllLevels= TRUE, printToggle = FALSE, noSpaces = TRUE))
rownames(table2) <- gsub("\\.{3,}", "", rownames(table2)) # Quita 3 puntos suspensivos
rownames(table2) <- gsub("\\.{2,}", " ", rownames(table2)) # Quita 2 puntos suspensivos
rownames(table2) <- gsub("\\.{1,}", " ", rownames(table2)) # Quita 1 punto
kable(table2, format = "html", caption = "Antecedentes") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "#698B22") %>%
column_spec(2, border_left = T, background = "#98FB98")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
TABAQUISMO | No fumadora | 422 (90.9) | 210 (87.9) | 212 (94.2) | 0.032 | |
X | Ex-Fumadora | 17 (3.7) | 10 (4.2) | 7 (3.1) | ||
X 1 | Fumadora | 25 (5.4) | 19 (7.9) | 6 (2.7) | ||
N de gestaciones mean SD | 3.73 (2.67) | 3.84 (3.06) | 3.62 (2.18) | 0.357 | ||
Citologia | No | 373 (75.5) | 163 (64.2) | 210 (87.5) | <0.001 | |
X 2 | Si | 121 (24.5) | 91 (35.8) | 30 (12.5) | ||
P molecular VPH | No | 485 (98.2) | 245 (96.5) | 240 (100.0) | 0.009 | |
X 3 | Si | 9 (1.8) | 9 (3.5) | 0 (0.0) | ||
Historia de lesiones premalignas | NIC 2 - 3 | 17 (5.8) | 7 (3.8) | 10 (9.2) | <0.001 | |
X 4 | NIC 1 | 9 (3.1) | 3 (1.6) | 6 (5.5) | ||
X 5 | Carcinoma in situ | 9 (3.1) | 1 (0.5) | 8 (7.3) | ||
X 6 | Nunca | 259 (88.1) | 174 (94.1) | 85 (78.0) | ||
Procedimiento_Cervix | NINGUNA | 319 (64.6) | 196 (77.2) | 123 (51.2) | <0.001 | |
X 7 | BIOPSIA | 157 (31.8) | 53 (20.9) | 104 (43.3) | ||
X 8 | TRAT. ABLATIVO | 6 (1.2) | 0 (0.0) | 6 (2.5) | ||
X 9 | CONIZACION | 12 (2.4) | 5 (2.0) | 7 (2.9) | ||
charls_cat | <=2 | 200 (40.5) | 117 (46.1) | 83 (34.6) | 0.008 | |
X 10 | 3-4 | 189 (38.3) | 95 (37.4) | 94 (39.2) | ||
X 11 | >=5 | 105 (21.3) | 42 (16.5) | 63 (26.2) |
write.xlsx(table2, "tabla_antc_jun_2025.xlsx", rowNames = TRUE)
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=TC tórax)"] <- "TC TORAX"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=TC abdomen)"] <- "TC ABDOMEN"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=TC pelvis)"] <- "TC PELVIS"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=RMN pelvis)"] <- "RMN PELVIS"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=PET-CT)"] <- "PET-CT"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Rayos X tórax)"] <- "RAYOS X TORAX"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Laparoscopia exploratoria)"] <- "Laparoscopia exploratoria"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Cistoscopia)"] <- "Cistoscopia"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Ultrasonido transvaginal)"] <- "Ultrasonido transvaginal"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Ultrasonido de renal y de vías urinarias)"] <- "Ultrasonido de renal y de vías urinaria"
colnames(BASE)[colnames(BASE) == "Estudios de extensión (choice=Otro ¿Cuál?)"] <- "Otro estudio de extension"
#names(BASE) 119:129
BASE <- BASE %>%
mutate(across(c(119:129), ~ recode(., "Checked" = "Si", "Unchecked" = "No")))
myVars3<-c("ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension")
catVars3<-c("ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension")
tab3 <- CreateTableOne(vars = myVars3, factorVars= catVars3, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table3 <- as.data.frame(print(tab3, showAllLevels= TRUE, printToggle = FALSE))
rownames(table3) <- gsub("\\.{3,}", "", rownames(table3)) # Quita 3 puntos
rownames(table3) <- gsub("\\.{1,}", " ", rownames(table3)) # Quita 1 puntos
kable(table3, format = "html", caption = "Deteccion - estudios de extension") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "#FFB90F") %>%
column_spec(2, border_left = T, background = "#FFFFE0")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
ingreso | sintomas | 368 (74.5) | 161 (63.4) | 207 ( 86.2) | <0.001 | |
X | tamizaje | 126 (25.5) | 93 (36.6) | 33 ( 13.8) | ||
dolor | No | 403 (95.3) | 177 (94.7) | 226 ( 95.8) | 0.761 | |
X 1 | Sí | 20 ( 4.7) | 10 ( 5.3) | 10 ( 4.2) | ||
Subtipo histológico | Adenocarcinoma | 59 (11.9) | 22 ( 8.7) | 37 ( 15.4) | 0.025 | |
X 2 | Carcinoma adenoescamoso | 2 ( 0.4) | 0 ( 0.0) | 2 ( 0.8) | ||
X 3 | Carcinoma escamocelular | 429 (86.8) | 228 (89.8) | 201 ( 83.8) | ||
X 4 | Carcinoma neuroendocrino de células pequeñas | 1 ( 0.2) | 1 ( 0.4) | 0 ( 0.0) | ||
X 5 | Otro, ¿Cuál? | 3 ( 0.6) | 3 ( 1.2) | 0 ( 0.0) | ||
Grado de diferenciación | Bien diferenciado | 112 (25.4) | 59 (28.5) | 53 ( 22.6) | 0.271 | |
X 6 | Mal diferenciado o Indiferenciado | 71 (16.1) | 29 (14.0) | 42 ( 17.9) | ||
X 7 | Moderadamente diferenciado | 258 (58.5) | 119 (57.5) | 139 ( 59.4) | ||
TC TORAX | No | 134 (27.1) | 54 (21.3) | 80 ( 33.3) | 0.004 | |
X 8 | Si | 360 (72.9) | 200 (78.7) | 160 ( 66.7) | ||
TC ABDOMEN | No | 37 ( 7.5) | 28 (11.0) | 9 ( 3.8) | 0.004 | |
X 9 | Si | 457 (92.5) | 226 (89.0) | 231 ( 96.2) | ||
TC PELVIS | No | 134 (27.1) | 58 (22.8) | 76 ( 31.7) | 0.035 | |
X 10 | Si | 360 (72.9) | 196 (77.2) | 164 ( 68.3) | ||
RMN PELVIS | No | 353 (71.5) | 187 (73.6) | 166 ( 69.2) | 0.319 | |
X 11 | Si | 141 (28.5) | 67 (26.4) | 74 ( 30.8) | ||
PET CT | No | 456 (92.3) | 239 (94.1) | 217 ( 90.4) | 0.172 | |
X 12 | Si | 38 ( 7.7) | 15 ( 5.9) | 23 ( 9.6) | ||
RAYOS X TORAX | No | 394 (79.8) | 192 (75.6) | 202 ( 84.2) | 0.024 | |
X 13 | Si | 100 (20.2) | 62 (24.4) | 38 ( 15.8) | ||
Laparoscopia exploratoria | No | 490 (99.2) | 251 (98.8) | 239 ( 99.6) | 0.656 | |
X 14 | Si | 4 ( 0.8) | 3 ( 1.2) | 1 ( 0.4) | ||
Cistoscopia | No | 483 (97.8) | 245 (96.5) | 238 ( 99.2) | 0.083 | |
X 15 | Si | 11 ( 2.2) | 9 ( 3.5) | 2 ( 0.8) | ||
Ultrasonido transvaginal | No | 397 (80.4) | 174 (68.5) | 223 ( 92.9) | <0.001 | |
X 16 | Si | 97 (19.6) | 80 (31.5) | 17 ( 7.1) | ||
Ultrasonido de renal y de vías urinaria | No | 483 (97.8) | 248 (97.6) | 235 ( 97.9) | 1.000 | |
X 17 | Si | 11 ( 2.2) | 6 ( 2.4) | 5 ( 2.1) | ||
Otro estudio de extension | No | 457 (92.5) | 217 (85.4) | 240 (100.0) | <0.001 | |
X 18 | Si | 37 ( 7.5) | 37 (14.6) | 0 ( 0.0) |
write.xlsx(table3, "tabla_dx.xlsx", rowNames = TRUE)
#if (!require("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
#BiocManager::install("limma")
library(limma)
library(UpSetR)
BASE_UPSET <- BASE %>% select(`TC TORAX`, `TC ABDOMEN`, `TC PELVIS`, `RMN PELVIS`, `RAYOS X TORAX`,`PET-CT`,`Ultrasonido transvaginal`)
BASE_UPSET <- BASE_UPSET %>%
mutate(across(c(1:7), ~ recode(., "Si" = 1, "No" = 0)))
BASE_UPSET<- as.data.frame(BASE_UPSET)
upset(BASE_UPSET, order.by = "freq", nsets = 9, nintersects = 25, matrix.color = "#2F4F4F", main.bar.color = "#5F9EA0", sets.bar.color = "skyblue", mainbar.y.label = "Cuidado soporte", sets.x.label = "Estudios de extension", point.size = 2, line.size = 0.5, number.angles = 0, group.by = "degree", shade.alpha = 1, matrix.dot.alpha = 1, scale.intersections = "identity", scale.sets = "identity", text.scale = 1, set_size.show = T)
#estudios de extension; las tres al tiempo
BASE <- BASE %>%
mutate(ext_TO_AD_PE3 = ifelse(`TC TORAX` == "Si" & `TC ABDOMEN` == "Si" & `TC PELVIS` == "Si", "Si", "No"))
BASE <- BASE %>%
mutate(ext_TO_AD_2 = ifelse(`TC TORAX` == "Si" & `TC ABDOMEN` == "Si" & `TC PELVIS` != "Si", "Si", "No"))
BASE <- BASE %>%
mutate(ext_TO_PE_2 = ifelse(`TC TORAX` == "Si" & `TC ABDOMEN` != "Si" & `TC PELVIS` == "Si", "Si", "No"))
BASE <- BASE %>%
mutate(ext_AD_PE_2 = ifelse(`TC TORAX` != "Si" & `TC ABDOMEN` == "Si" & `TC PELVIS` == "Si", "Si", "No"))
#, `RMN PELVIS`, `RAYOS X TORAX`,`PET-CT`,`Laparoscopia exploratoria`, `Cistoscopia`, `Ultrasonido transvaginal`, `Ultrasonido de renal y de vías urinaria`, `Otro estudio de extension`)
#Se verifican los cruces
#install.packages("summarytools")
library(summarytools)
freq(BASE$ext_TO_AD_PE3)
## Frequencies
## BASE$ext_TO_AD_PE3
## Type: Character
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## No 236 47.77 47.77 47.77 47.77
## Si 258 52.23 100.00 52.23 100.00
## <NA> 0 0.00 100.00
## Total 494 100.00 100.00 100.00 100.00
253 PACIENTES TUVIERON los tres estudios de extensión (TC TORAX, ABDOMEN, PELVIS)
ctable(BASE$ext_TO_AD_2, BASE$`Ultrasonido transvaginal`)
## Cross-Tabulation, Row Proportions
## ext_TO_AD_2 * `Ultrasonido transvaginal`
## Data Frame: BASE
##
## ------------- -------------------------- ------------- ------------ --------------
## Ultrasonido transvaginal No Si Total
## ext_TO_AD_2
## No 324 (78.6%) 88 (21.4%) 412 (100.0%)
## Si 73 (89.0%) 9 (11.0%) 82 (100.0%)
## Total 397 (80.4%) 97 (19.6%) 494 (100.0%)
## ------------- -------------------------- ------------- ------------ --------------
Pacientes que les realizaron TC torax + abdomen (392), a 9 les realizaron ultrasonido vaginal
ctable(BASE$ext_TO_AD_2, BASE$`RMN PELVIS`)
## Cross-Tabulation, Row Proportions
## ext_TO_AD_2 * `RMN PELVIS`
## Data Frame: BASE
##
## ------------- ------------ ------------- ------------- --------------
## RMN PELVIS No Si Total
## ext_TO_AD_2
## No 298 (72.3%) 114 (27.7%) 412 (100.0%)
## Si 55 (67.1%) 27 (32.9%) 82 (100.0%)
## Total 353 (71.5%) 141 (28.5%) 494 (100.0%)
## ------------- ------------ ------------- ------------- --------------
ctable(BASE$ext_TO_AD_2, BASE$`Otro estudio de extension`)
## Cross-Tabulation, Row Proportions
## ext_TO_AD_2 * `Otro estudio de extension`
## Data Frame: BASE
##
## ------------- --------------------------- ------------- ----------- --------------
## Otro estudio de extension No Si Total
## ext_TO_AD_2
## No 381 (92.5%) 31 (7.5%) 412 (100.0%)
## Si 76 (92.7%) 6 (7.3%) 82 (100.0%)
## Total 457 (92.5%) 37 (7.5%) 494 (100.0%)
## ------------- --------------------------- ------------- ----------- --------------
Pacientes que les realizaron TC torax + abdomen (392), a 27 les realizaRON rmn pelvis
ctable(BASE$ext_AD_PE_2, BASE$`RAYOS X TORAX`)
## Cross-Tabulation, Row Proportions
## ext_AD_PE_2 * `RAYOS X TORAX`
## Data Frame: BASE
##
## ------------- --------------- ------------- ------------- --------------
## RAYOS X TORAX No Si Total
## ext_AD_PE_2
## No 343 (87.1%) 51 (12.9%) 394 (100.0%)
## Si 51 (51.0%) 49 (49.0%) 100 (100.0%)
## Total 394 (79.8%) 100 (20.2%) 494 (100.0%)
## ------------- --------------- ------------- ------------- --------------
A pacientes que les realizaron TC abdomen y pelvis a 49 les realizaron rayos x.
ctable(BASE$ext_TO_PE_2, BASE$`Ultrasonido de renal y de vías urinaria`)
## Cross-Tabulation, Row Proportions
## ext_TO_PE_2 * `Ultrasonido de renal y de vías urinaria`
## Data Frame: BASE
##
## ------------- ----------------------------------------- ------------- ----------- --------------
## Ultrasonido de renal y de vías urinaria No Si Total
## ext_TO_PE_2
## No 483 (97.8%) 11 (2.2%) 494 (100.0%)
## Total 483 (97.8%) 11 (2.2%) 494 (100.0%)
## ------------- ----------------------------------------- ------------- ----------- --------------
Ningun paciente tuvo solammente TORAX Y PELVIS
BASE$`Tamaño tumoral clínico` <- factor(BASE$`Tamaño tumoral clínico`, levels=c("tumor microscópico", "≤ 2 cm", ">2 cm - ≤ 4cm", ">4 cm"))
BASE$`Especialidad que realizó la primera consulta` <- ifelse(BASE$`Especialidad que realizó la primera consulta` %in% c("Cuidados Paliativos", "Oncología clínica", "Otra ¿Cuál?", "Radioterapia"), "Otra", BASE$`Especialidad que realizó la primera consulta`)
myVars4<-c("Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG")
catVars4<-c("Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG")
tab4 <- CreateTableOne(vars = myVars4, factorVars= catVars4, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table4 <- as.data.frame(print(tab4, showAllLevels= TRUE, printToggle = FALSE))
rownames(table4) <- gsub("\\.{3,}", "", rownames(table4)) # Quita 3 puntos
rownames(table4) <- gsub("\\.{1,}", " ", rownames(table4)) # Quita 1 puntos
kable(table4, format = "html", caption = "Variables clinicas") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "blue") %>%
column_spec(2, border_left = T, background = "#ADD8E6")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
Especialidad que realizó la primera consulta | Ginecología Oncológica | 399 (80.9) | 200 (79.1) | 199 (82.9) | 0.328 | |
X | Otra | 94 (19.1) | 53 (20.9) | 41 (17.1) | ||
Diagnóstico CIE 10 registrado | C530 Tumor maligno del endocérvix | 91 (18.4) | 50 (19.7) | 41 (17.1) | <0.001 | |
X 1 | C531 Tumor maligno del exocérvix | 292 (59.1) | 103 (40.6) | 189 (78.8) | ||
X 2 | C539 Tumor maligno del cuello del útero, sin otra especificación | 103 (20.9) | 97 (38.2) | 6 ( 2.5) | ||
X 3 | C55X Tumor maligno del útero, parte no especificada | 8 ( 1.6) | 4 ( 1.6) | 4 ( 1.7) | ||
Tamaño tumoral clínico | tumor microscópico | 5 ( 1.1) | 5 ( 2.1) | 0 ( 0.0) | 0.001 | |
X 4 | ≤ 2 cm | 2 ( 0.4) | 2 ( 0.9) | 0 ( 0.0) | ||
X 5 | >2 cm - ≤ 4cm | 89 (18.8) | 31 (13.3) | 58 (24.2) | ||
X 6 | >4 cm | 377 (79.7) | 195 (83.7) | 182 (75.8) | ||
EST_clin_FIGO | IB3,II,IIA | 61 (12.3) | 17 ( 6.7) | 44 (18.3) | <0.001 | |
X 7 | IIB, III, IIIA, IIIB, IIIC, IVA | 433 (87.7) | 237 (93.3) | 196 (81.7) | ||
ECOG | ECOG0 | 181 (37.1) | 147 (59.3) | 34 (14.2) | <0.001 | |
X 8 | ECOG1 | 240 (49.2) | 92 (37.1) | 148 (61.7) | ||
X 9 | ECOG2 | 63 (12.9) | 9 ( 3.6) | 54 (22.5) | ||
X 10 | ECOG3 | 4 ( 0.8) | 0 ( 0.0) | 4 ( 1.7) |
write.xlsx(table4, "tabla_clinica.xlsx", rowNames = TRUE)
colnames(BASE)[colnames(BASE) == "Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=Quimio-radiación concomitante)"] <- "Quimio-radiación concomitante"
colnames(BASE)[colnames(BASE) == "Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=Cirugía)"] <- "Cirugía"
colnames(BASE)[colnames(BASE) == "Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=Terapia sistémica adyuvante)"] <- "Terapia sistémica adyuvante"
colnames(BASE)[colnames(BASE) =="Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=Radiación adyuvante)"] <- "Radiación adyuvante"
colnames(BASE)[colnames(BASE) =="Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=Cuidado de soporte)"] <- "Cuidado soporte"
colnames(BASE)[colnames(BASE) =="Tratamiento instaurado como primera línea (si selecciona quimiorradiación no debe seleccionar ni terapia sistémica adyuvante ni radiación adyuvante) (choice=No recibió tratamiento)"] <- "No recibio tratamiento"
colnames(BASE)[colnames(BASE) =="Esquema de terapia sistémica en quimio-radiación concomitante (primera línea) (choice=Quimioterapia)"] <- "Esquema:Quimioterapia)"
colnames(BASE)[colnames(BASE) =="Esquema de terapia sistémica en quimio-radiación concomitante (primera línea) (choice=Terapias de blanco molecular)"] <- "Esquema:Terapias de blanco molecular)"
colnames(BASE)[colnames(BASE) =="Esquema de terapia sistémica en quimio-radiación concomitante (primera línea) (choice=Terapias de blanco molecular)"] <- "Esquema:Terapias de blanco molecular)"
colnames(BASE)[colnames(BASE) =="¿La terapia sistémica prescrita se administró en su totalidad? (Primera Línea)"] <- "Esquema completo t sistemica"
colnames(BASE)[colnames(BASE) =="¿Prescripción de Radioterapia Externa (Primera Línea)"] <- "Prescripcion radio externa"
colnames(BASE)[colnames(BASE) =="¿¿Completo en su totalidad el tratamiento por radioterapia externa?"] <- "Esquema completo radioterapia"
colnames(BASE)[colnames(BASE) =="¿Completo en su totalidad el tratamiento por radioterapia externa?"] <- "Esquema completo radioterapia"
colnames(BASE)[colnames(BASE) =="Prescripción de Braquiterapia"] <- "Prescripcion braquiterapia"
colnames(BASE)[colnames(BASE) =="¿Finalizo regimen de braquiterapia prescrito?"] <- "Esquema completo braquiterapia"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Histerectomía extrafascial)"] <- "Histerectomía extrafascial"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Histerectomía radical modificada)"] <- "Histerectomía radical modificada"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Histerectomía radical)"] <- "Histerectomía radical"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Salpingooforectomía bilateral)"] <- "Salpingooforectomía bilateral"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Linfadenectomía pélvica)"] <- "Linfadenectomía pélvica"
colnames(BASE)[colnames(BASE) =="Cirugía (choice=Otro)"] <- "Otra cirugia"
BASE$`Esquema completo t sistemica` <- factor(recode(BASE$`Esquema completo t sistemica`, "Desconocido" = "No"))
myVars5<-c("Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante", "Cuidado soporte", "No recibio tratamiento",
"Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Intervalo entre Radioterapia Externa y Braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "Histerectomía extrafascial", "Histerectomía radical modificada", "Histerectomía radical",
"Salpingooforectomía bilateral", "Linfadenectomía pélvica", "Otra cirugia")
catVars5<-c("Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante", "Cuidado soporte", "No recibio tratamiento",
"Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "Histerectomía extrafascial", "Histerectomía radical modificada", "Histerectomía radical", "Salpingooforectomía bilateral", "Linfadenectomía pélvica", "Otra cirugia")
#names(BASE) 154, 155, 156, 157, 158, 159, 161, 162, 194, 195, 196, 197, 198, 199
BASE <- BASE %>%
mutate(across(c(154, 155, 156, 157, 158, 159, 161, 162, 194, 195, 196, 197, 198, 199), ~ recode(., "Checked" = "Si", "Unchecked" = "No")))
tab5 <- CreateTableOne(vars = myVars5, factorVars= catVars5, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table5 <- as.data.frame(print(tab5, showAllLevels= TRUE, printToggle = FALSE))
rownames(table5) <- gsub("\\.{3,}", "", rownames(table5)) # Quita 3 puntos
rownames(table5) <- gsub("\\.{1,}", " ", rownames(table5)) # Quita 1 puntos
kable(table5, format = "html", caption = "Tratamiento") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "#8B475D") %>%
column_spec(2, border_left = T, background = "#FFC0CB")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
Quimio radiación concomitante | No | 19 ( 3.8) | 15 ( 5.9) | 4 ( 1.7) | 0.027 | |
X | Si | 475 ( 96.2) | 239 ( 94.1) | 236 ( 98.3) | ||
Cirugía | No | 468 ( 94.7) | 234 ( 92.1) | 234 ( 97.5) | 0.013 | |
X 1 | Si | 26 ( 5.3) | 20 ( 7.9) | 6 ( 2.5) | ||
Terapia sistémica adyuvante | No | 490 ( 99.2) | 250 ( 98.4) | 240 (100.0) | 0.147 | |
X 2 | Si | 4 ( 0.8) | 4 ( 1.6) | 0 ( 0.0) | ||
Radiación adyuvante | No | 480 ( 97.2) | 241 ( 94.9) | 239 ( 99.6) | 0.004 | |
X 3 | Si | 14 ( 2.8) | 13 ( 5.1) | 1 ( 0.4) | ||
Cuidado soporte | No | 494 (100.0) | 254 (100.0) | 240 (100.0) | NA | |
No recibio tratamiento | No | 494 (100.0) | 254 (100.0) | 240 (100.0) | NA | |
Esquema Quimioterapia | No | 20 ( 4.0) | 16 ( 6.3) | 4 ( 1.7) | 0.017 | |
X 4 | Si | 474 ( 96.0) | 238 ( 93.7) | 236 ( 98.3) | ||
Esquema Terapias de blanco molecular | No | 492 ( 99.6) | 252 ( 99.2) | 240 (100.0) | 0.504 | |
X 5 | Si | 2 ( 0.4) | 2 ( 0.8) | 0 ( 0.0) | ||
Esquema completo t sistemica | No | 36 ( 7.5) | 27 ( 11.1) | 9 ( 3.8) | 0.004 | |
X 6 | Si | 443 ( 92.5) | 216 ( 88.9) | 227 ( 96.2) | ||
Esquema completo radioterapia | No | 13 ( 2.7) | 6 ( 2.4) | 7 ( 3.0) | 0.916 | |
X 7 | Si | 473 ( 97.3) | 244 ( 97.6) | 229 ( 97.0) | ||
Prescripcion braquiterapia | No | 52 ( 10.7) | 10 ( 4.0) | 42 ( 17.7) | <0.001 | |
X 8 | Si | 436 ( 89.3) | 241 ( 96.0) | 195 ( 82.3) | ||
Intervalo entre Radioterapia Externa y Braquiterapia mean SD | 20.76 (20.28) | 21.52 (19.76) | 19.84 (20.90) | 0.392 | ||
Esquema completo braquiterapia | No | 18 ( 4.2) | 10 ( 4.1) | 8 ( 4.2) | 1.000 | |
X 9 | Si | 414 ( 95.8) | 231 ( 95.9) | 183 ( 95.8) | ||
Histerectomía extrafascial | No | 491 ( 99.4) | 254 (100.0) | 237 ( 98.8) | 0.227 | |
X 10 | Si | 3 ( 0.6) | 0 ( 0.0) | 3 ( 1.2) | ||
Histerectomía radical modificada | No | 487 ( 98.6) | 249 ( 98.0) | 238 ( 99.2) | 0.493 | |
X 11 | Si | 7 ( 1.4) | 5 ( 2.0) | 2 ( 0.8) | ||
Histerectomía radical | No | 482 ( 97.6) | 242 ( 95.3) | 240 (100.0) | 0.002 | |
X 12 | Si | 12 ( 2.4) | 12 ( 4.7) | 0 ( 0.0) | ||
Salpingooforectomía bilateral | No | 481 ( 97.4) | 241 ( 94.9) | 240 (100.0) | 0.001 | |
X 13 | Si | 13 ( 2.6) | 13 ( 5.1) | 0 ( 0.0) | ||
Linfadenectomía pélvica | No | 482 ( 97.6) | 242 ( 95.3) | 240 (100.0) | 0.002 | |
X 14 | Si | 12 ( 2.4) | 12 ( 4.7) | 0 ( 0.0) | ||
Otra cirugia | No | 491 ( 99.4) | 252 ( 99.2) | 239 ( 99.6) | 1.000 | |
X 15 | Si | 3 ( 0.6) | 2 ( 0.8) | 1 ( 0.4) |
write.xlsx(table5, "tabla_tratamiento.xlsx", rowNames = TRUE)
#momento adicional
BASE$dif_quim_braq <- round(as.numeric(BASE$`Fecha de finalización de braquiterapia` - BASE$`Fecha de inicio de tratamiento sistémico (día de primera aplicación de terapia)`
) / 30, 3)
myVars6<-c("M_quim", "M_quim0", "M_rad0", "M_rad", "M_braq", "M_braq0", "dif_dx_primtrat", "dif_quim_braq", "Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año", "Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año", "Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año")
tab6 <- CreateTableOne(vars = myVars6, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table6 <- as.data.frame(print(tab6, showAllLevels= TRUE, printToggle = FALSE))
rownames(table6) <- gsub("\\.{3,}", "", rownames(table6)) # Quita 3 puntos
rownames(table6) <- gsub("\\.{1,}", " ", rownames(table6)) # Quita 1 puntos
kable(table6, format = "html", caption = "Tiempo tratamientos") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "#B03060")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
M_quim (mean (SD)) | 1.33 (2.44) | 1.47 (2.42) | 1.19 (2.47) | 0.215 | ||
M_quim0 (mean (SD)) | 0.85 (1.81) | 1.09 (2.47) | 0.61 (0.61) | 0.004 | ||
M_rad0 (mean (SD)) | 0.77 (0.62) | 0.95 (0.60) | 0.59 (0.59) | <0.001 | ||
M_rad (mean (SD)) | 1.45 (2.04) | 1.44 (0.50) | 1.46 (2.86) | 0.942 | ||
M_braq (mean (SD)) | 0.55 (1.88) | 0.64 (2.52) | 0.44 (0.29) | 0.264 | ||
M_braq0 (mean (SD)) | 1.56 (1.23) | 1.85 (1.39) | 1.21 (0.89) | <0.001 | ||
dif_dx_primtrat (mean (SD)) | 3.03 (2.87) | 3.40 (3.38) | 2.64 (2.16) | 0.003 | ||
dif_quim_braq (mean (SD)) | 2.53 (2.03) | 2.73 (2.64) | 2.30 (0.85) | 0.029 | ||
Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año (mean (SD)) | 1.66 (1.63) | 2.45 (1.81) | 0.84 (0.84) | <0.001 | ||
Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año (mean (SD)) | 3.33 (2.17) | 3.30 (2.11) | 3.72 (2.78) | 0.428 | ||
Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año (mean (SD)) | 3.02 (1.17) | 2.58 (1.35) | 3.46 (0.72) | <0.001 |
write.xlsx(table6, "tabla_tiempo.xlsx", rowNames = TRUE)
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Cuidados paliativos)"] <- "Cuidado paliativo"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Nutrición)"] <- "Nutricion"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Patología oral)"] <- "Patologia oral"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Psicología)"] <- "Psicologia"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Fertilidad/Sexualidad)"] <- "Fertilidad/sexualidad"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Otro, ¿Cuál?)"] <- "Otro cuidado de soporte"
colnames(BASE)[colnames(BASE) =="Cuidado de soporte (choice=Ninguno)"] <- "Ningun cuidado de soporte"
#names(BASE) 242, 243, 244, 245, 246, 247, 248
BASE <- BASE %>%
mutate(across(c(242, 243, 244, 245, 246, 247, 248), ~ recode(., "Checked" = "Si", "Unchecked" = "No")))
myVars7<-c("Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte" )
catVars7<-c("Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte")
tab7 <- CreateTableOne(vars = myVars7, factorVars= catVars7, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table7 <- as.data.frame(print(tab7, showAllLevels= TRUE, printToggle = FALSE))
rownames(table7) <- gsub("\\.{3,}", "", rownames(table7)) # Quita 3 puntos
rownames(table7) <- gsub("\\.{1,}", " ", rownames(table7)) # Quita 1 puntos
kable(table7, format = "html", caption = "Cuidado de soporte") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "purple") %>%
column_spec(2, border_left = T, background = "#CD96CD")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
Ningun cuidado de soporte | No | 216 (43.7) | 186 (73.2) | 30 (12.5) | <0.001 | |
X | Si | 278 (56.3) | 68 (26.8) | 210 (87.5) | ||
Cuidado paliativo | No | 339 (68.6) | 110 (43.3) | 229 (95.4) | <0.001 | |
X 1 | Si | 155 (31.4) | 144 (56.7) | 11 ( 4.6) | ||
Nutricion | No | 399 (80.8) | 167 (65.7) | 232 (96.7) | <0.001 | |
X 2 | Si | 95 (19.2) | 87 (34.3) | 8 ( 3.3) | ||
Patologia oral | No | 426 (86.2) | 187 (73.6) | 239 (99.6) | <0.001 | |
X 3 | Si | 68 (13.8) | 67 (26.4) | 1 ( 0.4) | ||
Psicologia | No | 422 (85.4) | 186 (73.2) | 236 (98.3) | <0.001 | |
X 4 | Si | 72 (14.6) | 68 (26.8) | 4 ( 1.7) | ||
Fertilidad sexualidad | No | 489 (99.0) | 253 (99.6) | 236 (98.3) | 0.336 | |
X 5 | Si | 5 ( 1.0) | 1 ( 0.4) | 4 ( 1.7) | ||
Otro cuidado de soporte | No | 463 (93.7) | 225 (88.6) | 238 (99.2) | <0.001 | |
X 6 | Si | 31 ( 6.3) | 29 (11.4) | 2 ( 0.8) |
write.xlsx(table7, "tabla_cuidadosoporte_junio.xlsx", rowNames = TRUE)
BASE_VENN2 <- BASE %>% select(`Cuidado paliativo`, Nutricion, `Patologia oral`, Psicologia, `Otro cuidado de soporte`)
BASE_VENN2 <- BASE_VENN2 %>%
mutate(across(c(1:5), ~ recode(., "Si" = 1, "No" = 0)))
PLOT_venn2 <- vennCounts(BASE_VENN2)
vennDiagram(PLOT_venn2, cex = 1, circle.col = c("black", "#8B7E66","#CDAA7D", "skyblue", "#FFD39B"),counts.col = "black", show.include = T)
#se codificia las nuevas variables
#1 Completitud del tratamiento Quimio + Radio + Braqui
BASE <- BASE %>%
mutate(trat_complete2 = ifelse(coalesce(`Esquema completo t sistemica`, "No") == "Si" & coalesce(`Esquema completo radioterapia`, "No") == "Si" & coalesce(`Esquema completo braquiterapia`, "No") == "Si", "+compl", "-compl"))
#2 Ingreso:sintomas o tamizaje
BASE$ingreso <- as.factor(BASE$ingreso)
#3 Atencion por ginecooncologia
BASE$gineco <- factor(ifelse(grepl("Ginecología Oncológica", BASE$`Especialidad que realizó la primera consulta`), "+gineco", "-gineco"))
#Tratamientos--------------------------------------------------------------
#Cirugia
BASE$cirugia <- factor(ifelse(!is.na(BASE$`Fecha de cirugía`), "+cir", "-cir"))
#Quimioterapia
BASE$quimio <- factor(ifelse(
!is.na(BASE$`Fecha de inicio de tratamiento sistémico (día de primera aplicación de terapia)`) | !is.na(BASE$`Fecha de aplicación de finalización de tratamiento sistémico`) |
BASE$`Esquema completo t sistemica` == "Si", "+quim", "-quim"))
BASE$quimio[is.na(BASE$quimio)] <- "-quim"
#Radioterapia
BASE$radio <- factor(ifelse(
!is.na(BASE$`Fecha de inicio de radioterapia (primera sesión)`) |
!is.na(BASE$`Fecha de finalización de radioterapia (última sesión)`) |
BASE$`Esquema completo radioterapia` == "Si", "+rad", "-rad"))
BASE$radio <- as.character(BASE$radio)
BASE$radio[is.na(BASE$radio)] <- "-rad"
BASE$radio <- factor(BASE$radio)
#Braquiterapia
BASE$braqu <- factor(ifelse(
!is.na(BASE$`Fecha de primera aplicación de braquiterapia`) |
!is.na(BASE$`Fecha de finalización de braquiterapia`) |
BASE$`Esquema completo braquiterapia` == "Si", "+braq", "-braq"))
BASE$braqu[is.na(BASE$braqu)] <- "-braq"
BASE_AL <- BASE %>% select(AFILIACION,Procedencia, ingreso, gineco, cirugia, quimio, radio, braqu, trat_complete2)
#levels(BASE_AL$AFILIACION)
library(dplyr)
BASE_AL <- BASE_AL %>%
mutate(AFILIACION = recode(AFILIACION, "Subsidiado/Público" = "Público", "Contributivo/Privado" = "Privado"))
BASE_transformado <- BASE_AL %>% group_by(AFILIACION, Procedencia, ingreso, gineco, cirugia,quimio, radio, braqu, trat_complete2) %>%
summarise(Freq = n()) %>% ungroup() %>% rename(Afiliacion = AFILIACION, Procedencia = Procedencia, Ingreso = ingreso, Gineco = gineco, Cirugia = cirugia, Quimio = quimio,
Radio = radio, Braq = braqu, Complete = trat_complete2)
library(easyalluvial)
alluvial_wide( data = BASE_AL,
max_variables = 8, fill_by = 'first_variable',
col_vector_flow = c("skyblue", "salmon"))
conteo de los “trayectos
library(gt)
BASE_transformado %>%
gt() %>%
tab_header(title = "Conteo trayectos") %>%
cols_label_with(fn = toupper)
Conteo trayectos | |||||||||
AFILIACION | PROCEDENCIA | INGRESO | GINECO | CIRUGIA | QUIMIO | RADIO | BRAQ | COMPLETE | FREQ |
---|---|---|---|---|---|---|---|---|---|
Público | Colombia | sintomas | -gineco | -cir | -quim | +rad | +braq | -compl | 1 |
Público | Colombia | sintomas | -gineco | -cir | +quim | -rad | -braq | -compl | 1 |
Público | Colombia | sintomas | -gineco | -cir | +quim | +rad | +braq | +compl | 13 |
Público | Colombia | sintomas | -gineco | -cir | +quim | +rad | +braq | -compl | 1 |
Público | Colombia | sintomas | +gineco | -cir | -quim | -rad | -braq | -compl | 1 |
Público | Colombia | sintomas | +gineco | -cir | -quim | +rad | +braq | -compl | 3 |
Público | Colombia | sintomas | +gineco | -cir | +quim | +rad | -braq | -compl | 1 |
Público | Colombia | sintomas | +gineco | -cir | +quim | +rad | +braq | +compl | 62 |
Público | Colombia | sintomas | +gineco | -cir | +quim | +rad | +braq | -compl | 6 |
Público | Colombia | sintomas | +gineco | +cir | -quim | +rad | +braq | -compl | 1 |
Público | Colombia | sintomas | +gineco | +cir | +quim | +rad | +braq | +compl | 1 |
Público | Colombia | tamizaje | -gineco | -cir | +quim | +rad | +braq | +compl | 4 |
Público | Colombia | tamizaje | +gineco | -cir | +quim | +rad | +braq | +compl | 30 |
Público | Colombia | tamizaje | +gineco | -cir | +quim | +rad | +braq | -compl | 4 |
Público | Colombia | tamizaje | +gineco | +cir | -quim | +rad | +braq | -compl | 2 |
Público | Guatemala | sintomas | -gineco | -cir | +quim | +rad | +braq | +compl | 10 |
Público | Guatemala | sintomas | +gineco | -cir | +quim | +rad | -braq | -compl | 3 |
Público | Guatemala | sintomas | +gineco | -cir | +quim | +rad | +braq | +compl | 40 |
Público | Guatemala | sintomas | +gineco | -cir | +quim | +rad | +braq | -compl | 5 |
Público | Guatemala | sintomas | +gineco | +cir | +quim | +rad | +braq | +compl | 1 |
Público | Guatemala | tamizaje | +gineco | -cir | +quim | +rad | -braq | -compl | 1 |
Público | Guatemala | tamizaje | +gineco | -cir | +quim | +rad | +braq | +compl | 6 |
Privado | Colombia | sintomas | -gineco | -cir | -quim | +rad | +braq | -compl | 2 |
Privado | Colombia | sintomas | -gineco | -cir | +quim | +rad | +braq | +compl | 18 |
Privado | Colombia | sintomas | -gineco | -cir | +quim | +rad | +braq | -compl | 3 |
Privado | Colombia | sintomas | -gineco | +cir | +quim | +rad | -braq | -compl | 1 |
Privado | Colombia | sintomas | -gineco | +cir | +quim | +rad | +braq | +compl | 3 |
Privado | Colombia | sintomas | +gineco | -cir | +quim | +rad | -braq | -compl | 6 |
Privado | Colombia | sintomas | +gineco | -cir | +quim | +rad | +braq | +compl | 29 |
Privado | Colombia | sintomas | +gineco | -cir | +quim | +rad | +braq | -compl | 3 |
Privado | Colombia | sintomas | +gineco | +cir | +quim | +rad | +braq | +compl | 3 |
Privado | Colombia | sintomas | +gineco | +cir | +quim | +rad | +braq | -compl | 2 |
Privado | Colombia | tamizaje | -gineco | -cir | +quim | +rad | +braq | +compl | 6 |
Privado | Colombia | tamizaje | -gineco | -cir | +quim | +rad | +braq | -compl | 1 |
Privado | Colombia | tamizaje | +gineco | -cir | -quim | +rad | +braq | -compl | 2 |
Privado | Colombia | tamizaje | +gineco | -cir | +quim | +rad | -braq | -compl | 4 |
Privado | Colombia | tamizaje | +gineco | -cir | +quim | +rad | +braq | +compl | 29 |
Privado | Colombia | tamizaje | +gineco | -cir | +quim | +rad | +braq | -compl | 5 |
Privado | Colombia | tamizaje | +gineco | +cir | -quim | -rad | -braq | -compl | 1 |
Privado | Colombia | tamizaje | +gineco | +cir | +quim | +rad | +braq | +compl | 4 |
Privado | Colombia | tamizaje | +gineco | +cir | +quim | +rad | +braq | -compl | 1 |
Privado | Guatemala | sintomas | -gineco | -cir | -quim | +rad | +braq | -compl | 1 |
Privado | Guatemala | sintomas | -gineco | -cir | +quim | +rad | -braq | -compl | 5 |
Privado | Guatemala | sintomas | -gineco | -cir | +quim | +rad | +braq | +compl | 19 |
Privado | Guatemala | sintomas | -gineco | -cir | +quim | +rad | +braq | -compl | 1 |
Privado | Guatemala | sintomas | -gineco | +cir | -quim | -rad | -braq | -compl | 1 |
Privado | Guatemala | sintomas | +gineco | -cir | +quim | +rad | -braq | -compl | 29 |
Privado | Guatemala | sintomas | +gineco | -cir | +quim | +rad | +braq | +compl | 80 |
Privado | Guatemala | sintomas | +gineco | -cir | +quim | +rad | +braq | -compl | 8 |
Privado | Guatemala | sintomas | +gineco | +cir | -quim | -rad | -braq | -compl | 2 |
Privado | Guatemala | sintomas | +gineco | +cir | +quim | +rad | +braq | +compl | 2 |
Privado | Guatemala | tamizaje | -gineco | -cir | +quim | +rad | -braq | -compl | 1 |
Privado | Guatemala | tamizaje | -gineco | -cir | +quim | +rad | +braq | +compl | 3 |
Privado | Guatemala | tamizaje | +gineco | -cir | +quim | +rad | -braq | -compl | 3 |
Privado | Guatemala | tamizaje | +gineco | -cir | +quim | +rad | +braq | +compl | 17 |
Privado | Guatemala | tamizaje | +gineco | -cir | +quim | +rad | +braq | -compl | 2 |
write.xlsx(BASE_transformado, "SANKEY1.xlsx", rowNames = TRUE)
¿Cuántos fallecieron?
table(BASE$Procedencia, BASE$`¿La pérdida en el seguimiento fue debido a fallecimiento?`)
##
## No No data Yes
## Colombia 184 36 26
## Guatemala 146 30 63
BASE <- BASE %>%
mutate(retiro = ifelse(rowSums(across(c(`Motivo por el cuál no se completó la terapia sistémica (Primera Línea)`, `Causa de suspender tratamiento radioterapia`, `Causa de suspender braquiterapia`), ~ . == "Contraindicación médica"),
na.rm = TRUE) > 0, "+cont.m", "-cont.m"))
BASE$rta1 <- factor(recode(BASE$`Respuesta a Primera Línea de Tratamiento`,
"Completa" = "+rta_trat",
"Parcial" = "+rta_trat",
"Sin dato" = "-rta_trat",
"Sin respuesta" = "-rta_trat"))
BASE$seg_onco_cli <- factor(recode(BASE$`Especialista de seguimiento (choice=Oncología clínica)`, "Checked" = "+seg_onco",
"Unchecked" = "-seg_onco"))
BASE$linea_2 <- factor(recode(BASE$`¿Recibió segunda línea de tratamiento?`,
"Yes" = "Si",
"No" = "No"))
BASE$linea_3 <- factor(recode(BASE$`Recibio tercera línea de tratamiento`,
"Yes" = "Si",
"No" = "No"))
BASE$fall <- factor(recode(BASE$`¿La pérdida en el seguimiento fue debido a fallecimiento?`,
"Yes" = "+fall",
"No" = "-fall",
"No data" = "-fall"))
table(is.na(BASE$fall))
##
## FALSE TRUE
## 485 9
BASE$fall[is.na(BASE$fall)] <- "-fall"
BASE$linea_2[is.na(BASE$linea_2)] <- "No"
BASE$linea_3[is.na(BASE$linea_3)] <- "No"
BASE$rta1[is.na(BASE$rta1)] <- "-rta_trat"
BASE$retiro <- as.factor(BASE$retiro)
BASE$retiro <- relevel(BASE$retiro, ref = "+cont.m")
BASE_AL_pos <- BASE %>% select(trat_complete2, retiro, rta1, seg_onco_cli, linea_2, linea_3, fall)
BASE_transformado2 <- BASE_AL_pos %>% group_by(trat_complete2, retiro, rta1, seg_onco_cli, linea_2, linea_3, fall) %>%
summarise(Freq = n()) %>% ungroup() %>% rename(Trat_completo=trat_complete2, retiro = retiro, Rta_1liena = rta1, seg_onco_clinica=seg_onco_cli, linea_trat_2=linea_2, linea_trat_3=linea_3, fallecimiento = fall)
alluvial_wide( data = BASE_AL_pos,
max_variables = 8, fill_by = 'last_variable',
col_vector_flow = c("mediumseagreen", "darkorange"))
library(gt)
BASE_transformado2 %>%
gt() %>%
tab_header(title = "Conteo trayectos") %>%
cols_label_with(fn = toupper)
Conteo trayectos | |||||||
TRAT_COMPLETO | RETIRO | RTA_1LIENA | SEG_ONCO_CLINICA | LINEA_TRAT_2 | LINEA_TRAT_3 | FALLECIMIENTO | FREQ |
---|---|---|---|---|---|---|---|
+compl | -cont.m | -rta_trat | -seg_onco | No | No | -fall | 7 |
+compl | -cont.m | -rta_trat | -seg_onco | No | No | +fall | 1 |
+compl | -cont.m | -rta_trat | -seg_onco | Si | No | -fall | 1 |
+compl | -cont.m | -rta_trat | -seg_onco | Si | No | +fall | 2 |
+compl | -cont.m | -rta_trat | +seg_onco | No | No | -fall | 5 |
+compl | -cont.m | -rta_trat | +seg_onco | No | No | +fall | 1 |
+compl | -cont.m | -rta_trat | +seg_onco | Si | No | -fall | 4 |
+compl | -cont.m | -rta_trat | +seg_onco | Si | No | +fall | 4 |
+compl | -cont.m | -rta_trat | +seg_onco | Si | Si | -fall | 2 |
+compl | -cont.m | -rta_trat | +seg_onco | Si | Si | +fall | 1 |
+compl | -cont.m | +rta_trat | -seg_onco | No | No | -fall | 158 |
+compl | -cont.m | +rta_trat | -seg_onco | No | No | +fall | 5 |
+compl | -cont.m | +rta_trat | -seg_onco | Si | No | -fall | 18 |
+compl | -cont.m | +rta_trat | -seg_onco | Si | No | +fall | 21 |
+compl | -cont.m | +rta_trat | -seg_onco | Si | Si | +fall | 1 |
+compl | -cont.m | +rta_trat | +seg_onco | No | No | -fall | 127 |
+compl | -cont.m | +rta_trat | +seg_onco | No | No | +fall | 11 |
+compl | -cont.m | +rta_trat | +seg_onco | Si | No | -fall | 5 |
+compl | -cont.m | +rta_trat | +seg_onco | Si | No | +fall | 1 |
+compl | -cont.m | +rta_trat | +seg_onco | Si | Si | -fall | 4 |
+compl | -cont.m | +rta_trat | +seg_onco | Si | Si | +fall | 1 |
-compl | +cont.m | -rta_trat | -seg_onco | No | No | -fall | 3 |
-compl | +cont.m | -rta_trat | -seg_onco | No | No | +fall | 1 |
-compl | +cont.m | -rta_trat | -seg_onco | Si | No | +fall | 1 |
-compl | +cont.m | -rta_trat | +seg_onco | Si | No | -fall | 4 |
-compl | +cont.m | -rta_trat | +seg_onco | Si | No | +fall | 1 |
-compl | +cont.m | +rta_trat | -seg_onco | No | No | -fall | 5 |
-compl | +cont.m | +rta_trat | -seg_onco | No | No | +fall | 1 |
-compl | +cont.m | +rta_trat | +seg_onco | No | No | -fall | 13 |
-compl | +cont.m | +rta_trat | +seg_onco | Si | No | -fall | 4 |
-compl | +cont.m | +rta_trat | +seg_onco | Si | No | +fall | 1 |
-compl | -cont.m | -rta_trat | -seg_onco | No | No | -fall | 5 |
-compl | -cont.m | -rta_trat | -seg_onco | No | No | +fall | 8 |
-compl | -cont.m | -rta_trat | -seg_onco | Si | No | -fall | 1 |
-compl | -cont.m | -rta_trat | -seg_onco | Si | No | +fall | 1 |
-compl | -cont.m | -rta_trat | -seg_onco | Si | Si | +fall | 1 |
-compl | -cont.m | -rta_trat | +seg_onco | No | No | -fall | 3 |
-compl | -cont.m | -rta_trat | +seg_onco | No | No | +fall | 1 |
-compl | -cont.m | -rta_trat | +seg_onco | Si | No | -fall | 3 |
-compl | -cont.m | -rta_trat | +seg_onco | Si | No | +fall | 2 |
-compl | -cont.m | +rta_trat | -seg_onco | No | No | -fall | 17 |
-compl | -cont.m | +rta_trat | -seg_onco | No | No | +fall | 3 |
-compl | -cont.m | +rta_trat | -seg_onco | Si | No | -fall | 5 |
-compl | -cont.m | +rta_trat | -seg_onco | Si | No | +fall | 17 |
-compl | -cont.m | +rta_trat | -seg_onco | Si | Si | -fall | 1 |
-compl | -cont.m | +rta_trat | -seg_onco | Si | Si | +fall | 1 |
-compl | -cont.m | +rta_trat | +seg_onco | No | No | -fall | 10 |
-compl | -cont.m | +rta_trat | +seg_onco | No | No | +fall | 1 |
write.xlsx(BASE_transformado2, "SANKEY2.xlsx", rowNames = TRUE)
myVars11<-c("trat_complete2", "retiro", "rta1", "seg_onco_cli", "linea_2", "linea_3", "fall" )
catVars11<-c("trat_complete2", "retiro", "rta1", "seg_onco_cli", "linea_2", "linea_3", "fall" )
tab11 <- CreateTableOne(vars = myVars11, factorVars= catVars11, strata = "Procedencia", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table11 <- as.data.frame(print(tab11, showAllLevels= TRUE, printToggle = FALSE))
rownames(table11) <- gsub("\\.{3,}", "", rownames(table11)) # Quita 3 puntos
rownames(table11) <- gsub("\\.{1,}", " ", rownames(table11)) # Quita 1 puntos
kable(table11, format = "html", caption = "Variables pos - 1 linea") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "purple") %>%
column_spec(2, border_left = T, background = "#CD96CD")
level | Overall | Colombia | Guatemala | p | test | |
---|---|---|---|---|---|---|
n | 494 | 254 | 240 | |||
trat_complete2 | -compl | 114 (23.1) | 52 (20.5) | 62 (25.8) | 0.191 | |
X | +compl | 380 (76.9) | 202 (79.5) | 178 (74.2) | ||
retiro | +cont.m | 34 ( 6.9) | 31 (12.2) | 3 ( 1.2) | <0.001 | |
X 1 | -cont.m | 460 (93.1) | 223 (87.8) | 237 (98.8) | ||
rta1 | -rta_trat | 63 (12.8) | 44 (17.3) | 19 ( 7.9) | 0.003 | |
X 2 | +rta_trat | 431 (87.2) | 210 (82.7) | 221 (92.1) | ||
seg_onco_cli | -seg_onco | 285 (57.7) | 63 (24.8) | 222 (92.5) | <0.001 | |
X 3 | +seg_onco | 209 (42.3) | 191 (75.2) | 18 ( 7.5) | ||
linea_2 | No | 386 (78.1) | 213 (83.9) | 173 (72.1) | 0.002 | |
X 4 | Si | 108 (21.9) | 41 (16.1) | 67 (27.9) | ||
linea_3 | No | 482 (97.6) | 246 (96.9) | 236 (98.3) | 0.437 | |
X 5 | Si | 12 ( 2.4) | 8 ( 3.1) | 4 ( 1.7) | ||
fall | -fall | 405 (82.0) | 228 (89.8) | 177 (73.8) | <0.001 | |
X 6 | +fall | 89 (18.0) | 26 (10.2) | 63 (26.2) |
write.xlsx(table11, "tabla_post1liena.xlsx", rowNames = TRUE)
Se incluyen las variables de tiempo a analizar
Se usan dos bases de datos: Eliminado NA (n = 415) e imputando datos ( n = 494)
PROFILES <- BASE %>% select(ID_merge, Procedencia, dif_dx_primtrat, M_quim0, M_quim, M_rad0, M_rad, M_braq0, M_braq, dif_quim_braq)
colnames(PROFILES)[colnames(PROFILES) == "M_quim"] <- "Inicio - fin quim"
colnames(PROFILES)[colnames(PROFILES) == "M_quim0"] <- "Pres - Inicio quim"
colnames(PROFILES)[colnames(PROFILES) == "M_rad0"] <- "Pres - Inicio rad"
colnames(PROFILES)[colnames(PROFILES) == "M_rad"] <- "Inicio - Fin rad"
colnames(PROFILES)[colnames(PROFILES) == "M_braq0"] <- "Pres - Inicio Braq"
colnames(PROFILES)[colnames(PROFILES) == "M_braq"] <- "Inicio - Fin Braq"
colnames(PROFILES)[colnames(PROFILES) == "dif_dx_primtrat"] <- "Dx - Trat"
colnames(PROFILES)[colnames(PROFILES) == "dif_quim_braq"] <- "Inicio quim - Fin braq"
PROFILES2 <- PROFILES %>%
filter(if_all(3:10, ~ !is.na(.)))
library(VIM)
PROFILESimp <- kNN(PROFILES,
variable = 3:10,
k = 5,
imp_var = FALSE)
library(mclust)
library(factoextra)
p1.1<-Mclust(PROFILES2[,3:10])
fviz_mclust_bic(p1.1)
p1 <-mclustBIC(PROFILES2[,3:10]) # 6 perfiles
summary(p1)
## Best BIC values:
## VVV,6 VVV,5 VVV,7
## BIC -4457.057 -4517.25982 -4579.967
## BIC diff 0.000 -60.20266 -122.910
p2.1<-Mclust(PROFILESimp[,3:10])
fviz_mclust_bic(p2.1)
p2 <-mclustBIC(PROFILESimp[,3:10]) # 6 perfiles
summary(p2)
## Best BIC values:
## VVI,9 VVI,8 VVI,7
## BIC -6531.775 -6582.41966 -6632.0291
## BIC diff 0.000 -50.64427 -100.2537
Se selecciona solucion con 6 componentes con la base sin imputar, ya que cuando se imputa la base de datos aparecen mas perfiles.
model <- Mclust(PROFILES2[,3:10], modelNames = "VVV", G = 6)
summary(model)
## ----------------------------------------------------
## Gaussian finite mixture model fitted by EM algorithm
## ----------------------------------------------------
##
## Mclust VVV (ellipsoidal, varying volume, shape, and orientation) model with 6
## components:
##
## log-likelihood n df BIC ICL
## -1417.725 415 269 -4457.057 -4483.249
##
## Clustering table:
## 1 2 3 4 5 6
## 65 98 11 95 88 58
library(tibble)
library(tidyr)
means <- data.frame(model$parameters$mean) %>%
rownames_to_column() %>%
rename(PROFILESimp = rowname) %>%
pivot_longer(cols = c(X1, X2, X3, X4, X5, X6), names_to = "Profile", values_to = "Mean") %>%
mutate(
Mean = round(Mean, 2),
# Estandarización Z (normalización usando media y desviación estándar)
Mean = (Mean - mean(Mean)) / sd(Mean)
)
means
## # A tibble: 48 × 3
## PROFILESimp Profile Mean
## <chr> <chr> <dbl>
## 1 Dx - Trat X1 1.05
## 2 Dx - Trat X2 0.625
## 3 Dx - Trat X3 2.68
## 4 Dx - Trat X4 0.928
## 5 Dx - Trat X5 -0.106
## 6 Dx - Trat X6 -0.420
## 7 Pres - Inicio quim X1 -0.587
## 8 Pres - Inicio quim X2 -0.642
## 9 Pres - Inicio quim X3 1.69
## 10 Pres - Inicio quim X4 -0.582
## # ℹ 38 more rows
p <- means %>%
mutate(Profile = recode(Profile,
X1 = "Prof 1",
X2 = "Prof 2",
X3 = "Prof 3",
X4 = "Prof 4",
X5 = "Prof 5",
X6 = "Prof 6",)) %>%
ggplot(aes(PROFILESimp, Mean, group = Profile, color = Profile)) +
geom_point(size = 2.25) +
geom_line(size = 1.25) +
scale_x_discrete(limits = c("Inicio - fin quim", "Pres - Inicio quim", "Pres - Inicio rad", "Inicio - Fin rad", "Pres - Inicio Braq", "Inicio - Fin Braq","Dx - Trat", "Inicio quim - Fin braq" )) +
labs(x = "Diferencia momentos", y = "Standardized means") +
theme_bw(base_size = 14) +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, size = 10, face = "bold"), # Letras eje X más grandes y en negrita
axis.text.y = element_text(size = 14, face = "bold"), # Letras eje Y más grandes y en negrita
axis.title.x = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje X
axis.title.y = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje Y
legend.position = "top",
legend.text = element_text(size = 14, face = "bold"), # Aumentar el tamaño de la leyenda y ponerla en negrita
legend.title = element_text(size = 16, face = "bold") # Aumentar tamaño del título de la leyenda
)
p
PROFILES2_COL <- PROFILES2 %>% filter(Procedencia == "Colombia")
PROFILES2_GUAT <- PROFILES2 %>% filter(Procedencia == "Guatemala")
p1_Col_2<-Mclust(PROFILES2_COL[,3:10])
fviz_mclust_bic(p1_Col_2)
p1_Col <-mclustBIC(PROFILES2_COL [,3:10]) # 4 perfiles
summary(p1_Col)
## Best BIC values:
## VVV,4 VVV,5 VVV,6
## BIC -2589.678 -2737.9141 -2924.1968
## BIC diff 0.000 -148.2365 -334.5193
Para Colombia hay 4 perfiles.
model_Col <- Mclust(PROFILES2_COL[,3:10], modelNames = "VVV", G = 4)
summary(model_Col)
## ----------------------------------------------------
## Gaussian finite mixture model fitted by EM algorithm
## ----------------------------------------------------
##
## Mclust VVV (ellipsoidal, varying volume, shape, and orientation) model with 4
## components:
##
## log-likelihood n df BIC ICL
## -811.7032 221 179 -2589.678 -2592.425
##
## Clustering table:
## 1 2 3 4
## 50 79 80 12
means_Col <- data.frame(model_Col$parameters$mean) %>%
rownames_to_column() %>%
rename(PROFILES2_COL = rowname) %>%
pivot_longer(cols = c(X1, X2, X3, X4), names_to = "Profile", values_to = "Mean") %>%
mutate(
Mean = round(Mean, 2)
)
p_Col <- means_Col %>%
mutate(Profile = recode(Profile,
X1 = "Prof 1",
X2 = "Prof 2",
X3 = "Prof 3",
X4 = "Prof 4")) %>%
ggplot(aes(PROFILES2_COL, Mean, group = Profile, color = Profile)) +
geom_point(size = 2.25) +
geom_line(size = 1.25) +
scale_x_discrete(limits = c("Inicio - fin quim", "Pres - Inicio quim", "Pres - Inicio rad", "Inicio - Fin rad", "Pres - Inicio Braq", "Inicio - Fin Braq","Dx - Trat", "Inicio quim - Fin braq" )) +
labs(x = "Diferencia momentos", y = "Promedio meses", title = "Perfiles Colombia") +
theme_bw(base_size = 14) +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, size = 10, face = "bold"), # Letras eje X más grandes y en negrita
axis.text.y = element_text(size = 14, face = "bold"), # Letras eje Y más grandes y en negrita
axis.title.x = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje X
axis.title.y = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje Y
legend.position = "right",
legend.text = element_text(size = 10, face = "bold"), # Aumentar el tamaño de la leyenda y ponerla en negrita
legend.title = element_text(size = 16, face = "bold") # Aumentar tamaño del título de la leyenda
)
p_Col
p1_Guat_2<-Mclust(PROFILES2_GUAT[,3:10])
fviz_mclust_bic(p1_Guat_2)
p1_Guat <-mclustBIC(PROFILES2_GUAT[,3:10]) # 7 perfiles en guatemala
summary(p1_Guat)
## Best BIC values:
## VVI,7 VVI,8 VVI,9
## BIC -1676.212 -1706.80396 -1736.99268
## BIC diff 0.000 -30.59184 -60.78056
model_Guat <- Mclust(PROFILES2_GUAT[,3:10], modelNames = "VVI", G = 7)
summary(model_Guat)
## ----------------------------------------------------
## Gaussian finite mixture model fitted by EM algorithm
## ----------------------------------------------------
##
## Mclust VVI (diagonal, varying volume and shape) model with 7 components:
##
## log-likelihood n df BIC ICL
## -527.3024 194 118 -1676.212 -1684.859
##
## Clustering table:
## 1 2 3 4 5 6 7
## 37 7 25 29 27 46 23
means_Guat <- data.frame(model_Guat$parameters$mean) %>%
rownames_to_column() %>%
rename(PROFILES2_GUAT = rowname) %>%
pivot_longer(cols = c(X1, X2, X3, X4, X5, X6, X7), names_to = "Profile", values_to = "Mean") %>%
mutate(
Mean = round(Mean, 2)
)
p_Guat <- means_Guat %>%
mutate(Profile = recode(Profile,
X1 = "Prof 1",
X2 = "Prof 2",
X3 = "Prof 3",
X4 = "Prof 4",
X5 = "Prof 5",
X6 = "Prof 6",
X7 = "Prof 7")) %>%
ggplot(aes(PROFILES2_GUAT, Mean, group = Profile, color = Profile)) +
geom_point(size = 2.25) +
geom_line(size = 1.25) +
scale_x_discrete(limits = c("Inicio - fin quim", "Pres - Inicio quim", "Pres - Inicio rad", "Inicio - Fin rad", "Pres - Inicio Braq", "Inicio - Fin Braq","Dx - Trat", "Inicio quim - Fin braq" )) +
labs(x = "Diferencia momentos", y = "Promedio meses", title = "Perfiles Guatemala") +
theme_bw(base_size = 14) +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, size = 10, face = "bold"), # Letras eje X más grandes y en negrita
axis.text.y = element_text(size = 14, face = "bold"), # Letras eje Y más grandes y en negrita
axis.title.x = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje X
axis.title.y = element_text(size = 16, face = "bold"), # Aumentar tamaño de la etiqueta del eje Y
legend.position = "right",
legend.text = element_text(size = 10, face = "bold"), # Aumentar el tamaño de la leyenda y ponerla en negrita
legend.title = element_text(size = 16, face = "bold") # Aumentar tamaño del título de la leyenda
)
p_Guat
Se asigna el grupo a la base de datos por país
clases_col <- model_Col$classification
clases_guat <- model_Guat$classification
# Agregar las clases al data frame por pais
PROFILES2_COL <- PROFILES2_COL %>%
mutate(Perfil = clases_col)
PROFILES2_GUAT <- PROFILES2_GUAT %>%
mutate(Perfil = clases_guat)
# Unir los data frame
BASE_PERF_COL <- merge(PROFILES2_COL, BASE, by = "ID_merge", all.x = TRUE)
BASE_PERF_GUAT <- merge(PROFILES2_GUAT, BASE, by = "ID_merge", all.x = TRUE)
Nombrando los perfiles por los promedios de tiempo
myVars8<-c("Pres - Inicio quim", "Inicio - fin quim", "Pres - Inicio rad", "Inicio - Fin rad", "Pres - Inicio Braq", "Inicio - Fin Braq","Dx - Trat", "Inicio quim - Fin braq")
tab8 <- CreateTableOne(vars = myVars8, strata = "Perfil", data = BASE_PERF_COL, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table8 <- as.data.frame(print(tab8, showAllLevels= TRUE, printToggle = FALSE))
rownames(table8) <- gsub("\\.{3,}", "", rownames(table8)) # Quita 3 puntos
rownames(table8) <- gsub("\\.{1,}", " ", rownames(table8)) # Quita 1 puntos
kable(table8, format = "html", caption = "Promedio diferencia momentos - perfil Colombia") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "black") %>%
column_spec(2, border_left = T, background = "grey")
level | Overall | 1 | 2 | 3 | 4 | p | test | |
---|---|---|---|---|---|---|---|---|
n | 221 | 50 | 79 | 80 | 12 | |||
Pres - Inicio quim (mean (SD)) | 1.11 (2.55) | 0.90 (0.57) | 0.89 (0.46) | 0.86 (0.46) | 5.18 (10.30) | <0.001 | ||
Inicio - fin quim (mean (SD)) | 1.44 (2.48) | 1.32 (0.57) | 1.26 (0.19) | 1.30 (0.28) | 4.16 (10.58) | 0.001 | ||
Pres - Inicio rad (mean (SD)) | 0.93 (0.56) | 0.94 (0.62) | 0.95 (0.43) | 0.88 (0.41) | 1.06 (1.40) | 0.664 | ||
Inicio - Fin rad (mean (SD)) | 1.41 (0.40) | 1.55 (0.49) | 1.30 (0.15) | 1.37 (0.26) | 1.86 (1.04) | <0.001 | ||
Pres - Inicio Braq (mean (SD)) | 1.89 (1.40) | 1.92 (1.40) | 0.87 (0.56) | 2.66 (0.52) | 3.32 (3.54) | <0.001 | ||
Inicio - Fin Braq (mean (SD)) | 0.66 (2.61) | 0.52 (0.36) | 0.21 (0.11) | 0.63 (0.23) | 4.46 (10.88) | <0.001 | ||
Dx - Trat (mean (SD)) | 3.38 (3.47) | 3.86 (3.41) | 2.79 (1.12) | 3.35 (2.30) | 5.43 (11.57) | 0.058 | ||
Inicio quim - Fin braq (mean (SD)) | 2.73 (2.66) | 2.90 (0.92) | 2.32 (0.57) | 2.41 (0.39) | 6.91 (10.65) | <0.001 |
write.xlsx(table8, "tabla_perfiles_col_tiempo.xlsx", rowNames = TRUE)
PERFIL 2: Pacientes con menores promedios de tiempo en la mayoría de momentos PERFIL 4: Pacientes con los mayores promedios de tiempo en la mayoria de momentos PERFIL 1: Pacientes “promedio” con mayores tiempos en el radoiterapia, desde el dx hasta el inicio del tratamiento y todo el tratamiento. Mayor variabilidad en los tiempos comparados con el perfil 3 PERFIL 3: Pacientes menores al promedio, excepto en los tiempos de braquiterapia (precripcion - inicio, inicio - fin), y con menor variabilidad en todos los tiempos comparado con el perfil 1.
myVars9<-c("Edad a la fecha de diagnóstico", "EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia", "TABAQUISMO", "N.de gestaciones", "N. partos vaginales", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Procedimiento_Cervix", "charls_cat", "ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension", "Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG", "Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante", "Cuidado soporte", "No recibio tratamiento",
"Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Intervalo entre Radioterapia Externa y Braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "Histerectomía extrafascial", "Histerectomía radical modificada", "Histerectomía radical",
"Salpingooforectomía bilateral", "Linfadenectomía pélvica", "Otra cirugia", "Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte", "trat_complete2", "retiro", "rta1", "trat_complete2", "seg_onco_cli", "linea_2", "linea_3", "fall" )
catVars9<-c("EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia", "TABAQUISMO", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Conización cervical", "Crioterapia", "Procedimiento_Cervix", "charls_cat", "ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension", "Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG","Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante", "Cuidado soporte", "No recibio tratamiento",
"Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "Histerectomía extrafascial", "Histerectomía radical modificada", "Histerectomía radical", "Salpingooforectomía bilateral", "Linfadenectomía pélvica", "Otra cirugia", "Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte", "trat_complete2", "retiro", "rta1", "trat_complete2", "seg_onco_cli", "linea_2", "linea_3", "fall")
tab9 <- CreateTableOne(vars = myVars9, factorVars= catVars9, strata = "Perfil", data = BASE_PERF_COL, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table9 <- as.data.frame(print(tab9, showAllLevels= TRUE, printToggle = FALSE))
rownames(table9) <- gsub("\\.{3,}", "", rownames(table9)) # Quita 3 puntos
rownames(table9) <- gsub("\\.{1,}", " ", rownames(table9)) # Quita 1 puntos
kable(table9, format = "html", caption = "Caracterizacion perfiles Colombia") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "black") %>%
column_spec(2, border_left = T, background = "grey")
level | Overall | 1 | 2 | 3 | 4 | p | test | |
---|---|---|---|---|---|---|---|---|
n | 221 | 50 | 79 | 80 | 12 | |||
Edad a la fecha de diagnóstico mean SD | 50.65 (13.58) | 51.54 (13.72) | 49.81 (12.68) | 50.58 (13.98) | 53.00 (17.10) | 0.833 | ||
EDUCACION | Primaria < | 37 ( 27.2) | 5 ( 17.9) | 10 ( 24.4) | 17 ( 28.8) | 5 ( 62.5) | 0.001 | |
X | Secundaria + tecnico | 77 ( 56.6) | 18 ( 64.3) | 31 ( 75.6) | 26 ( 44.1) | 2 ( 25.0) | ||
X 1 | Profesional + posgrado | 22 ( 16.2) | 5 ( 17.9) | 0 ( 0.0) | 16 ( 27.1) | 1 ( 12.5) | ||
GRUPO_ET | Indigena | 3 ( 1.4) | 0 ( 0.0) | 0 ( 0.0) | 2 ( 2.5) | 1 ( 8.3) | 0.075 | |
X 2 | Sin etnia especifica | 218 ( 98.6) | 50 (100.0) | 79 (100.0) | 78 ( 97.5) | 11 ( 91.7) | ||
Estado civil | Soltero | 56 ( 29.5) | 14 ( 33.3) | 15 ( 20.0) | 24 ( 38.1) | 3 ( 30.0) | 0.109 | |
X 3 | Casado o en pareja | 110 ( 57.9) | 24 ( 57.1) | 51 ( 68.0) | 28 ( 44.4) | 7 ( 70.0) | ||
X 4 | Divorciado o viudo | 24 ( 12.6) | 4 ( 9.5) | 9 ( 12.0) | 11 ( 17.5) | 0 ( 0.0) | ||
AFILIACION | Subsidiado/Público | 120 ( 54.3) | 26 ( 52.0) | 74 ( 93.7) | 13 ( 16.2) | 7 ( 58.3) | <0.001 | |
X 5 | Contributivo/Privado | 101 ( 45.7) | 24 ( 48.0) | 5 ( 6.3) | 67 ( 83.8) | 5 ( 41.7) | ||
TABAQUISMO | No fumadora | 182 ( 87.5) | 40 ( 83.3) | 66 ( 91.7) | 67 ( 84.8) | 9 (100.0) | 0.521 | |
X 6 | Ex-Fumadora | 10 ( 4.8) | 4 ( 8.3) | 1 ( 1.4) | 5 ( 6.3) | 0 ( 0.0) | ||
X 7 | Fumadora | 16 ( 7.7) | 4 ( 8.3) | 5 ( 6.9) | 7 ( 8.9) | 0 ( 0.0) | ||
N de gestaciones mean SD | 3.63 (2.67) | 3.22 (2.38) | 4.30 (2.86) | 3.11 (2.44) | 4.33 (3.11) | 0.017 | ||
Citologia | No | 142 ( 64.3) | 33 ( 66.0) | 57 ( 72.2) | 45 ( 56.2) | 7 ( 58.3) | 0.201 | |
X 8 | Si | 79 ( 35.7) | 17 ( 34.0) | 22 ( 27.8) | 35 ( 43.8) | 5 ( 41.7) | ||
P molecular VPH | No | 213 ( 96.4) | 50 (100.0) | 79 (100.0) | 72 ( 90.0) | 12 (100.0) | 0.002 | |
X 9 | Si | 8 ( 3.6) | 0 ( 0.0) | 0 ( 0.0) | 8 ( 10.0) | 0 ( 0.0) | ||
Historia de lesiones premalignas | NIC 2 - 3 | 5 ( 3.0) | 1 ( 2.8) | 1 ( 2.4) | 2 ( 2.5) | 1 ( 10.0) | 0.124 | |
X 10 | NIC 1 | 2 ( 1.2) | 0 ( 0.0) | 1 ( 2.4) | 0 ( 0.0) | 1 ( 10.0) | ||
X 11 | Carcinoma in situ | 1 ( 0.6) | 1 ( 2.8) | 0 ( 0.0) | 0 ( 0.0) | 0 ( 0.0) | ||
X 12 | Nunca | 158 ( 95.2) | 34 ( 94.4) | 39 ( 95.1) | 77 ( 97.5) | 8 ( 80.0) | ||
Procedimiento_Cervix | NINGUNA | 171 ( 77.4) | 36 ( 72.0) | 47 ( 59.5) | 78 ( 97.5) | 10 ( 83.3) | <0.001 | |
X 13 | BIOPSIA | 46 ( 20.8) | 14 ( 28.0) | 30 ( 38.0) | 0 ( 0.0) | 2 ( 16.7) | ||
X 14 | CONIZACION | 4 ( 1.8) | 0 ( 0.0) | 2 ( 2.5) | 2 ( 2.5) | 0 ( 0.0) | ||
charls_cat | <=2 | 107 ( 48.4) | 20 ( 40.0) | 42 ( 53.2) | 39 ( 48.8) | 6 ( 50.0) | 0.431 | |
X 15 | 3-4 | 85 ( 38.5) | 21 ( 42.0) | 31 ( 39.2) | 30 ( 37.5) | 3 ( 25.0) | ||
X 16 | >=5 | 29 ( 13.1) | 9 ( 18.0) | 6 ( 7.6) | 11 ( 13.8) | 3 ( 25.0) | ||
ingreso | sintomas | 141 ( 63.8) | 33 ( 66.0) | 57 ( 72.2) | 44 ( 55.0) | 7 ( 58.3) | 0.149 | |
X 17 | tamizaje | 80 ( 36.2) | 17 ( 34.0) | 22 ( 27.8) | 36 ( 45.0) | 5 ( 41.7) | ||
dolor | No | 156 ( 95.7) | 33 ( 84.6) | 62 (100.0) | 54 ( 98.2) | 7 (100.0) | 0.001 | |
X 18 | Sí | 7 ( 4.3) | 6 ( 15.4) | 0 ( 0.0) | 1 ( 1.8) | 0 ( 0.0) | ||
Subtipo histológico | Adenocarcinoma | 18 ( 8.1) | 3 ( 6.0) | 2 ( 2.5) | 11 ( 13.8) | 2 ( 16.7) | 0.051 | |
X 19 | Carcinoma escamocelular | 200 ( 90.5) | 45 ( 90.0) | 77 ( 97.5) | 68 ( 85.0) | 10 ( 83.3) | ||
X 20 | Carcinoma neuroendocrino de células pequeñas | 1 ( 0.5) | 0 ( 0.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | ||
X 21 | Otro, ¿Cuál? | 2 ( 0.9) | 2 ( 4.0) | 0 ( 0.0) | 0 ( 0.0) | 0 ( 0.0) | ||
Grado de diferenciación | Bien diferenciado | 52 ( 29.1) | 14 ( 33.3) | 23 ( 33.3) | 12 ( 20.3) | 3 ( 33.3) | 0.282 | |
X 22 | Mal diferenciado o Indiferenciado | 25 ( 14.0) | 7 ( 16.7) | 6 ( 8.7) | 12 ( 20.3) | 0 ( 0.0) | ||
X 23 | Moderadamente diferenciado | 102 ( 57.0) | 21 ( 50.0) | 40 ( 58.0) | 35 ( 59.3) | 6 ( 66.7) | ||
TC TORAX | No | 47 ( 21.3) | 11 ( 22.0) | 18 ( 22.8) | 15 ( 18.8) | 3 ( 25.0) | 0.913 | |
X 24 | Si | 174 ( 78.7) | 39 ( 78.0) | 61 ( 77.2) | 65 ( 81.2) | 9 ( 75.0) | ||
TC ABDOMEN | No | 21 ( 9.5) | 2 ( 4.0) | 7 ( 8.9) | 10 ( 12.5) | 2 ( 16.7) | 0.341 | |
X 25 | Si | 200 ( 90.5) | 48 ( 96.0) | 72 ( 91.1) | 70 ( 87.5) | 10 ( 83.3) | ||
TC PELVIS | No | 47 ( 21.3) | 7 ( 14.0) | 15 ( 19.0) | 23 ( 28.7) | 2 ( 16.7) | 0.199 | |
X 26 | Si | 174 ( 78.7) | 43 ( 86.0) | 64 ( 81.0) | 57 ( 71.2) | 10 ( 83.3) | ||
RMN PELVIS | No | 165 ( 74.7) | 42 ( 84.0) | 51 ( 64.6) | 64 ( 80.0) | 8 ( 66.7) | 0.042 | |
X 27 | Si | 56 ( 25.3) | 8 ( 16.0) | 28 ( 35.4) | 16 ( 20.0) | 4 ( 33.3) | ||
PET CT | No | 209 ( 94.6) | 46 ( 92.0) | 74 ( 93.7) | 79 ( 98.8) | 10 ( 83.3) | 0.092 | |
X 28 | Si | 12 ( 5.4) | 4 ( 8.0) | 5 ( 6.3) | 1 ( 1.2) | 2 ( 16.7) | ||
RAYOS X TORAX | No | 163 ( 73.8) | 37 ( 74.0) | 66 ( 83.5) | 52 ( 65.0) | 8 ( 66.7) | 0.060 | |
X 29 | Si | 58 ( 26.2) | 13 ( 26.0) | 13 ( 16.5) | 28 ( 35.0) | 4 ( 33.3) | ||
Laparoscopia exploratoria | No | 218 ( 98.6) | 48 ( 96.0) | 79 (100.0) | 80 (100.0) | 11 ( 91.7) | 0.027 | |
X 30 | Si | 3 ( 1.4) | 2 ( 4.0) | 0 ( 0.0) | 0 ( 0.0) | 1 ( 8.3) | ||
Cistoscopia | No | 214 ( 96.8) | 48 ( 96.0) | 76 ( 96.2) | 79 ( 98.8) | 11 ( 91.7) | 0.528 | |
X 31 | Si | 7 ( 3.2) | 2 ( 4.0) | 3 ( 3.8) | 1 ( 1.2) | 1 ( 8.3) | ||
Ultrasonido transvaginal | No | 149 ( 67.4) | 27 ( 54.0) | 54 ( 68.4) | 58 ( 72.5) | 10 ( 83.3) | 0.091 | |
X 32 | Si | 72 ( 32.6) | 23 ( 46.0) | 25 ( 31.6) | 22 ( 27.5) | 2 ( 16.7) | ||
Ultrasonido de renal y de vías urinaria | No | 216 ( 97.7) | 48 ( 96.0) | 77 ( 97.5) | 79 ( 98.8) | 12 (100.0) | 0.716 | |
X 33 | Si | 5 ( 2.3) | 2 ( 4.0) | 2 ( 2.5) | 1 ( 1.2) | 0 ( 0.0) | ||
Otro estudio de extension | No | 192 ( 86.9) | 44 ( 88.0) | 77 ( 97.5) | 62 ( 77.5) | 9 ( 75.0) | 0.001 | |
X 34 | Si | 29 ( 13.1) | 6 ( 12.0) | 2 ( 2.5) | 18 ( 22.5) | 3 ( 25.0) | ||
Especialidad que realizó la primera consulta | Ginecología Oncológica | 176 ( 80.0) | 39 ( 78.0) | 69 ( 87.3) | 60 ( 75.9) | 8 ( 66.7) | 0.177 | |
X 35 | Otra | 44 ( 20.0) | 11 ( 22.0) | 10 ( 12.7) | 19 ( 24.1) | 4 ( 33.3) | ||
Diagnóstico CIE 10 registrado | C530 Tumor maligno del endocérvix | 40 ( 18.1) | 9 ( 18.0) | 2 ( 2.5) | 28 ( 35.0) | 1 ( 8.3) | <0.001 | |
X 36 | C531 Tumor maligno del exocérvix | 94 ( 42.5) | 23 ( 46.0) | 25 ( 31.6) | 43 ( 53.8) | 3 ( 25.0) | ||
X 37 | C539 Tumor maligno del cuello del útero, sin otra especificación | 85 ( 38.5) | 17 ( 34.0) | 52 ( 65.8) | 9 ( 11.2) | 7 ( 58.3) | ||
X 38 | C55X Tumor maligno del útero, parte no especificada | 2 ( 0.9) | 1 ( 2.0) | 0 ( 0.0) | 0 ( 0.0) | 1 ( 8.3) | ||
Tamaño tumoral clínico | tumor microscópico | 5 ( 2.4) | 0 ( 0.0) | 0 ( 0.0) | 4 ( 5.5) | 1 ( 8.3) | 0.032 | |
X 39 | ≤ 2 cm | 1 ( 0.5) | 0 ( 0.0) | 0 ( 0.0) | 1 ( 1.4) | 0 ( 0.0) | ||
X 40 | >2 cm - ≤ 4cm | 23 ( 11.1) | 6 ( 13.0) | 3 ( 3.9) | 11 ( 15.1) | 3 ( 25.0) | ||
X 41 | >4 cm | 179 ( 86.1) | 40 ( 87.0) | 74 ( 96.1) | 57 ( 78.1) | 8 ( 66.7) | ||
EST_clin_FIGO | IB3,II,IIA | 14 ( 6.3) | 2 ( 4.0) | 4 ( 5.1) | 7 ( 8.8) | 1 ( 8.3) | 0.673 | |
X 42 | IIB, III, IIIA, IIIB, IIIC, IVA | 207 ( 93.7) | 48 ( 96.0) | 75 ( 94.9) | 73 ( 91.2) | 11 ( 91.7) | ||
ECOG | ECOG0 | 134 ( 62.0) | 31 ( 63.3) | 63 ( 84.0) | 33 ( 41.2) | 7 ( 58.3) | <0.001 | |
X 43 | ECOG1 | 78 ( 36.1) | 17 ( 34.7) | 9 ( 12.0) | 47 ( 58.8) | 5 ( 41.7) | ||
X 44 | ECOG2 | 4 ( 1.9) | 1 ( 2.0) | 3 ( 4.0) | 0 ( 0.0) | 0 ( 0.0) | ||
Quimio radiación concomitante | No | 3 ( 1.4) | 2 ( 4.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | 0.276 | |
X 45 | Si | 218 ( 98.6) | 48 ( 96.0) | 79 (100.0) | 79 ( 98.8) | 12 (100.0) | ||
Cirugía | No | 206 ( 93.2) | 46 ( 92.0) | 79 (100.0) | 71 ( 88.8) | 10 ( 83.3) | 0.017 | |
X 46 | Si | 15 ( 6.8) | 4 ( 8.0) | 0 ( 0.0) | 9 ( 11.2) | 2 ( 16.7) | ||
Terapia sistémica adyuvante | No | 218 ( 98.6) | 48 ( 96.0) | 79 (100.0) | 79 ( 98.8) | 12 (100.0) | 0.276 | |
X 47 | Si | 3 ( 1.4) | 2 ( 4.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | ||
Radiación adyuvante | No | 217 ( 98.2) | 48 ( 96.0) | 78 ( 98.7) | 79 ( 98.8) | 12 (100.0) | 0.606 | |
X 48 | Si | 4 ( 1.8) | 2 ( 4.0) | 1 ( 1.3) | 1 ( 1.2) | 0 ( 0.0) | ||
Cuidado soporte | No | 221 (100.0) | 50 (100.0) | 79 (100.0) | 80 (100.0) | 12 (100.0) | NA | |
No recibio tratamiento | No | 221 (100.0) | 50 (100.0) | 79 (100.0) | 80 (100.0) | 12 (100.0) | NA | |
Esquema Quimioterapia | No | 4 ( 1.8) | 3 ( 6.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | 0.080 | |
X 49 | Si | 217 ( 98.2) | 47 ( 94.0) | 79 (100.0) | 79 ( 98.8) | 12 (100.0) | ||
Esquema Terapias de blanco molecular | No | 220 ( 99.5) | 49 ( 98.0) | 79 (100.0) | 80 (100.0) | 12 (100.0) | 0.329 | |
X 50 | Si | 1 ( 0.5) | 1 ( 2.0) | 0 ( 0.0) | 0 ( 0.0) | 0 ( 0.0) | ||
Esquema completo t sistemica | No | 22 ( 10.0) | 6 ( 12.0) | 4 ( 5.1) | 9 ( 11.2) | 3 ( 25.0) | 0.137 | |
X 51 | Si | 199 ( 90.0) | 44 ( 88.0) | 75 ( 94.9) | 71 ( 88.8) | 9 ( 75.0) | ||
Esquema completo radioterapia | No | 4 ( 1.8) | 1 ( 2.0) | 1 ( 1.3) | 2 ( 2.5) | 0 ( 0.0) | 0.902 | |
X 52 | Si | 217 ( 98.2) | 49 ( 98.0) | 78 ( 98.7) | 78 ( 97.5) | 12 (100.0) | ||
Prescripcion braquiterapia | Si | 221 (100.0) | 50 (100.0) | 79 (100.0) | 80 (100.0) | 12 (100.0) | NA | |
Intervalo entre Radioterapia Externa y Braquiterapia mean SD | 21.64 (20.03) | 28.76 (26.05) | 24.19 (16.63) | 12.45 (8.63) | 36.50 (37.00) | <0.001 | ||
Esquema completo braquiterapia | No | 6 ( 2.7) | 2 ( 4.0) | 1 ( 1.3) | 3 ( 3.8) | 0 ( 0.0) | 0.659 | |
X 53 | Si | 215 ( 97.3) | 48 ( 96.0) | 78 ( 98.7) | 77 ( 96.2) | 12 (100.0) | ||
Histerectomía extrafascial | No | 221 (100.0) | 50 (100.0) | 79 (100.0) | 80 (100.0) | 12 (100.0) | NA | |
Histerectomía radical modificada | No | 218 ( 98.6) | 48 ( 96.0) | 79 (100.0) | 79 ( 98.8) | 12 (100.0) | 0.276 | |
X 54 | Si | 3 ( 1.4) | 2 ( 4.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | ||
Histerectomía radical | No | 211 ( 95.5) | 48 ( 96.0) | 79 (100.0) | 73 ( 91.2) | 11 ( 91.7) | 0.058 | |
X 55 | Si | 10 ( 4.5) | 2 ( 4.0) | 0 ( 0.0) | 7 ( 8.8) | 1 ( 8.3) | ||
Salpingooforectomía bilateral | No | 210 ( 95.0) | 46 ( 92.0) | 79 (100.0) | 74 ( 92.5) | 11 ( 91.7) | 0.091 | |
X 56 | Si | 11 ( 5.0) | 4 ( 8.0) | 0 ( 0.0) | 6 ( 7.5) | 1 ( 8.3) | ||
Linfadenectomía pélvica | No | 211 ( 95.5) | 46 ( 92.0) | 79 (100.0) | 75 ( 93.8) | 11 ( 91.7) | 0.107 | |
X 57 | Si | 10 ( 4.5) | 4 ( 8.0) | 0 ( 0.0) | 5 ( 6.2) | 1 ( 8.3) | ||
Otra cirugia | No | 219 ( 99.1) | 50 (100.0) | 79 (100.0) | 78 ( 97.5) | 12 (100.0) | 0.313 | |
X 58 | Si | 2 ( 0.9) | 0 ( 0.0) | 0 ( 0.0) | 2 ( 2.5) | 0 ( 0.0) | ||
Ningun cuidado de soporte | No | 163 ( 73.8) | 32 ( 64.0) | 51 ( 64.6) | 74 ( 92.5) | 6 ( 50.0) | <0.001 | |
X 59 | Si | 58 ( 26.2) | 18 ( 36.0) | 28 ( 35.4) | 6 ( 7.5) | 6 ( 50.0) | ||
Cuidado paliativo | No | 94 ( 42.5) | 23 ( 46.0) | 45 ( 57.0) | 17 ( 21.2) | 9 ( 75.0) | <0.001 | |
X 60 | Si | 127 ( 57.5) | 27 ( 54.0) | 34 ( 43.0) | 63 ( 78.8) | 3 ( 25.0) | ||
Nutricion | No | 145 ( 65.6) | 39 ( 78.0) | 48 ( 60.8) | 48 ( 60.0) | 10 ( 83.3) | 0.072 | |
X 61 | Si | 76 ( 34.4) | 11 ( 22.0) | 31 ( 39.2) | 32 ( 40.0) | 2 ( 16.7) | ||
Patologia oral | No | 164 ( 74.2) | 38 ( 76.0) | 79 (100.0) | 37 ( 46.2) | 10 ( 83.3) | <0.001 | |
X 62 | Si | 57 ( 25.8) | 12 ( 24.0) | 0 ( 0.0) | 43 ( 53.8) | 2 ( 16.7) | ||
Psicologia | No | 164 ( 74.2) | 37 ( 74.0) | 66 ( 83.5) | 50 ( 62.5) | 11 ( 91.7) | 0.010 | |
X 63 | Si | 57 ( 25.8) | 13 ( 26.0) | 13 ( 16.5) | 30 ( 37.5) | 1 ( 8.3) | ||
Fertilidad sexualidad | No | 220 ( 99.5) | 50 (100.0) | 79 (100.0) | 79 ( 98.8) | 12 (100.0) | 0.621 | |
X 64 | Si | 1 ( 0.5) | 0 ( 0.0) | 0 ( 0.0) | 1 ( 1.2) | 0 ( 0.0) | ||
Otro cuidado de soporte | No | 200 ( 90.5) | 47 ( 94.0) | 75 ( 94.9) | 67 ( 83.8) | 11 ( 91.7) | 0.079 | |
X 65 | Si | 21 ( 9.5) | 3 ( 6.0) | 4 ( 5.1) | 13 ( 16.2) | 1 ( 8.3) | ||
trat_complete2 | -compl | 26 ( 11.8) | 7 ( 14.0) | 6 ( 7.6) | 10 ( 12.5) | 3 ( 25.0) | 0.304 | |
X 66 | +compl | 195 ( 88.2) | 43 ( 86.0) | 73 ( 92.4) | 70 ( 87.5) | 9 ( 75.0) | ||
retiro | +cont.m | 20 ( 9.0) | 6 ( 12.0) | 3 ( 3.8) | 8 ( 10.0) | 3 ( 25.0) | 0.073 | |
X 67 | -cont.m | 201 ( 91.0) | 44 ( 88.0) | 76 ( 96.2) | 72 ( 90.0) | 9 ( 75.0) | ||
rta1 | -rta_trat | 27 ( 12.2) | 9 ( 18.0) | 7 ( 8.9) | 11 ( 13.8) | 0 ( 0.0) | 0.237 | |
X 68 | +rta_trat | 194 ( 87.8) | 41 ( 82.0) | 72 ( 91.1) | 69 ( 86.2) | 12 (100.0) | ||
seg_onco_cli | -seg_onco | 47 ( 21.3) | 12 ( 24.0) | 14 ( 17.7) | 16 ( 20.0) | 5 ( 41.7) | 0.275 | |
X 69 | +seg_onco | 174 ( 78.7) | 38 ( 76.0) | 65 ( 82.3) | 64 ( 80.0) | 7 ( 58.3) | ||
linea_2 | No | 190 ( 86.0) | 42 ( 84.0) | 72 ( 91.1) | 69 ( 86.2) | 7 ( 58.3) | 0.023 | |
X 70 | Si | 31 ( 14.0) | 8 ( 16.0) | 7 ( 8.9) | 11 ( 13.8) | 5 ( 41.7) | ||
linea_3 | No | 214 ( 96.8) | 49 ( 98.0) | 78 ( 98.7) | 76 ( 95.0) | 11 ( 91.7) | 0.380 | |
X 71 | Si | 7 ( 3.2) | 1 ( 2.0) | 1 ( 1.3) | 4 ( 5.0) | 1 ( 8.3) | ||
fall | -fall | 201 ( 91.0) | 42 ( 84.0) | 72 ( 91.1) | 76 ( 95.0) | 11 ( 91.7) | 0.209 | |
X 72 | +fall | 20 ( 9.0) | 8 ( 16.0) | 7 ( 8.9) | 4 ( 5.0) | 1 ( 8.3) |
write.xlsx(table9, "tabla_perfiles_col.xlsx", rowNames = TRUE)
Perfil 2 (menores tiempos), la mayoría de pacientes tienen una afiliación al sistema como subsidiado. Este perfil y el 4 (mayores tiempos) tuvieron un promedio similar y mayor a la muestra total en número de gestaciones. Este perfil tuvo la menor cantidad de citologías. El perfil el 72.2% fue detectado por sintomas (mayor entre los perfiles). Este perfil el 96% tuvieron un tamaño tumoral mayor a 4cm, fue el más alto entre los demás perfiles, además el 84% tuvo un ECOG de 0.
Perfil 3, mayoría de pacientes con educacion posgradual y afiliacion al sistema contributivo, además tuvieron la mayor cantidad de citología y pruebas moleculares de VPH. Este perfil tuvo el menor procetaje de mujeres con ningun procedimiento previo de cervix. La mayoría de pacientes su dx fue detectado por tamizaje (45%). El 59% tuvo un ECOG de 2. Tuvo el mayor porentaje de cuidado de soporte (92.5%) y sus especialidades.
En el perfil 4 (mayores tiempos), el 25% tuvi un índice de Charlson mayor o igual a 5 (el mayor entre los perfiles). En este perfil hubo un mayor porcentaje de cirugía. Menor procentaje de cuidado de de soporte (50%). 3 pacietes (25%) no culminaron el tratamiento por contraindicacion medica. A pesar de lo anterior, el 100% tuvo respuesta al tratamiento, pero el 41% de las pacientes tuvieron recaida ( recibieron segunda linea de tratamiento), patron no presentado en ningun otro perfil.
Perfil 1: Mayor cantida de ultrasonida vaginal (46%), hubo mayor porcentajde fallecimientos (16%)
Nombrando los perfiles por los promedios de tiempo
tab10 <- CreateTableOne(vars = myVars8, strata = "Perfil", data = BASE_PERF_GUAT, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table10 <- as.data.frame(print(tab10, showAllLevels= TRUE, printToggle = FALSE))
rownames(table10) <- gsub("\\.{3,}", "", rownames(table10)) # Quita 3 puntos
rownames(table10) <- gsub("\\.{1,}", " ", rownames(table10)) # Quita 1 puntos
kable(table10, format = "html", caption = "Promedio diferencia momentos - perfil Colombia") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "black") %>%
column_spec(2, border_left = T, background = "grey")
level | Overall | 1 | 2 | 3 | 4 | 5 | 6 | 7 | p | test | |
---|---|---|---|---|---|---|---|---|---|---|---|
n | 194 | 37 | 7 | 25 | 29 | 27 | 46 | 23 | |||
Pres - Inicio quim (mean (SD)) | 0.56 (0.57) | 0.87 (0.72) | 0.92 (0.68) | 0.41 (0.19) | 0.25 (0.24) | 0.52 (0.21) | 0.11 (0.07) | 1.46 (0.24) | <0.001 | ||
Inicio - fin quim (mean (SD)) | 1.21 (2.72) | 1.07 (0.45) | 6.80 (14.06) | 0.87 (0.20) | 0.88 (0.25) | 1.21 (0.08) | 0.90 (0.10) | 1.16 (0.14) | <0.001 | ||
Pres - Inicio rad (mean (SD)) | 0.55 (0.59) | 0.99 (0.63) | 1.44 (1.67) | 0.43 (0.19) | 0.24 (0.19) | 0.43 (0.17) | 0.13 (0.08) | 1.09 (0.35) | <0.001 | ||
Inicio - Fin rad (mean (SD)) | 1.38 (2.64) | 1.15 (0.35) | 6.88 (13.66) | 1.13 (0.05) | 1.15 (0.08) | 1.28 (0.11) | 1.14 (0.07) | 1.27 (0.11) | <0.001 | ||
Pres - Inicio Braq (mean (SD)) | 1.20 (0.89) | 1.13 (0.99) | 1.40 (2.27) | 2.27 (0.47) | 0.46 (0.23) | 0.54 (0.29) | 1.74 (0.22) | 0.74 (0.19) | <0.001 | ||
Inicio - Fin Braq (mean (SD)) | 0.44 (0.29) | 0.44 (0.21) | 0.59 (0.28) | 0.26 (0.11) | 0.32 (0.14) | 0.67 (0.26) | 0.23 (0.08) | 0.89 (0.32) | <0.001 | ||
Dx - Trat (mean (SD)) | 2.49 (2.15) | 2.93 (1.54) | 4.16 (1.67) | 1.67 (0.61) | 0.92 (0.42) | 3.45 (3.33) | 1.25 (0.79) | 5.54 (1.25) | <0.001 | ||
Inicio quim - Fin braq (mean (SD)) | 2.30 (0.85) | 2.40 (0.83) | 4.54 (2.51) | 2.16 (0.52) | 1.84 (0.46) | 2.61 (0.36) | 1.89 (0.22) | 2.61 (0.40) | <0.001 |
write.xlsx(table10, "tabla_perfiles_GUAT_tiempo.xlsx", rowNames = TRUE)
La caracterización con 7 perfiles se complejiza.
PERFIL 2: Pacientes con mayores tiempo en la mayoría de momentos PERFIL 6: Pacientes con menores tiempos en la mayoría de momentos
Pendiente por caracterizar acorde a lo que el Dr. Murillo indique
Se toma como desenlace el fallecimiento
Se incluirán variables con un p valor igual o menor a 0.1
myVars12<-c("Procedencia", "Edad a la fecha de diagnóstico", "EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia", "TABAQUISMO", "N.de gestaciones", "N. partos vaginales", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Procedimiento_Cervix", "charls_cat", "ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension", "Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG", "Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante", "Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Intervalo entre Radioterapia Externa y Braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "M_quim", "M_quim0", "M_rad0", "M_rad", "M_braq", "M_braq0", "dif_dx_primtrat", "dif_quim_braq", "Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año", "Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año", "Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año",
"Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte", "trat_complete2", "retiro", "rta1", "seg_onco_cli", "linea_2", "linea_3" )
catVars12<-c("Procedencia", "EDUCACION", "GRUPO_ET", "Estado civil", "AFILIACION","tipo_residencia", "TABAQUISMO", "Citologia", "P. molecular VPH", "Historia de lesiones premalignas", "Conización cervical", "Crioterapia", "Procedimiento_Cervix", "charls_cat", "ingreso", "dolor", "Subtipo histológico", "Grado de diferenciación", "TC TORAX", "TC ABDOMEN", "TC PELVIS", "RMN PELVIS", "PET-CT", "RAYOS X TORAX", "Laparoscopia exploratoria", "Cistoscopia","Ultrasonido transvaginal", "Ultrasonido de renal y de vías urinaria","Otro estudio de extension", "Especialidad que realizó la primera consulta","Diagnóstico CIE-10 registrado", "Tamaño tumoral clínico", "EST_clin_FIGO", "ECOG","Quimio-radiación concomitante", "Cirugía", "Terapia sistémica adyuvante", "Radiación adyuvante",
"Esquema:Quimioterapia)", "Esquema:Terapias de blanco molecular)", "Esquema completo t sistemica", "Prescripcion radio externa", "Esquema completo radioterapia",
"Prescripcion braquiterapia", "Prescripcion braquiterapia", "Esquema completo braquiterapia", "Ningun cuidado de soporte", "Cuidado paliativo","Nutricion", "Patologia oral", "Psicologia", "Fertilidad/sexualidad", "Otro cuidado de soporte", "trat_complete2", "retiro", "rta1", "seg_onco_cli", "linea_2", "linea_3")
tab12 <- CreateTableOne(vars = myVars12, factorVars= catVars12, strata = "fall", data = BASE, includeNA = F, test = T, addOverall = T, testNonNormal = T)
table12 <- as.data.frame(print(tab12, showAllLevels= TRUE, printToggle = FALSE))
rownames(table12) <- gsub("\\.{3,}", "", rownames(table12)) # Quita 3 puntos
rownames(table12) <- gsub("\\.{1,}", " ", rownames(table12)) # Quita 1 puntos
kable(table12, format = "html", caption = "Caracterizacion fallecimiento") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center") %>%
column_spec(1, bold = T, color = "white", background = "black") %>%
column_spec(2, border_left = T, background = "grey")
level | Overall | -fall | +fall | p | test | |
---|---|---|---|---|---|---|
n | 494 | 405 | 89 | |||
Procedencia | Colombia | 254 (51.4) | 228 (56.3) | 26 ( 29.2) | <0.001 | |
X | Guatemala | 240 (48.6) | 177 (43.7) | 63 ( 70.8) | ||
Edad a la fecha de diagnóstico mean SD | 51.25 (13.39) | 51.25 (13.42) | 51.27 (13.32) | 0.990 | ||
EDUCACION | Primaria < | 144 (37.0) | 111 (35.6) | 33 ( 42.9) | 0.145 | |
X 1 | Secundaria + tecnico | 209 (53.7) | 168 (53.8) | 41 ( 53.2) | ||
X 2 | Profesional + posgrado | 36 ( 9.3) | 33 (10.6) | 3 ( 3.9) | ||
GRUPO_ET | Indigena | 35 ( 7.1) | 29 ( 7.2) | 6 ( 6.7) | 1.000 | |
X 3 | Sin etnia especifica | 459 (92.9) | 376 (92.8) | 83 ( 93.3) | ||
Estado civil | Soltero | 110 (24.4) | 95 (26.0) | 15 ( 17.6) | 0.263 | |
X 4 | Casado o en pareja | 254 (56.4) | 201 (55.1) | 53 ( 62.4) | ||
X 5 | Divorciado o viudo | 86 (19.1) | 69 (18.9) | 17 ( 20.0) | ||
AFILIACION | Subsidiado/Público | 197 (39.9) | 174 (43.0) | 23 ( 25.8) | 0.004 | |
X 6 | Contributivo/Privado | 297 (60.1) | 231 (57.0) | 66 ( 74.2) | ||
TABAQUISMO | No fumadora | 422 (90.9) | 348 (90.9) | 74 ( 91.4) | 0.981 | |
X 7 | Ex-Fumadora | 17 ( 3.7) | 14 ( 3.7) | 3 ( 3.7) | ||
X 8 | Fumadora | 25 ( 5.4) | 21 ( 5.5) | 4 ( 4.9) | ||
N de gestaciones mean SD | 3.73 (2.67) | 3.81 (2.80) | 3.40 (2.00) | 0.198 | ||
Citologia | No | 373 (75.5) | 298 (73.6) | 75 ( 84.3) | 0.047 | |
X 9 | Si | 121 (24.5) | 107 (26.4) | 14 ( 15.7) | ||
P molecular VPH | No | 485 (98.2) | 398 (98.3) | 87 ( 97.8) | 1.000 | |
X 10 | Si | 9 ( 1.8) | 7 ( 1.7) | 2 ( 2.2) | ||
Historia de lesiones premalignas | NIC 2 - 3 | 17 ( 5.8) | 13 ( 5.5) | 4 ( 7.0) | 0.229 | |
X 11 | NIC 1 | 9 ( 3.1) | 5 ( 2.1) | 4 ( 7.0) | ||
X 12 | Carcinoma in situ | 9 ( 3.1) | 8 ( 3.4) | 1 ( 1.8) | ||
X 13 | Nunca | 259 (88.1) | 211 (89.0) | 48 ( 84.2) | ||
Procedimiento_Cervix | NINGUNA | 319 (64.6) | 254 (62.7) | 65 ( 73.0) | 0.001 | |
X 14 | BIOPSIA | 157 (31.8) | 137 (33.8) | 20 ( 22.5) | ||
X 15 | TRAT. ABLATIVO | 6 ( 1.2) | 2 ( 0.5) | 4 ( 4.5) | ||
X 16 | CONIZACION | 12 ( 2.4) | 12 ( 3.0) | 0 ( 0.0) | ||
charls_cat | <=2 | 200 (40.5) | 157 (38.8) | 43 ( 48.3) | 0.180 | |
X 17 | 3-4 | 189 (38.3) | 162 (40.0) | 27 ( 30.3) | ||
X 18 | >=5 | 105 (21.3) | 86 (21.2) | 19 ( 21.3) | ||
ingreso | sintomas | 368 (74.5) | 294 (72.6) | 74 ( 83.1) | 0.053 | |
X 19 | tamizaje | 126 (25.5) | 111 (27.4) | 15 ( 16.9) | ||
dolor | No | 403 (95.3) | 327 (96.5) | 76 ( 90.5) | 0.043 | |
X 20 | Sí | 20 ( 4.7) | 12 ( 3.5) | 8 ( 9.5) | ||
Subtipo histológico | Adenocarcinoma | 59 (11.9) | 51 (12.6) | 8 ( 9.0) | 0.675 | |
X 21 | Carcinoma adenoescamoso | 2 ( 0.4) | 2 ( 0.5) | 0 ( 0.0) | ||
X 22 | Carcinoma escamocelular | 429 (86.8) | 348 (85.9) | 81 ( 91.0) | ||
X 23 | Carcinoma neuroendocrino de células pequeñas | 1 ( 0.2) | 1 ( 0.2) | 0 ( 0.0) | ||
X 24 | Otro, ¿Cuál? | 3 ( 0.6) | 3 ( 0.7) | 0 ( 0.0) | ||
Grado de diferenciación | Bien diferenciado | 112 (25.4) | 90 (25.5) | 22 ( 25.0) | 0.992 | |
X 25 | Mal diferenciado o Indiferenciado | 71 (16.1) | 57 (16.1) | 14 ( 15.9) | ||
X 26 | Moderadamente diferenciado | 258 (58.5) | 206 (58.4) | 52 ( 59.1) | ||
TC TORAX | No | 134 (27.1) | 119 (29.4) | 15 ( 16.9) | 0.023 | |
X 27 | Si | 360 (72.9) | 286 (70.6) | 74 ( 83.1) | ||
TC ABDOMEN | No | 37 ( 7.5) | 32 ( 7.9) | 5 ( 5.6) | 0.604 | |
X 28 | Si | 457 (92.5) | 373 (92.1) | 84 ( 94.4) | ||
TC PELVIS | No | 134 (27.1) | 102 (25.2) | 32 ( 36.0) | 0.053 | |
X 29 | Si | 360 (72.9) | 303 (74.8) | 57 ( 64.0) | ||
RMN PELVIS | No | 353 (71.5) | 294 (72.6) | 59 ( 66.3) | 0.288 | |
X 30 | Si | 141 (28.5) | 111 (27.4) | 30 ( 33.7) | ||
PET CT | No | 456 (92.3) | 377 (93.1) | 79 ( 88.8) | 0.244 | |
X 31 | Si | 38 ( 7.7) | 28 ( 6.9) | 10 ( 11.2) | ||
RAYOS X TORAX | No | 394 (79.8) | 316 (78.0) | 78 ( 87.6) | 0.058 | |
X 32 | Si | 100 (20.2) | 89 (22.0) | 11 ( 12.4) | ||
Laparoscopia exploratoria | No | 490 (99.2) | 401 (99.0) | 89 (100.0) | 0.773 | |
X 33 | Si | 4 ( 0.8) | 4 ( 1.0) | 0 ( 0.0) | ||
Cistoscopia | No | 483 (97.8) | 395 (97.5) | 88 ( 98.9) | 0.702 | |
X 34 | Si | 11 ( 2.2) | 10 ( 2.5) | 1 ( 1.1) | ||
Ultrasonido transvaginal | No | 397 (80.4) | 319 (78.8) | 78 ( 87.6) | 0.078 | |
X 35 | Si | 97 (19.6) | 86 (21.2) | 11 ( 12.4) | ||
Ultrasonido de renal y de vías urinaria | No | 483 (97.8) | 398 (98.3) | 85 ( 95.5) | 0.228 | |
X 36 | Si | 11 ( 2.2) | 7 ( 1.7) | 4 ( 4.5) | ||
Otro estudio de extension | No | 457 (92.5) | 375 (92.6) | 82 ( 92.1) | 1.000 | |
X 37 | Si | 37 ( 7.5) | 30 ( 7.4) | 7 ( 7.9) | ||
Especialidad que realizó la primera consulta | Ginecología Oncológica | 399 (80.9) | 326 (80.7) | 73 ( 82.0) | 0.889 | |
X 38 | Otra | 94 (19.1) | 78 (19.3) | 16 ( 18.0) | ||
Diagnóstico CIE 10 registrado | C530 Tumor maligno del endocérvix | 91 (18.4) | 78 (19.3) | 13 ( 14.6) | 0.289 | |
X 39 | C531 Tumor maligno del exocérvix | 292 (59.1) | 232 (57.3) | 60 ( 67.4) | ||
X 40 | C539 Tumor maligno del cuello del útero, sin otra especificación | 103 (20.9) | 89 (22.0) | 14 ( 15.7) | ||
X 41 | C55X Tumor maligno del útero, parte no especificada | 8 ( 1.6) | 6 ( 1.5) | 2 ( 2.2) | ||
Tamaño tumoral clínico | tumor microscópico | 5 ( 1.1) | 5 ( 1.3) | 0 ( 0.0) | 0.660 | |
X 42 | ≤ 2 cm | 2 ( 0.4) | 2 ( 0.5) | 0 ( 0.0) | ||
X 43 | >2 cm - ≤ 4cm | 89 (18.8) | 73 (18.9) | 16 ( 18.6) | ||
X 44 | >4 cm | 377 (79.7) | 307 (79.3) | 70 ( 81.4) | ||
EST_clin_FIGO | IB3,II,IIA | 61 (12.3) | 55 (13.6) | 6 ( 6.7) | 0.110 | |
X 45 | IIB, III, IIIA, IIIB, IIIC, IVA | 433 (87.7) | 350 (86.4) | 83 ( 93.3) | ||
ECOG | ECOG0 | 181 (37.1) | 167 (41.8) | 14 ( 15.9) | <0.001 | |
X 46 | ECOG1 | 240 (49.2) | 195 (48.8) | 45 ( 51.1) | ||
X 47 | ECOG2 | 63 (12.9) | 36 ( 9.0) | 27 ( 30.7) | ||
X 48 | ECOG3 | 4 ( 0.8) | 2 ( 0.5) | 2 ( 2.3) | ||
Quimio radiación concomitante | No | 19 ( 3.8) | 16 ( 4.0) | 3 ( 3.4) | 1.000 | |
X 49 | Si | 475 (96.2) | 389 (96.0) | 86 ( 96.6) | ||
Cirugía | No | 468 (94.7) | 381 (94.1) | 87 ( 97.8) | 0.252 | |
X 50 | Si | 26 ( 5.3) | 24 ( 5.9) | 2 ( 2.2) | ||
Terapia sistémica adyuvante | No | 490 (99.2) | 401 (99.0) | 89 (100.0) | 0.773 | |
X 51 | Si | 4 ( 0.8) | 4 ( 1.0) | 0 ( 0.0) | ||
Radiación adyuvante | No | 480 (97.2) | 392 (96.8) | 88 ( 98.9) | 0.471 | |
X 52 | Si | 14 ( 2.8) | 13 ( 3.2) | 1 ( 1.1) | ||
Esquema Quimioterapia | No | 20 ( 4.0) | 17 ( 4.2) | 3 ( 3.4) | 0.951 | |
X 53 | Si | 474 (96.0) | 388 (95.8) | 86 ( 96.6) | ||
Esquema Terapias de blanco molecular | No | 492 (99.6) | 403 (99.5) | 89 (100.0) | 1.000 | |
X 54 | Si | 2 ( 0.4) | 2 ( 0.5) | 0 ( 0.0) | ||
Esquema completo t sistemica | No | 36 ( 7.5) | 28 ( 7.1) | 8 ( 9.3) | 0.640 | |
X 55 | Si | 443 (92.5) | 365 (92.9) | 78 ( 90.7) | ||
Esquema completo radioterapia | No | 13 ( 2.7) | 6 ( 1.5) | 7 ( 8.1) | 0.002 | |
X 56 | Si | 473 (97.3) | 394 (98.5) | 79 ( 91.9) | ||
Prescripcion braquiterapia | No | 52 (10.7) | 24 ( 6.0) | 28 ( 32.2) | <0.001 | |
X 57 | Si | 436 (89.3) | 377 (94.0) | 59 ( 67.8) | ||
Intervalo entre Radioterapia Externa y Braquiterapia mean SD | 20.76 (20.28) | 20.58 (20.72) | 21.93 (17.26) | 0.637 | ||
Esquema completo braquiterapia | No | 18 ( 4.2) | 12 ( 3.2) | 6 ( 10.5) | 0.026 | |
X 58 | Si | 414 (95.8) | 363 (96.8) | 51 ( 89.5) | ||
M_quim mean SD | 1.33 (2.44) | 1.36 (2.69) | 1.15 (0.39) | 0.476 | ||
M_quim0 mean SD | 0.85 (1.81) | 0.86 (1.98) | 0.83 (0.62) | 0.900 | ||
M_rad0 mean SD | 0.77 (0.62) | 0.76 (0.61) | 0.83 (0.70) | 0.318 | ||
M_rad mean SD | 1.45 (2.04) | 1.41 (1.87) | 1.64 (2.68) | 0.334 | ||
M_braq mean SD | 0.55 (1.88) | 0.55 (2.02) | 0.54 (0.31) | 0.979 | ||
M_braq0 mean SD | 1.56 (1.23) | 1.57 (1.20) | 1.51 (1.41) | 0.742 | ||
dif_dx_primtrat mean SD | 3.03 (2.87) | 2.99 (2.99) | 3.24 (2.25) | 0.459 | ||
dif_quim_braq mean SD | 2.53 (2.03) | 2.52 (2.16) | 2.58 (0.71) | 0.838 | ||
Frecuencia del seguimiento imagenológico Número de imágenes en el Primer Año mean SD | 1.66 (1.63) | 1.67 (1.65) | 1.58 (1.56) | 0.668 | ||
Frecuencia de seguimiento por Oncología Clínica Número de visitas en el Primer Año mean SD | 3.33 (2.17) | 3.24 (1.99) | 4.00 (3.21) | 0.102 | ||
Frecuencia de seguimiento por Ginecología Oncológica Número de visitas en el Primer Año mean SD | 3.02 (1.17) | 3.04 (1.15) | 2.92 (1.25) | 0.449 | ||
Ningun cuidado de soporte | No | 216 (43.7) | 187 (46.2) | 29 ( 32.6) | 0.026 | |
X 59 | Si | 278 (56.3) | 218 (53.8) | 60 ( 67.4) | ||
Cuidado paliativo | No | 339 (68.6) | 268 (66.2) | 71 ( 79.8) | 0.017 | |
X 60 | Si | 155 (31.4) | 137 (33.8) | 18 ( 20.2) | ||
Nutricion | No | 399 (80.8) | 323 (79.8) | 76 ( 85.4) | 0.283 | |
X 61 | Si | 95 (19.2) | 82 (20.2) | 13 ( 14.6) | ||
Patologia oral | No | 426 (86.2) | 348 (85.9) | 78 ( 87.6) | 0.799 | |
X 62 | Si | 68 (13.8) | 57 (14.1) | 11 ( 12.4) | ||
Psicologia | No | 422 (85.4) | 343 (84.7) | 79 ( 88.8) | 0.412 | |
X 63 | Si | 72 (14.6) | 62 (15.3) | 10 ( 11.2) | ||
Fertilidad sexualidad | No | 489 (99.0) | 401 (99.0) | 88 ( 98.9) | 1.000 | |
X 64 | Si | 5 ( 1.0) | 4 ( 1.0) | 1 ( 1.1) | ||
Otro cuidado de soporte | No | 463 (93.7) | 378 (93.3) | 85 ( 95.5) | 0.600 | |
X 65 | Si | 31 ( 6.3) | 27 ( 6.7) | 4 ( 4.5) | ||
trat_complete2 | -compl | 114 (23.1) | 74 (18.3) | 40 ( 44.9) | <0.001 | |
X 66 | +compl | 380 (76.9) | 331 (81.7) | 49 ( 55.1) | ||
retiro | +cont.m | 34 ( 6.9) | 29 ( 7.2) | 5 ( 5.6) | 0.772 | |
X 67 | -cont.m | 460 (93.1) | 376 (92.8) | 84 ( 94.4) | ||
rta1 | -rta_trat | 63 (12.8) | 38 ( 9.4) | 25 ( 28.1) | <0.001 | |
X 68 | +rta_trat | 431 (87.2) | 367 (90.6) | 64 ( 71.9) | ||
seg_onco_cli | -seg_onco | 285 (57.7) | 221 (54.6) | 64 ( 71.9) | 0.004 | |
X 69 | +seg_onco | 209 (42.3) | 184 (45.4) | 25 ( 28.1) | ||
linea_2 | No | 386 (78.1) | 353 (87.2) | 33 ( 37.1) | <0.001 | |
X 70 | Si | 108 (21.9) | 52 (12.8) | 56 ( 62.9) | ||
linea_3 | No | 482 (97.6) | 398 (98.3) | 84 ( 94.4) | 0.075 | |
X 71 | Si | 12 ( 2.4) | 7 ( 1.7) | 5 ( 5.6) |
write.xlsx(table12, "tabla_fallecimiento.xlsx", rowNames = TRUE)
Se excluyo “esquema completo braqui” por no tener suficiente variabilidad
BASE$fall_reg <- ifelse(BASE$fall == "+fall", 1, 0)
m1 <- glm (fall_reg ~ Procedencia + AFILIACION + Citologia + Procedimiento_Cervix +ingreso + dolor + `Grado de diferenciación` + `TC PELVIS` +`RAYOS X TORAX` + ECOG + `Esquema completo radioterapia` + `Prescripcion braquiterapia` + `Ningun cuidado de soporte` + `Cuidado paliativo` + trat_complete2 + rta1 + seg_onco_cli + linea_2 + linea_3 , family = "binomial", data= BASE)
m2 <- glm (fall_reg ~ dolor + `Prescripcion braquiterapia` + `Cuidado paliativo` + rta1 + linea_2, family = "binomial", data= BASE)
summary(m2)
##
## Call:
## glm(formula = fall_reg ~ dolor + `Prescripcion braquiterapia` +
## `Cuidado paliativo` + rta1 + linea_2, family = "binomial",
## data = BASE)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.1523 0.4524 -0.337 0.73637
## dolorSí 1.5610 0.5871 2.659 0.00784 **
## `Prescripcion braquiterapia`Si -1.2518 0.3957 -3.164 0.00156 **
## `Cuidado paliativo`Si -0.9623 0.4100 -2.347 0.01891 *
## rta1+rta_trat -1.0901 0.4124 -2.644 0.00820 **
## linea_2Si 2.2858 0.3035 7.532 5e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 413.86 on 417 degrees of freedom
## Residual deviance: 296.06 on 412 degrees of freedom
## (76 observations deleted due to missingness)
## AIC: 308.06
##
## Number of Fisher Scoring iterations: 5
Se seleccionaron las variables por su significancia estadistica
#install.packages("sjPlot")
library(sjPlot)
#install.packages("sjmisc")
library(sjmisc)
#install.packages("sjlabelled")
library(sjlabelled)
library(gtsummary)
tbl_regression(m2, exponentiate = TRUE, add_estimate_to_reference_rows=TRUE) %>% add_global_p()
Characteristic | OR | 95% CI | p-value |
---|---|---|---|
dolor | 0.011 | ||
No | 1.00 | — | |
Sí | 4.76 | 1.45, 14.8 | |
Prescripcion braquiterapia | 0.002 | ||
No | 1.00 | — | |
Si | 0.29 | 0.13, 0.62 | |
Cuidado paliativo | 0.013 | ||
No | 1.00 | — | |
Si | 0.38 | 0.16, 0.82 | |
rta1 | 0.009 | ||
-rta_trat | 1.00 | — | |
+rta_trat | 0.34 | 0.15, 0.76 | |
linea_2 | <0.001 | ||
No | 1.00 | — | |
Si | 9.83 | 5.48, 18.1 | |
Abbreviations: CI = Confidence Interval, OR = Odds Ratio |
library(performance)
check_model(m2)
library(ResourceSelection)
hoslem.test(m2$y, fitted(m2), g=10)
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: m2$y, fitted(m2)
## X-squared = 3.9135, df = 3, p-value = 0.271
Fue neesario eliminar el ECOG para tener una mejor bondad de ajuste.
vars_usadas <- c("fall_reg",
"Procedencia", "AFILIACION", "Citologia", "Procedimiento_Cervix", "ingreso", "dolor",
"Grado de diferenciación", "TC PELVIS", "RAYOS X TORAX", "ECOG",
"Esquema completo radioterapia", "Prescripcion braquiterapia",
"Ningun cuidado de soporte", "Cuidado paliativo",
"trat_complete2", "rta1", "seg_onco_cli", "linea_2", "linea_3")
BASE_completa <- BASE[complete.cases(BASE[, vars_usadas]), ]
# 2. Ajustar los modelos sobre la base depurada
m1 <- glm(fall_reg ~ Procedencia + AFILIACION + Citologia + Procedimiento_Cervix +
ingreso + dolor + `Grado de diferenciación` + `TC PELVIS` + `RAYOS X TORAX` +
ECOG + `Esquema completo radioterapia` + `Prescripcion braquiterapia` +
`Ningun cuidado de soporte` + `Cuidado paliativo` +
trat_complete2 + rta1 + seg_onco_cli + linea_2 + linea_3,
family = "binomial", data = BASE_completa)
m2 <- glm(fall_reg ~ dolor + `Prescripcion braquiterapia` +
`Cuidado paliativo` + rta1 + linea_2,
family = "binomial", data = BASE_completa)
# 3. Comparar
library(lmtest)
lrtest(m1, m2)
## Likelihood ratio test
##
## Model 1: fall_reg ~ Procedencia + AFILIACION + Citologia + Procedimiento_Cervix +
## ingreso + dolor + `Grado de diferenciación` + `TC PELVIS` +
## `RAYOS X TORAX` + ECOG + `Esquema completo radioterapia` +
## `Prescripcion braquiterapia` + `Ningun cuidado de soporte` +
## `Cuidado paliativo` + trat_complete2 + rta1 + seg_onco_cli +
## linea_2 + linea_3
## Model 2: fall_reg ~ dolor + `Prescripcion braquiterapia` + `Cuidado paliativo` +
## rta1 + linea_2
## #Df LogLik Df Chisq Pr(>Chisq)
## 1 25 -131.03
## 2 6 -137.82 -19 13.572 0.808
Las variables de m1 no aporta significativamente al modelo 2
Se prueban las variables significativas en el modelo bi-variado con un arbol de clasificacion,
#install.packages("caret")
library(caret)
set.seed(2025)
index <- createDataPartition(BASE$fall, p = 0.60, list = FALSE)
train_data <- BASE[index, ] # 60% de los datos
test_data <- BASE[-index, ] # 40% restante
#install.packages("table1")
library(table1)
table1( ~ fall , data = BASE, rowlabelhead = "Base Completa")
Base Completa | Overall (N=494) |
---|---|
fall | |
-fall | 405 (82.0%) |
+fall | 89 (18.0%) |
table1( ~ fall , data = train_data , rowlabelhead = "Base entrenamiento")
Base entrenamiento | Overall (N=297) |
---|---|
fall | |
-fall | 243 (81.8%) |
+fall | 54 (18.2%) |
table1( ~ fall , data = test_data, rowlabelhead = "Base validacion")
Base validacion | Overall (N=197) |
---|---|
fall | |
-fall | 162 (82.2%) |
+fall | 35 (17.8%) |
Teniendo en cuenta las particiones que hacen los arboles para las variables cuantitativas, se incluyen dichas variables, además de las variables categoricas con un p valor igual o menos a 0.1 en el analisis bivariado.
Arbol inicial
# Ver si hay nombres con un salto de línea real
grep("\n", names(train_data), value = TRUE)
## [1] "N. partos \nvaginales"
names(train_data) <- gsub("\n", " ", names(train_data))
# Limpiar espacios extra al inicio y final
names(train_data) <- trimws(names(train_data))
# Verificar
grep("partos", names(train_data), value = TRUE, ignore.case = TRUE)
## [1] "N. partos vaginales"
library(rpart)
library(rpart.plot)
arbolcomp <- rpart(formula = fall ~ Procedencia + `Edad a la fecha de diagnóstico` + `Lugar de residencia` + EDUCACION + GRUPO_ET + `Estado civil` + AFILIACION + TABAQUISMO + `N.de gestaciones` + `N. partos vaginales`+ Citologia + `P. molecular VPH` + `Historia de lesiones premalignas` + Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` + `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` + `PET-CT` + `RAYOS X TORAX`+ `Especialidad que realizó la primera consulta` + `Tamaño tumoral clínico` + EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` + `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` + `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` + `Prescripcion braquiterapia` + `Esquema completo braquiterapia`+ M_quim +M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat + dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` + `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` + `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` + `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion+ `Patologia oral` + `Psicologia`+ `Fertilidad/sexualidad` + trat_complete2+ retiro + rta1+ seg_onco_cli +linea_2+ linea_3 + `Especialista de seguimiento (choice=Ginecología oncológica)`, data = train_data , parms = list(split = "gini"), method="class", cp= 0.008)
printcp(arbolcomp)
##
## Classification tree:
## rpart(formula = fall ~ Procedencia + `Edad a la fecha de diagnóstico` +
## `Lugar de residencia` + EDUCACION + GRUPO_ET + `Estado civil` +
## AFILIACION + TABAQUISMO + `N.de gestaciones` + `N. partos vaginales` +
## Citologia + `P. molecular VPH` + `Historia de lesiones premalignas` +
## Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` +
## `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` +
## `PET-CT` + `RAYOS X TORAX` + `Especialidad que realizó la primera consulta` +
## `Tamaño tumoral clínico` + EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` +
## `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` +
## `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` +
## `Prescripcion braquiterapia` + `Esquema completo braquiterapia` +
## M_quim + M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat +
## dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` +
## `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` +
## `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` +
## `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion +
## `Patologia oral` + Psicologia + `Fertilidad/sexualidad` +
## trat_complete2 + retiro + rta1 + seg_onco_cli + linea_2 +
## linea_3 + `Especialista de seguimiento (choice=Ginecología oncológica)`,
## data = train_data, method = "class", parms = list(split = "gini"),
## cp = 0.008)
##
## Variables actually used in tree construction:
## [1] Edad a la fecha de diagnóstico linea_2
## [3] M_quim0 M_rad
## [5] N. partos vaginales seg_onco_cli
##
## Root node error: 54/297 = 0.18182
##
## n= 297
##
## CP nsplit rel error xerror xstd
## 1 0.175926 0 1.00000 1.00000 0.12309
## 2 0.055556 2 0.64815 0.68519 0.10539
## 3 0.024691 3 0.59259 0.68519 0.10539
## 4 0.008000 6 0.51852 0.85185 0.11546
Las variables realmente usadas para el arbol fueron: Edad a la fecha de diagnóstico, el haber recibido segunda linea, tiempo entre prescripcion e inicio de quimioterapia, (M_quim0), tiempo de inicio y fin de radio (M_rad), número de partos vaginales (N. partos vaginales) y el haber tenido seguimiento por oncologia clinica (seg_onco_cli).
#install.packages("rattle")
library(rattle)
rpart.plot(
arbolcomp,
extra = 104, # muestra counts, prob, etc.
under = TRUE, # pone las categorías debajo
faclen = 0, # no acorta nombres
cex = 0.7,
tweak = 1.3,
space = 0.8 # aumenta espacio entre título y divisiones
)
fancyRpartPlot(
arbolcomp,
sub = "Árbol Inicial",
cex = 0.5,
tweak = 1.3,
palettes = c("Blues", "Greens"),
main = "Árbol de Clasificación",
cex.main = 1.4 # cambia tamaño del título principal
)
Extraer las tablas de decision (brinda la misma información que el arbol pero en tabla)
#install.packages("partykit")
library("partykit")
as.party(arbolcomp)
##
## Model formula:
## fall ~ Procedencia + `Edad a la fecha de diagnóstico` + `Lugar de residencia` +
## EDUCACION + GRUPO_ET + `Estado civil` + AFILIACION + TABAQUISMO +
## `N.de gestaciones` + `N. partos vaginales` + Citologia +
## `P. molecular VPH` + `Historia de lesiones premalignas` +
## Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` +
## `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` +
## `PET-CT` + `RAYOS X TORAX` + `Especialidad que realizó la primera consulta` +
## `Tamaño tumoral clínico` + EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` +
## `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` +
## `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` +
## `Prescripcion braquiterapia` + `Esquema completo braquiterapia` +
## M_quim + M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat +
## dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` +
## `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` +
## `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` +
## `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion +
## `Patologia oral` + Psicologia + `Fertilidad/sexualidad` +
## trat_complete2 + retiro + rta1 + seg_onco_cli + linea_2 +
## linea_3 + `Especialista de seguimiento (choice=Ginecología oncológica)`
##
## Fitted party:
## [1] root
## | [2] linea_2 in No
## | | [3] M_rad >= 0.9165: -fall (n = 229, err = 6.1%)
## | | [4] M_rad < 0.9165: +fall (n = 7, err = 28.6%)
## | [5] linea_2 in Si
## | | [6] seg_onco_cli in +seg_onco: -fall (n = 18, err = 22.2%)
## | | [7] seg_onco_cli in -seg_onco
## | | | [8] M_quim0 < 1.3665
## | | | | [9] Edad a la fecha de diagnóstico < 59.5
## | | | | | [10] N. partos vaginales >= 3.5: -fall (n = 10, err = 30.0%)
## | | | | | [11] N. partos vaginales < 3.5: +fall (n = 13, err = 30.8%)
## | | | | [12] Edad a la fecha de diagnóstico >= 59.5: +fall (n = 10, err = 10.0%)
## | | | [13] M_quim0 >= 1.3665: +fall (n = 10, err = 0.0%)
##
## Number of inner nodes: 6
## Number of terminal nodes: 7
Se verifica la importancia de las variables
arbolcomp$variable.importance
## linea_2
## 23.5868928
## seg_onco_cli
## 6.3115178
## M_rad
## 6.1309245
## Procedencia
## 2.8051190
## M_quim0
## 2.6715295
## Cuidado paliativo
## 2.4544791
## N. partos vaginales
## 2.1386926
## retiro
## 2.1038393
## rta1
## 2.1038393
## Edad a la fecha de diagnóstico
## 1.9944664
## N.de gestaciones
## 1.9647127
## Ningun cuidado de soporte
## 1.7531994
## M_rad0
## 1.6195008
## linea_3
## 1.5466815
## Procedimiento_Cervix
## 1.2340244
## TC PELVIS
## 0.8780488
## Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año
## 0.6959197
## Prescripción de Radioterapia Externa (Primera Línea)
## 0.6959197
## dif_dx_primtrat
## 0.6585366
## charls_cat
## 0.3988933
## Estado civil
## 0.2195122
## Patologia oral
## 0.2195122
cp <- arbolcomp$cptable[which.min(arbolcomp$cptable[,"xerror"]),"CP"]
plotcp(arbolcomp)
El grafico muestra la busqueda del valor minimo del error de validación cruzada (xerror). Extrae el parámetro de complejidad (CP) asociado a ese mínimo. Con 7 nodos es lo máximo con lo que arbol “funciona” (una complejidad de 7 nodos)
Se procede a podar el arbol
arbolpod <- prune(arbolcomp, cp=cp)
fancyRpartPlot(arbolpod, sub='Árbol Podado')
Al podar el arbol (disminuir posile sobreajuste), se eliminan porpiamente las ramas (mas que las variables).
as.party(arbolpod)
##
## Model formula:
## fall ~ Procedencia + `Edad a la fecha de diagnóstico` + `Lugar de residencia` +
## EDUCACION + GRUPO_ET + `Estado civil` + AFILIACION + TABAQUISMO +
## `N.de gestaciones` + `N. partos vaginales` + Citologia +
## `P. molecular VPH` + `Historia de lesiones premalignas` +
## Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` +
## `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` +
## `PET-CT` + `RAYOS X TORAX` + `Especialidad que realizó la primera consulta` +
## `Tamaño tumoral clínico` + EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` +
## `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` +
## `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` +
## `Prescripcion braquiterapia` + `Esquema completo braquiterapia` +
## M_quim + M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat +
## dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` +
## `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` +
## `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` +
## `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion +
## `Patologia oral` + Psicologia + `Fertilidad/sexualidad` +
## trat_complete2 + retiro + rta1 + seg_onco_cli + linea_2 +
## linea_3 + `Especialista de seguimiento (choice=Ginecología oncológica)`
##
## Fitted party:
## [1] root
## | [2] linea_2 in No: -fall (n = 236, err = 8.1%)
## | [3] linea_2 in Si
## | | [4] seg_onco_cli in +seg_onco: -fall (n = 18, err = 22.2%)
## | | [5] seg_onco_cli in -seg_onco: +fall (n = 43, err = 27.9%)
##
## Number of inner nodes: 2
## Number of terminal nodes: 3
#install.packages("rpart.plot")
library(rpart.plot)
library(caret)
pred <- predict(arbolcomp, newdata = train_data, type="class")
confusionMatrix(pred, train_data$fall, positive="+fall")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -fall +fall
## -fall 236 21
## +fall 7 33
##
## Accuracy : 0.9057
## 95% CI : (0.8666, 0.9364)
## No Information Rate : 0.8182
## P-Value [Acc > NIR] : 1.864e-05
##
## Kappa : 0.6476
##
## Mcnemar's Test P-Value : 0.01402
##
## Sensitivity : 0.6111
## Specificity : 0.9712
## Pos Pred Value : 0.8250
## Neg Pred Value : 0.9183
## Prevalence : 0.1818
## Detection Rate : 0.1111
## Detection Prevalence : 0.1347
## Balanced Accuracy : 0.7912
##
## 'Positive' Class : +fall
##
Accuracy (0.9057) → El modelo acierta en el 90,57 % de los casos,
P-valor vs. tasa de acierto por azar (NIR): muy bajo, el modelo mejora mucho sobre el azar.
Kappa (0.6476) → Medida de acuerdo ajustada por azar, 0.64 indica un buen acuerdo.
Sensitivity (0.6111) → Capacidad de detectar a los +fall (verdaderos positivos), el modelo detecta correctamente un 61 % de los casos que sí tienen +fall. “Se escapan 4 de cada 10 casos positivos”.
Specificity (0.9712) → Capacidad de identificar correctamente a los –fall. Muy alta: 97 % → casi nunca marca positivo a alguien que no lo es.
PPV (0.8250) → Si el modelo predice +fall, la probabilidad real de que sea cierto es del 82,5 %.
NPV (0.9183) → Si predice –fall, hay un 91,8 % de probabilidad de que sea cierto.
names(test_data) <- gsub("\n", " ", names(test_data))
# Limpiar espacios extra al inicio y final
names(test_data) <- trimws(names(test_data))
predtest <- predict(arbolcomp, newdata = test_data, type="class")
confusionMatrix(predtest, test_data$fall, positive="+fall")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -fall +fall
## -fall 148 22
## +fall 14 13
##
## Accuracy : 0.8173
## 95% CI : (0.7561, 0.8686)
## No Information Rate : 0.8223
## P-Value [Acc > NIR] : 0.6171
##
## Kappa : 0.3131
##
## Mcnemar's Test P-Value : 0.2433
##
## Sensitivity : 0.37143
## Specificity : 0.91358
## Pos Pred Value : 0.48148
## Neg Pred Value : 0.87059
## Prevalence : 0.17766
## Detection Rate : 0.06599
## Detection Prevalence : 0.13706
## Balanced Accuracy : 0.64250
##
## 'Positive' Class : +fall
##
pred_pod <- predict(arbolpod , newdata = train_data, type="class")
confusionMatrix(pred_pod, train_data$fall, positive="+fall")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -fall +fall
## -fall 231 23
## +fall 12 31
##
## Accuracy : 0.8822
## 95% CI : (0.8399, 0.9165)
## No Information Rate : 0.8182
## P-Value [Acc > NIR] : 0.001786
##
## Kappa : 0.5698
##
## Mcnemar's Test P-Value : 0.090969
##
## Sensitivity : 0.5741
## Specificity : 0.9506
## Pos Pred Value : 0.7209
## Neg Pred Value : 0.9094
## Prevalence : 0.1818
## Detection Rate : 0.1044
## Detection Prevalence : 0.1448
## Balanced Accuracy : 0.7623
##
## 'Positive' Class : +fall
##
pred_pod_test <- predict(arbolpod , newdata = test_data, type="class")
confusionMatrix(pred_pod_test, test_data$fall, positive="+fall")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -fall +fall
## -fall 148 21
## +fall 14 14
##
## Accuracy : 0.8223
## 95% CI : (0.7617, 0.873)
## No Information Rate : 0.8223
## P-Value [Acc > NIR] : 0.5450
##
## Kappa : 0.3403
##
## Mcnemar's Test P-Value : 0.3105
##
## Sensitivity : 0.40000
## Specificity : 0.91358
## Pos Pred Value : 0.50000
## Neg Pred Value : 0.87574
## Prevalence : 0.17766
## Detection Rate : 0.07107
## Detection Prevalence : 0.14213
## Balanced Accuracy : 0.65679
##
## 'Positive' Class : +fall
##
El modelo funciona mas para predecir quienes no fallecen.
library(caret)
set.seed(2025)
index2 <- createDataPartition(BASE$rta1, p = 0.60, list = FALSE)
train_data2 <- BASE[index2, ] # 60% de los datos
test_data2 <- BASE[-index2, ] # 40% restante
#install.packages("table1")
library(table1)
table1( ~ rta1 , data = BASE, rowlabelhead = "Base Completa")
Base Completa | Overall (N=494) |
---|---|
rta1 | |
-rta_trat | 63 (12.8%) |
+rta_trat | 431 (87.2%) |
table1( ~ rta1, data = train_data2 , rowlabelhead = "Base entrenamiento")
Base entrenamiento | Overall (N=297) |
---|---|
rta1 | |
-rta_trat | 38 (12.8%) |
+rta_trat | 259 (87.2%) |
table1( ~ rta1, data = test_data2, rowlabelhead = "Base validacion")
Base validacion | Overall (N=197) |
---|---|
rta1 | |
-rta_trat | 25 (12.7%) |
+rta_trat | 172 (87.3%) |
Una vez creadas las bases se procede a correr el modelo
arbolcomp2 <- rpart(formula = rta1 ~ Procedencia + `Edad a la fecha de diagnóstico` + `Lugar de residencia` + EDUCACION + GRUPO_ET + `Estado civil` + AFILIACION + TABAQUISMO + `N.de gestaciones` + `N. partos vaginales`+ Citologia + `P. molecular VPH` + `Historia de lesiones premalignas` + Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` + `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` + `PET-CT` + `RAYOS X TORAX`+ `Tamaño tumoral clínico` + EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` + `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` + `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` + `Prescripcion braquiterapia` + `Esquema completo braquiterapia`+ M_quim +M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat + dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` + `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` + `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` + `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion+ `Patologia oral` + `Psicologia`+ `Fertilidad/sexualidad` + retiro + trat_complete2, data = train_data , parms = list(split = "gini"), method="class")
printcp(arbolcomp2)
##
## Classification tree:
## rpart(formula = rta1 ~ Procedencia + `Edad a la fecha de diagnóstico` +
## `Lugar de residencia` + EDUCACION + GRUPO_ET + `Estado civil` +
## AFILIACION + TABAQUISMO + `N.de gestaciones` + `N. partos vaginales` +
## Citologia + `P. molecular VPH` + `Historia de lesiones premalignas` +
## Procedimiento_Cervix + charls_cat + ingreso + dolor + `Grado de diferenciación` +
## `TC TORAX` + `TC ABDOMEN` + `TC PELVIS` + `RMN PELVIS` +
## `PET-CT` + `RAYOS X TORAX` + `Tamaño tumoral clínico` +
## EST_clin_FIGO + ECOG + `Quimio-radiación concomitante` +
## `Esquema completo t sistemica` + `Prescripción de Radioterapia Externa (Primera Línea)` +
## `Esquema completo radioterapia` + `Intervalo entre Radioterapia Externa y Braquiterapia` +
## `Prescripcion braquiterapia` + `Esquema completo braquiterapia` +
## M_quim + M_quim0 + M_rad0 + M_rad + M_braq + M_braq0 + dif_dx_primtrat +
## dif_quim_braq + `Frecuencia del seguimiento imagenológico: Número de imágenes en el Primer Año` +
## `Frecuencia de seguimiento por Oncología Clínica: Número de visitas en el Primer Año` +
## `Frecuencia de seguimiento por Ginecología Oncológica: Número de visitas en el Primer Año` +
## `Ningun cuidado de soporte` + `Cuidado paliativo` + Nutricion +
## `Patologia oral` + Psicologia + `Fertilidad/sexualidad` +
## retiro + trat_complete2, data = train_data, method = "class",
## parms = list(split = "gini"))
##
## Variables actually used in tree construction:
## [1] Edad a la fecha de diagnóstico M_rad
## [3] trat_complete2
##
## Root node error: 34/297 = 0.11448
##
## n= 297
##
## CP nsplit rel error xerror xstd
## 1 0.044118 0 1.00000 1.0000 0.16138
## 2 0.029412 2 0.91176 1.3235 0.18174
## 3 0.010000 3 0.88235 1.2941 0.18007
library(rattle)
fancyRpartPlot(arbolcomp2, sub='Árbol Inicial 2')
Podando el arbol
cp2 <- arbolcomp2$cptable[which.min(arbolcomp2$cptable[,"xerror"]),"CP"]
plotcp(arbolcomp2)
Probabelemente con 3 ramas sea suficiente, no fue posible podar el arbol ya que en este caso solo quedaria un nodo
#arbolpod2 <- prune(arbolcomp2, cp=cp2)
#fancyRpartPlot(arbolpod2, sub='Árbol Podado')
library(rpart.plot)
library(caret)
names(train_data2) <- gsub("\n", " ", names(train_data2))
names(train_data2) <- trimws(names(train_data2))
names(test_data2) <- gsub("\n", " ", names(test_data2))
names(test_data2) <- trimws(names(test_data2))
pred_2 <- predict(arbolcomp2, newdata = train_data2, type="class")
confusionMatrix(pred_2, train_data2$rta1, positive="+rta_trat")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -rta_trat +rta_trat
## -rta_trat 7 4
## +rta_trat 31 255
##
## Accuracy : 0.8822
## 95% CI : (0.8399, 0.9165)
## No Information Rate : 0.8721
## P-Value [Acc > NIR] : 0.3385
##
## Kappa : 0.2422
##
## Mcnemar's Test P-Value : 1.109e-05
##
## Sensitivity : 0.9846
## Specificity : 0.1842
## Pos Pred Value : 0.8916
## Neg Pred Value : 0.6364
## Prevalence : 0.8721
## Detection Rate : 0.8586
## Detection Prevalence : 0.9630
## Balanced Accuracy : 0.5844
##
## 'Positive' Class : +rta_trat
##
pred_2_test <- predict(arbolcomp2, newdata = test_data2, type="class")
confusionMatrix(pred_2_test, test_data2$rta1, positive="+rta_trat")
## Confusion Matrix and Statistics
##
## Reference
## Prediction -rta_trat +rta_trat
## -rta_trat 4 2
## +rta_trat 21 170
##
## Accuracy : 0.8832
## 95% CI : (0.83, 0.9245)
## No Information Rate : 0.8731
## P-Value [Acc > NIR] : 0.3833334
##
## Kappa : 0.2197
##
## Mcnemar's Test P-Value : 0.0001746
##
## Sensitivity : 0.9884
## Specificity : 0.1600
## Pos Pred Value : 0.8901
## Neg Pred Value : 0.6667
## Prevalence : 0.8731
## Detection Rate : 0.8629
## Detection Prevalence : 0.9695
## Balanced Accuracy : 0.5742
##
## 'Positive' Class : +rta_trat
##
Este modelo esta sesgado hacia la clase positiva (tienen respuesta al tratamiento)