Análisis de los datos clínicos - Actividad 1

A través del análisis de un conjunto de datos clínicos, se busca identificar posibles asociaciones entre el uso de antibióticos y los resultados del tratamiento, medidos mediante la escala RCB (Residual Cancer Burden), la supervivencia y el riesgo de recaída.

Este estudio es relevante porque, aunque se ha explorado en otros tipos de cáncer, el impacto de los antibióticos en la respuesta neoadyuvante del cáncer de mama aún no está bien establecido. El análisis permitirá comprender mejor si el uso de antibióticos afecta la probabilidad de alcanzar una respuesta patológica completa, lo que podría tener implicaciones en la personalización del tratamiento oncológico.

Estadística descriptiva

El conjunto de datos cuenta con las siguientes variables:

Código
muestra_700_UGC_perdidos <- read_excel("muestra_700_UGC_perdidos.xlsx")
muestra_700_UGC_perdidos <- muestra_700_UGC_perdidos %>%
  mutate_if(is.character, as.factor)
muestra_700_UGC_perdidos$Tn <- factor(muestra_700_UGC_perdidos$Tn)
muestra_700_UGC_perdidos$GRADO <- factor(muestra_700_UGC_perdidos$GRADO)
muestra_700_UGC_perdidos$Nx <- factor(muestra_700_UGC_perdidos$Nx)
names(muestra_700_UGC_perdidos)[names(muestra_700_UGC_perdidos) == "ESTADO_ULTIMO_\nCONTROL"] <- "ESTADO_ULTIMO_CONTROL"
skim_without_charts(muestra_700_UGC_perdidos)
Data summary
Name muestra_700_UGC_perdidos
Number of rows 700
Number of columns 28
_______________________
Column type frequency:
factor 22
numeric 6
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
SEXO 0 1.00 FALSE 2 M: 699, H: 1
FECHA_DIAGNOSTICO 0 1.00 FALSE 592 07/: 4, 17/: 4, 01/: 3, 02/: 3
FECHA_INICIO_QT 0 1.00 FALSE 573 01/: 4, 12/: 4, 18/: 4, 20/: 4
ESTADO_MENOPAUSICO 0 1.00 FALSE 3 PRE: 328, MEN: 295, Des: 77
TIPO_CIRUGIA 0 1.00 FALSE 3 CON: 398, RAD: 267, Des: 35
HISTOLOGIA 0 1.00 FALSE 11 DUC: 582, Des: 49, LOB: 39, PAP: 8
Tn 0 1.00 FALSE 4 2: 437, 3: 119, 1: 85, 4: 59
GRADO 0 1.00 FALSE 4 3: 352, 2: 277, Des: 42, 1: 29
HER2 0 1.00 FALSE 5 N(0: 228, P3+: 219, N(1: 124, P2+: 82
KI67_DICOT 3 1.00 FALSE 2 AIP: 582, BIP: 115
FENOTIPO_IHQ 0 1.00 FALSE 6 TRI: 164, LUM: 156, LUM: 150, HER: 94
Nx 1 1.00 FALSE 5 1: 292, 0: 228, 999: 84, 2: 74
ESTADIO 1 1.00 FALSE 8 IIA: 235, IIB: 227, III: 118, III: 65
RT 0 1.00 FALSE 2 SI: 609, NO: 91
TIPO_QT_NEOADY_OK 0 1.00 FALSE 10 ANT: 373, QUI: 134, QUI: 94, Des: 56
RETRASOS 0 1.00 FALSE 3 NO: 475, SI: 183, Des: 42
HT_ADY_OK 18 0.97 FALSE 9 NO: 244, INH: 153, TAM: 127, Des: 77
ANTIBIOTICO 0 1.00 FALSE 2 NO: 424, SI: 276
RCB 0 1.00 FALSE 4 RCB: 242, RCB: 220, RCB: 149, RCB: 89
RECIDIVA 0 1.00 FALSE 2 NO: 568, SI: 132
FECHA_ULTIMO_CONTROL 0 1.00 FALSE 369 14/: 8, 23/: 8, 11/: 7, 19/: 7
ESTADO_ULTIMO_CONTROL 0 1.00 FALSE 4 VSE: 504, VCE: 112, MCE: 78, MSE: 6

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
EDAD_DIAGNOSTICO 0 1 156.33 296.66 26.0 45.0 52.0 65 999
TAMAÑO 0 1 113.27 311.62 0.6 2.5 3.5 6 999
RE 0 1 49.56 45.60 0.0 0.0 70.0 95 100
RP 0 1 25.79 36.79 0.0 0.0 0.0 60 100
Ki67 3 1 44.01 25.31 3.0 23.0 40.0 65 100
No_ANTIBIOTICOS 0 1 0.59 0.86 0.0 0.0 0.0 1 5

Entre todas las variables disponibles en el conjunto de datos, se han seleccionado las siguientes por su relevancia para el análisis.

Edad en años en la que se realizó el diagnóstico del cáncer.

Estado menopáusico de la paciente al momento del diagnóstico (premenopáusica, menopáusica o desconocido).

Tipo histológico del tumor, según clasificación patológica.

Grado histológico del tumor.

Expresión del marcador de proliferación celular Ki-67.

Clasificación del tumor según inmunohistoquímica.

Tamaño del tumor en centímetros.

Clasificación T del tumor.

Estado ganglionar.

Estadio clínico del cáncer.

Tipo de cirugía realizada.

Tipo de quimioterapia neoadyuvante administrada.

Respuesta completa patológica tras el tratamiento.

Hormonoterapia adyuvante recibida.

Receptores hormonales de estrógeno (RE) y progesterona (RP).

Indica si hubo o no retrasos.

En primer lugar se ha procedido con el estudio individual de cada variable de interés teniendo en cuenta tanto el tipo de variable como bien su resumen estadístico que se ha acompañado con representaciones gráficas.

Para el análisis univariante de estas variables, se ha implementado una función que automatiza el proceso para las variables de interés del conjunto. De esta forma, conseguimos conocer qué variables son numéricas y cuáles son categóricas. También, se muestran resúmenes estadísticos de cada una de las variables junto a representaciones gráficas.

Código
variables_a_analizar <- c("EDAD_DIAGNOSTICO", "ESTADO_MENOPAUSICO", "HISTOLOGIA", "GRADO", "KI67_DICOT", "Ki67", "FENOTIPO_IHQ", "TAMAÑO", "Tn", "Nx", "ESTADIO", "TIPO_CIRUGIA", "TIPO_QT_NEOADY_OK", "RCB", "HT_ADY_OK", "RE", "RP", "RETRASOS", "No_ANTIBIOTICOS", "FECHA_ULTIMO_CONTROL", "FECHA_INICIO_QT", "ESTADO_ULTIMO_CONTROL", "ANTIBIOTICO")
resultados <- analizar_variables(muestra_700_UGC_perdidos, variables_a_analizar)

Numericas <- names(resultados$Numericas)  # Ver nombres de variables numéricas
Categoricas <- names(resultados$Categoricas)  # Ver nombres de variables categóricas

Una vez conocidas las variables y el tipo de las mismas se va a proceder con el análisis estadístico para cada una.

Variables numéricas

Código
summary(muestra_700_UGC_perdidos$EDAD_DIAGNOSTICO)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    26.0    45.0    52.0   156.3    65.0   999.0
    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   26.0    45.0    52.0   156.3    65.0   999.0  
Código
visualizar_variable(muestra_700_UGC_perdidos, "EDAD_DIAGNOSTICO")
Código
summary(muestra_700_UGC_perdidos$TAMAÑO)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.6     2.5     3.5   113.3     6.0   999.0
    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.6     2.5     3.5   113.3     6.0   999.0  
Código
visualizar_variable(muestra_700_UGC_perdidos, "TAMAÑO")
Código
summary(muestra_700_UGC_perdidos$RE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00   70.00   49.56   95.00  100.00
    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.00   70.00   49.56   95.00  100.00  
Código
visualizar_variable(muestra_700_UGC_perdidos, "RE")
Código
summary(muestra_700_UGC_perdidos$RP)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   25.79   60.00  100.00
    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.00    0.00   25.79   60.00  100.00  
Código
visualizar_variable(muestra_700_UGC_perdidos, "RP")

Variables categóricas

Código
visualizar_variable(muestra_700_UGC_perdidos, "ESTADO_MENOPAUSICO")
Código
visualizar_variable(muestra_700_UGC_perdidos, "HISTOLOGIA")
Código
visualizar_variable(muestra_700_UGC_perdidos, "GRADO")
Código
visualizar_variable(muestra_700_UGC_perdidos, "KI67_DICOT")
Código
visualizar_variable(muestra_700_UGC_perdidos, "FENOTIPO_IHQ")
Código
visualizar_variable(muestra_700_UGC_perdidos, "Tn")
Código
visualizar_variable(muestra_700_UGC_perdidos, "Nx")
Código
visualizar_variable(muestra_700_UGC_perdidos, "ESTADIO")
Código
visualizar_variable(muestra_700_UGC_perdidos, "TIPO_CIRUGIA")
Código
visualizar_variable(muestra_700_UGC_perdidos, "TIPO_QT_NEOADY_OK")
Código
visualizar_variable(muestra_700_UGC_perdidos, "RCB")
Código
visualizar_variable(muestra_700_UGC_perdidos, "HT_ADY_OK")
Código
visualizar_variable(muestra_700_UGC_perdidos, "RETRASOS")

Limpieza y filtrado de datos

Se va a proceder con la detección e imputación de valores perdidos, así como la identificación de valores atípicos. También, se realizará un preprocesamiento de los datos que conlleva una categorización y recodificación de variables para estratificar adecuadamente la población de pacientes. De esta forma pasamos de 700 muestras a 217.

Código
# Llamar la función y procesar el dataset
df_procesado <- procesar_datos(muestra_700_UGC_perdidos, variables_a_analizar)

# Mostrar el dataset procesado
skim_without_charts(df_procesado)
Data summary
Name df_procesado
Number of rows 217
Number of columns 23
_______________________
Column type frequency:
factor 17
numeric 6
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
ESTADO_MENOPAUSICO 0 1 FALSE 2 PRE: 112, MEN: 105
HISTOLOGIA 0 1 FALSE 9 DUC: 190, LOB: 15, PAP: 3, APO: 2
GRADO 0 1 FALSE 3 3: 111, 2: 99, 1: 7
KI67_DICOT 0 1 FALSE 2 AIP: 177, BIP: 40
FENOTIPO_IHQ 0 1 FALSE 5 LUM: 56, TRI: 50, LUM: 48, HER: 35
Tn 0 1 FALSE 4 2: 155, 1: 26, 3: 22, 4: 14
Nx 0 1 FALSE 4 1: 107, 0: 77, 2: 25, 3: 8
ESTADIO 0 1 FALSE 8 IIB: 78, IIA: 74, III: 29, III: 18
TIPO_CIRUGIA 0 1 FALSE 2 CON: 138, RAD: 79
TIPO_QT_NEOADY_OK 0 1 FALSE 9 ANT: 123, QUI: 40, QUI: 39, TAX: 7
RCB 0 1 FALSE 4 RCB: 81, RCB: 62, RCB: 51, RCB: 23
HT_ADY_OK 0 1 FALSE 8 NO: 82, INH: 55, TAM: 44, TAM: 18
RETRASOS 0 1 FALSE 2 NO: 157, SI: 60
FECHA_ULTIMO_CONTROL 0 1 FALSE 167 11/: 4, 14/: 3, 16/: 3, 18/: 3
FECHA_INICIO_QT 0 1 FALSE 201 04/: 2, 04/: 2, 06/: 2, 10/: 2
ESTADO_ULTIMO_CONTROL 0 1 FALSE 4 VSE: 163, VCE: 28, MCE: 24, MSE: 2
ANTIBIOTICO 0 1 FALSE 2 NO: 123, SI: 94

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
EDAD_DIAGNOSTICO 0 1 52.84 10.94 28.0 45.0 51 60 79.0
Ki67 0 1 43.20 26.18 4.0 20.0 37 67 100.0
TAMAÑO 0 1 3.31 1.25 0.6 2.5 3 4 6.8
RE 0 1 52.56 45.50 0.0 0.0 75 95 100.0
RP 0 1 28.26 37.40 0.0 0.0 0 60 100.0
No_ANTIBIOTICOS 0 1 0.58 0.74 0.0 0.0 0 1 2.0

Categorización y recodificación de variables

Se han creado variables categóricas nuevas a partir de las originales para simplificar la interpretación. Los criterios utilizados han sido:

  • GRADO_CAT: agrupación en dos categorías:
    • 1/2 → Grado 1 o 2
    • 3 → Grado 3
  • HISTOLOGIA_CAT:
    • DUCTAL → Tumores ductales
    • NO DUCTAL → Todos los demás tipos histológicos
  • Ki67_CAT:
    • <=14 → Marcador Ki-67 menor o igual a 14%
    • >14 → Mayor a 14%
  • FENOTIPO_IHQ_CAT:
    • LUMINAL → Fenotipos Luminal A o B
    • HER2 → Tumores HER2 o Luminal-HER2
    • TRIPLE NEGATIVO → Resto
  • ESTADIO_CAT:
    • I → Estadio I, IA, IB
    • II → II, IIA, IIB
    • III → III, IIIA, IIIB, IIIC
  • QT_CAT:
    • NO antiHER2 → Quimioterapia sin antiHER2
    • antiHER2 → Combinación con fármacos antiHER2
    • INMUNO → Incluye inmunoterapia
  • No_ANTIBIOTICOS:
    • Una vez → 1 ciclo antibiótico
    • Dos veces o más → 2 o más ciclos
  • RCP: respuesta completa patológica calculada a partir de RCB:
    • SI → RCB-0 o RCB-1
    • NO → RCB-2 o RCB-3
  • EDAD_DIAGNOSTICO:
    • 0-39
    • 40-49
    • 50-59
    • 60-69
    • 70-79
    • ≥80
Código

df_procesado$EDAD_DIAGNOSTICO <- cut(df_procesado$EDAD_DIAGNOSTICO, breaks = c(-Inf, 39, 49, 59,69,79, Inf), labels = c("0-39", "40-49", "50-59", "60-69","70-79","≥80"))
df_procesado$EDAD_DIAGNOSTICO <- as.factor(df_procesado$EDAD_DIAGNOSTICO)

# Seleccionar variables numéricas
numeric_vars <- sapply(df_procesado, is.numeric)

# Excluir 'Ki67' y 'No_ANTIBIOTICOS' de la normalización
vars_a_normalizar <- setdiff(names(df_procesado)[numeric_vars], c("Ki67", "No_ANTIBIOTICOS"))

# Normalizar solo esas variables
normalized_data <- scale(df_procesado[, vars_a_normalizar])

# Reemplazar las columnas originales por las normalizadas
df_procesado[, vars_a_normalizar] <- normalized_data

dataset_recodificado <- preprocesar_datos(df_procesado)

skim_without_charts(dataset_recodificado)
Data summary
Name dataset_recodificado
Number of rows 217
Number of columns 31
_______________________
Column type frequency:
factor 26
numeric 5
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
EDAD_DIAGNOSTICO 0 1.00 FALSE 5 40-: 69, 50-: 64, 60-: 44, 0-3: 21
ESTADO_MENOPAUSICO 0 1.00 FALSE 2 PRE: 112, MEN: 105
HISTOLOGIA 0 1.00 FALSE 9 DUC: 190, LOB: 15, PAP: 3, APO: 2
GRADO 0 1.00 FALSE 3 3: 111, 2: 99, 1: 7
KI67_DICOT 0 1.00 FALSE 2 AIP: 177, BIP: 40
FENOTIPO_IHQ 0 1.00 FALSE 5 LUM: 56, TRI: 50, LUM: 48, HER: 35
Tn 0 1.00 FALSE 4 2: 155, 1: 26, 3: 22, 4: 14
Nx 0 1.00 FALSE 4 1: 107, 0: 77, 2: 25, 3: 8
ESTADIO 0 1.00 FALSE 8 IIB: 78, IIA: 74, III: 29, III: 18
TIPO_CIRUGIA 0 1.00 FALSE 2 CON: 138, RAD: 79
TIPO_QT_NEOADY_OK 0 1.00 FALSE 9 ANT: 123, QUI: 40, QUI: 39, TAX: 7
RCB 0 1.00 FALSE 4 RCB: 81, RCB: 62, RCB: 51, RCB: 23
HT_ADY_OK 0 1.00 FALSE 8 NO: 82, INH: 55, TAM: 44, TAM: 18
RETRASOS 0 1.00 FALSE 2 NO: 157, SI: 60
FECHA_ULTIMO_CONTROL 0 1.00 FALSE 167 11/: 4, 14/: 3, 16/: 3, 18/: 3
FECHA_INICIO_QT 0 1.00 FALSE 201 04/: 2, 04/: 2, 06/: 2, 10/: 2
ESTADO_ULTIMO_CONTROL 0 1.00 FALSE 4 VSE: 163, VCE: 28, MCE: 24, MSE: 2
ANTIBIOTICO 0 1.00 FALSE 2 NO: 123, SI: 94
GRADO_CAT 0 1.00 FALSE 2 3: 111, 1/2: 106
HISTOLOGIA_CAT 0 1.00 FALSE 2 DUC: 190, NO : 27
Ki67_CAT 0 1.00 FALSE 2 >14: 192, <=1: 25
FENOTIPO_IHQ_CAT 0 1.00 FALSE 3 LUM: 84, HER: 83, TRI: 50
ESTADIO_CAT 0 1.00 FALSE 3 II: 152, III: 54, I: 11
QT_CAT 1 1.00 FALSE 3 NO : 135, ant: 79, INM: 2
No_ANTIBIOTICOS_CAT 123 0.43 FALSE 2 Una: 62, Dos: 32
RCP 0 1.00 FALSE 2 NO: 132, SI: 85

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
Ki67 0 1 43.20 26.18 4.00 20.00 37.00 67.00 100.00
TAMAÑO 0 1 0.00 1.00 -2.17 -0.65 -0.25 0.55 2.80
RE 0 1 0.00 1.00 -1.16 -1.16 0.49 0.93 1.04
RP 0 1 0.00 1.00 -0.76 -0.76 -0.76 0.85 1.92
No_ANTIBIOTICOS 0 1 0.58 0.74 0.00 0.00 0.00 1.00 2.00

Finalmente, para poder apreciar los cambios resurgidos de estos procesos que se han realizado, vamos a llamar a la función de visualización de variables para ver los cambios conseguidos en estas.

Código
visualizar_variable(dataset_recodificado, "EDAD_DIAGNOSTICO")
Código
visualizar_variable(dataset_recodificado, "TAMAÑO")
Código
visualizar_variable(dataset_recodificado, "RE")
Código
visualizar_variable(dataset_recodificado, "RP")
Código
visualizar_variable(dataset_recodificado, "ESTADO_MENOPAUSICO")
Código
visualizar_variable(dataset_recodificado, "GRADO_CAT")
Código
visualizar_variable(dataset_recodificado, "Ki67_CAT")
Código
visualizar_variable(dataset_recodificado, "HISTOLOGIA_CAT")
Código
visualizar_variable(dataset_recodificado, "FENOTIPO_IHQ_CAT")
Código
visualizar_variable(dataset_recodificado, "ESTADIO_CAT")
Código
visualizar_variable(dataset_recodificado, "QT_CAT")
Código
visualizar_variable(dataset_recodificado, "No_ANTIBIOTICOS")
Código
visualizar_variable(dataset_recodificado, "RCP")

Análisis de asociación/correlación

Para evaluar la posible relación entre la respuesta completa patológica (RCP) y las características de los pacientes, se emplearán análisis estadísticos adecuados a la naturaleza de cada variable. En el caso de las variables cualitativas, como el tipo de tratamiento o el estadio del tumor, se utilizarán pruebas diseñadas para comparar proporciones entre distintos grupos, como la prueba de Chi-cuadrado o, en situaciones donde el tamaño de la muestra sea reducido, la prueba exacta de Fisher. Estas herramientas permiten determinar si existen diferencias significativas en la distribución de estas características entre los pacientes que lograron o no una RCP.

Para las variables cuantitativas, como la edad del paciente o el índice de proliferación tumoral Ki67, se aplicarán pruebas que permitan evaluar diferencias en valores numéricos entre los grupos analizados. La prueba t de Student se empleará para comparar los valores promedio de estas variables entre los pacientes con y sin RCP, mientras que los coeficientes de correlación de Pearson o Spearman ayudarán a medir la intensidad y dirección de la relación entre estas características y la RCP.

A través de estos análisis se buscarán patrones o tendencias que puedan sugerir una asociación entre las características clínicas y patológicas de los pacientes y su respuesta al tratamiento. Los resultados obtenidos contribuirán a una mejor comprensión de los factores que podrían influir en la probabilidad de alcanzar una RCP, proporcionando información valiosa para optimizar estrategias terapéuticas y mejorar la toma de decisiones clínicas.

Explicación teórica

Antes de comenzar con el análisis estadístico, es fundamental comprender qué tipo de variables tenemos y cómo tratarlas según su naturaleza. Las técnicas estadísticas que se aplican varían dependiendo de si las variables son categóricas o numéricas.

Relación entre dos variables categóricas

Para analizar la relación entre dos variables categóricas, se comienza generando una tabla de contingencia, que nos muestra cuántas observaciones hay en cada combinación de categorías.

Dependiendo del número de observaciones en las celdas de la tabla, se elige uno de estos tests:

  • Si algún valor < 5 → Test de Fisher

  • Si todos los valores ≥ 5 → Test Chi-Cuadrado

Luego, se interpreta el resultado a través del p-valor:

Interpretación del p-valor
  • Si p < 0.05, se rechaza la hipótesis nula → Existe asociación estadística entre las variables.
  • Si p ≥ 0.05, no se rechaza la hipótesis nula → No hay evidencia de asociación.

Relación entre una variable categórica y una numérica

En este caso, el tipo de test dependerá de si la variable numérica sigue una distribución normal. Esto se evalúa con el test de Shapiro-Wilk:

  • Si p < 0.05 → No hay normalidad → Test de Wilcoxon

  • Si p ≥ 0.05 → Hay normalidad → Test t de Student

Nuevamente, el resultado se interpreta con el p-valor del test:

¿Existe asociación?
  • Si p < 0.05, se detecta una diferencia significativa entre los grupos.
  • Si p ≥ 0.05, no hay evidencia estadística de diferencia.

Relación entre dos variables numéricas

Cuando ambas variables son numéricas, se verifica su distribución con el test de Shapiro-Wilk. En función de los resultados, se selecciona el test de correlación apropiado:

  • Si ambas variables NO son normales → Correlación de Spearman

  • Si ambas variables son normales → Correlación de Pearson

Importante

Para aplicar el test de Pearson, ambas variables deben seguir distribución normal. Es decir, ambas deben tener p ≥ 0.05 en el test de Shapiro-Wilk.

Finalmente, el p-valor del test de correlación nos indicará si existe una relación estadísticamente significativa entre ambas variables.

Aplicación teórica

Código
detectar_asociacion(dataset_recodificado, "RCP","EDAD_DIAGNOSTICO")
 Analizando relación entre RCP y EDAD_DIAGNOSTICO
(Variable categórica)
Test de Fisher p-value: 0.0335
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","ESTADO_MENOPAUSICO")
 Analizando relación entre RCP y ESTADO_MENOPAUSICO
(Variable categórica)
Test Chi-cuadrado p-value: 0.1172
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","TAMAÑO")
 Analizando relación entre RCP y ESTADO_MENOPAUSICO
(Variable categórica)
Test Chi-cuadrado p-value: 0.1172
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","Tn")
 Analizando relación entre RCP y Tn
(Variable categórica)
Test Chi-cuadrado p-value: 0.4111
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","Nx")
 Analizando relación entre RCP y Nx
(Variable categórica)
Test de Fisher p-value: 0.1439
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","TIPO_CIRUGIA")
 Analizando relación entre RCP y TIPO_CIRUGIA
(Variable categórica)
Test Chi-cuadrado p-value: 0.8977
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","HT_ADY_OK")
 Analizando relación entre RCP y HT_ADY_OK
(Variable categórica)
Test de Fisher p-value: 5e-04
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","RE")
## Warning in cor.test.default(data[[variable]],
## as.numeric(as.factor(data[[evento]])), : Cannot compute exact p-value with ties
 Analizando relación entre RCP y RE
(Variable numérica)
Shapiro-Wilk p-value: 0
Correlación spearman p-value: 0
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","RP")
## Warning in cor.test.default(data[[variable]],
## as.numeric(as.factor(data[[evento]])), : Cannot compute exact p-value with ties
 Analizando relación entre RCP y RP
(Variable numérica)
Shapiro-Wilk p-value: 0
Correlación spearman p-value: 3e-04
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","GRADO_CAT")
 Analizando relación entre RCP y GRADO_CAT
(Variable categórica)
Test Chi-cuadrado p-value: 0.2633
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","HISTOLOGIA_CAT")
 Analizando relación entre RCP y HISTOLOGIA_CAT
(Variable categórica)
Test Chi-cuadrado p-value: 0.195
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","Ki67_CAT")
 Analizando relación entre RCP y Ki67_CAT
(Variable categórica)
Test de Fisher p-value: 0.0152
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","FENOTIPO_IHQ_CAT")
 Analizando relación entre RCP y FENOTIPO_IHQ_CAT
(Variable categórica)
Test Chi-cuadrado p-value: 0
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","ESTADIO_CAT")
## Warning in chisq.test(tabla): Chi-squared approximation may be incorrect
 Analizando relación entre RCP y ESTADIO_CAT
(Variable categórica)
Test Chi-cuadrado p-value: 0.5603
No existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","QT_CAT")
 Analizando relación entre RCP y QT_CAT
(Variable categórica)
Test de Fisher p-value: 5e-04
Existe asociación estadística entre las variables. 
Código
detectar_asociacion(dataset_recodificado, "RCP","No_ANTIBIOTICOS_CAT")
 Analizando relación entre RCP y No_ANTIBIOTICOS_CAT
(Variable categórica)
Test Chi-cuadrado p-value: 1
No existe asociación estadística entre las variables. 

Interpretaciones

Tras el estudio, se han comprobado que de las 16 variables analizadas, solamente la mitad constituye el grupo de variables con mayor evidencia estadística. Entre estas encontramos FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE…

Por otro lado, en el grupo que incluye a las variables que no parecen presentar relación significativa con la variable evento están TIPO_CIRUGIA, GRADO_CAT, ESTADO_MENOPAUSICO, No_ANTIBIOTICOS_CAT…

Es cierto que estos resultados pueden verse perjudicados por el uso de Fisher (simulado) dado que suponía mucho esfuerzo para el equipo y el programa el realizar el test completo. Por ende, aquellas variables que se consideren convenientes van a ser utilizadas para el análisis multivariante.

Código
kable(
  data.frame(
    Variable = c(
      "FENOTIPO_IHQ_CAT", "HT_ADY_OK", "QT_CAT",
      "RE", "RP", "Ki67_CAT", "EDAD_DIAGNOSTICO", "TAMAÑO"
    ),
    Tipo = c(
      "Categórica", "Categórica", "Categórica",
      "Numérica", "Numérica", "Categórica", "Numérica", "Numérica"
    ),
    `Test estadístico` = c(
      "Chi-cuadrado", "Fisher", "Fisher",
      "Spearman", "Spearman", "Fisher", "Spearman", "Spearman"
    ),
    `p-valor` = c(
      "2.4e-07", "0.0005", "0.0005",
      "1.18e-06", "0.0003", "0.0152", "0.0109", "0.015"
    ),
    Asociación = c(
      "Fuerte", "Fuerte", "Fuerte",
      "Negativa (rho = -0.32)", "Negativa (rho = -0.24)", 
      "Positiva (OR ≈ 3.81)", "Negativa (rho = -0.17)", "Negativa (rho = -0.16)"
    )
  ),
  caption = "Tabla 1. Variables con asociación estadísticamente significativa con RCP.",
  align = "lcccl"
)
Tabla 1. Variables con asociación estadísticamente significativa con RCP.
Variable Tipo Test.estadístico p.valor Asociación
FENOTIPO_IHQ_CAT Categórica Chi-cuadrado 2.4e-07 Fuerte
HT_ADY_OK Categórica Fisher 0.0005 Fuerte
QT_CAT Categórica Fisher 0.0005 Fuerte
RE Numérica Spearman 1.18e-06 Negativa (rho = -0.32)
RP Numérica Spearman 0.0003 Negativa (rho = -0.24)
Ki67_CAT Categórica Fisher 0.0152 Positiva (OR ≈ 3.81)
EDAD_DIAGNOSTICO Numérica Spearman 0.0109 Negativa (rho = -0.17)
TAMAÑO Numérica Spearman 0.015 Negativa (rho = -0.16)
Código

kable(
  data.frame(
    Variable = c(
      "No_ANTIBIOTICOS_CAT", "TIPO_CIRUGIA", "ESTADIO_CAT", "Tn", 
      "Nx", "ESTADO_MENOPAUSICO", "GRADO_CAT", "HISTOLOGIA_CAT"
    ),
    Tipo = c(
      "Categórica", "Categórica", "Categórica", "Categórica", 
      "Categórica", "Categórica", "Categórica", "Categórica"
    ),
    `Test estadístico` = c(
      "Chi-cuadrado", "Fisher", "Chi-cuadrado", "Chi-cuadrado",
      "Fisher", "Fisher", "Chi-cuadrado", "Chi-cuadrado"
    ),
    `p-valor` = c(
      "1", "0.884", "0.560", "0.411", 
      "0.137", "0.103", "0.263", "0.195"
    ),
    Comentario = c(
      "Sin asociación alguna", "Muy baja asociación", "Baja", "Baja",
      "Baja", "Ligeramente no significativa", "No significativa", "No significativa"
    )
  ),
  caption = "Tabla 2. Variables sin asociación estadísticamente significativa con RCP.",
  align = "lcccl"
)
Tabla 2. Variables sin asociación estadísticamente significativa con RCP.
Variable Tipo Test.estadístico p.valor Comentario
No_ANTIBIOTICOS_CAT Categórica Chi-cuadrado 1 Sin asociación alguna
TIPO_CIRUGIA Categórica Fisher 0.884 Muy baja asociación
ESTADIO_CAT Categórica Chi-cuadrado 0.560 Baja
Tn Categórica Chi-cuadrado 0.411 Baja
Nx Categórica Fisher 0.137 Baja
ESTADO_MENOPAUSICO Categórica Fisher 0.103 Ligeramente no significativa
GRADO_CAT Categórica Chi-cuadrado 0.263 No significativa
HISTOLOGIA_CAT Categórica Chi-cuadrado 0.195 No significativa

Análisis multivariante

Se utilizarán métodos estadísticos avanzados para analizar cómo se relacionan varias variables entre sí y cuáles de ellas tienen mayor influencia sobre la probabilidad de que ocurra una respuesta completa patológica (RCP). En particular, se aplicará la regresión logística, una técnica que permite predecir la probabilidad de que ocurra un evento (en este caso, la RCP) a partir de otras variables. Luego, se evaluará la importancia de cada una de estas variables en el modelo, analizando factores como la significancia de los coeficientes (qué tan fuertes son las relaciones) y la calidad del modelo en general para ver cuán bien está prediciendo la RCP.

Explicación teórica

Con el objetivo de construir modelos que sean eficientes, interpretables y clínicamente relevantes, se implementarán técnicas de selección automática de variables. Estas técnicas permiten identificar un subconjunto óptimo de predictores basado en su contribución al modelo y a la explicación del evento RCP.

Técnicas de Selección Automática

Se utilizarán tres enfoques clásicos:

Selección hacia adelante (Forward Selection)

Parte de un modelo vacío e incorpora variables una por una, eligiendo en cada paso aquella que más mejora el modelo (según un criterio como AIC o BIC).

Ventaja: útil cuando hay muchas variables y se busca simplicidad.

Selección hacia atrás (Backward Elimination)

Parte de un modelo completo (con todas las variables) y elimina progresivamente las variables menos útiles.

Ventaja: considera la interacción total de las variables desde el inicio.

Selección bidireccional (Stepwise)

Combina ambos métodos: puede añadir o quitar variables en cada paso, dependiendo de si mejoran o no el modelo.

Ventaja: más flexible y generalmente logra modelos equilibrados.

Aplicación a Distintos Conjuntos de Variables

Para comprender cómo influyen las distintas variables en el modelo y validar el valor predictivo de la información seleccionada previamente, se aplicarán los métodos de selección automática a tres conjuntos de variables:

Modelo A: Variables Signficativas

Solo incluye aquellas variables que, en el análisis previo, mostraron una asociación estadísticamente significativa con `RCP`.

Objetivo: construir un modelo compacto y eficaz.

Modelo B: Variables no Significativas

Incluye únicamente las variables que no mostraron asociación estadística, pero se evaluará si pueden aportar valor en conjunto.

Objetivo: explorar posibles efectos combinados o no evidentes en análisis univariantes.

Modelo C: Todas las Variables

Considera todas las variables, independientemente de su significancia previa.

Objetivo: comparar el rendimiento del modelo global frente a los anteriores y verificar si hay variables descartadas prematuramente que son útiles.

Evaluación del Modelo

Cada modelo se evaluará en función de:

  • Criterios de información (AIC / BIC).

  • Calidad del ajuste (pseudo-R², estadísticos de bondad de ajuste).

  • Interpretabilidad clínica y parsimonia del modelo.

La comparación de los tres modelos permitirá determinar no solo qué variables resultan más útiles, sino también cómo influye la selección previa basada en pruebas de significancia en la calidad del modelo final.

Aplicación teórica

A continuación se dara la selección de variables para cada uno de los modelos predefinidos.

Modelo A: Variables significativas

Empezamos por la selección de variables:

Código
# FILTRADO DEL DATASET
significativas <- subset(dataset_recodificado, select = c(FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

significativas <- na.omit(significativas)

# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modA_forward <- stepAIC(mod_basico, direction = "forward", 
                      scope=list(lower=mod_basico,
                                 upper=~FENOTIPO_IHQ_CAT+HT_ADY_OK+QT_CAT+RE+ RP+Ki67_CAT+EDAD_DIAGNOSTICO+TAMAÑO))
## ```
##  Start:  AIC=291.57
## (RCP == "SI") * 1 ~ 1
## 
##                    Df Deviance    AIC
## + FENOTIPO_IHQ_CAT  2   257.47 263.47
## + QT_CAT            2   258.38 264.38
## + HT_ADY_OK         7   255.52 271.52
## + RE                1   268.18 272.18
## + RP                1   276.68 280.68
## + Ki67_CAT          1   282.35 286.35
## + TAMAÑO            1   283.67 287.67
## + EDAD_DIAGNOSTICO  4   278.73 288.73
## <none>                  289.57 291.57
## 
## Step:  AIC=263.47
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT
## 
##                    Df Deviance    AIC
## + HT_ADY_OK         7   221.21 241.21
## + RE                1   235.01 243.01
## + EDAD_DIAGNOSTICO  4   239.81 253.81
## + RP                1   247.03 255.03
## + TAMAÑO            1   251.92 259.92
## + Ki67_CAT          1   254.99 262.99
## <none>                  257.47 263.47
## + QT_CAT            2   254.13 264.13
## 
## Step:  AIC=241.21
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK
## 
##                    Df Deviance    AIC
## + TAMAÑO            1   210.08 232.08
## + EDAD_DIAGNOSTICO  4   209.54 237.54
## + RP                1   217.25 239.25
## + RE                1   219.01 241.01
## <none>                  221.21 241.21
## + Ki67_CAT          1   219.76 241.76
## + QT_CAT            2   218.97 242.97
## 
## Step:  AIC=232.08
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + TAMAÑO
## 
##                    Df Deviance    AIC
## + EDAD_DIAGNOSTICO  4   197.28 227.28
## + RP                1   205.47 229.47
## + RE                1   206.93 230.93
## + Ki67_CAT          1   207.24 231.24
## <none>                  210.08 232.08
## + QT_CAT            2   208.15 234.15
## 
## Step:  AIC=227.28
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + TAMAÑO + 
##     EDAD_DIAGNOSTICO
## 
##            Df Deviance    AIC
## + RP        1   191.62 223.62
## + Ki67_CAT  1   194.30 226.30
## + RE        1   194.44 226.44
## <none>          197.28 227.28
## + QT_CAT    2   195.32 229.32
## 
## Step:  AIC=223.62
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + TAMAÑO + 
##     EDAD_DIAGNOSTICO + RP
## 
##            Df Deviance    AIC
## + Ki67_CAT  1   188.84 222.84
## <none>          191.62 223.62
## + QT_CAT    2   188.62 224.62
## + RE        1   190.67 224.67
## 
## Step:  AIC=222.84
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + TAMAÑO + 
##     EDAD_DIAGNOSTICO + RP + Ki67_CAT
## 
##          Df Deviance    AIC
## <none>        188.84 222.84
## + RE      1   188.12 224.12
## + QT_CAT  2   186.33 224.33 
## ```
Código
# FILTRADO DEL DATASET
significativas <- subset(dataset_recodificado, select = c(FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

significativas <- na.omit(significativas)


# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modA_backward <- stepAIC(mod_completo, direction = "backward", 
                      scope=list(lower=mod_basico,upper=~FENOTIPO_IHQ_CAT+HT_ADY_OK+QT_CAT+RE+ RP+Ki67_CAT+EDAD_DIAGNOSTICO+TAMAÑO))
## ```
##  Start:  AIC=225.79
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + QT_CAT + RE + 
##     RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## - QT_CAT            2   188.12 224.12
## - RE                1   186.33 224.33
## <none>                  185.79 225.79
## - Ki67_CAT          1   187.96 225.96
## - HT_ADY_OK         7   201.17 227.17
## - RP                1   190.18 228.18
## - EDAD_DIAGNOSTICO  4   199.34 231.34
## - FENOTIPO_IHQ_CAT  2   197.09 233.09
## - TAMAÑO            1   200.65 238.65
## 
## Step:  AIC=224.13
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + RP + 
##     Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## - RE                1   188.84 222.84
## <none>                  188.12 224.12
## - Ki67_CAT          1   190.67 224.67
## - HT_ADY_OK         7   202.78 224.78
## - RP                1   191.87 225.87
## - EDAD_DIAGNOSTICO  4   201.56 229.56
## - TAMAÑO            1   203.44 237.44
## - FENOTIPO_IHQ_CAT  2   230.74 262.74
## 
## Step:  AIC=222.84
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + RP + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## <none>                  188.84 222.84
## - Ki67_CAT          1   191.62 223.62
## - RP                1   194.30 226.30
## - EDAD_DIAGNOSTICO  4   202.70 228.70
## - HT_ADY_OK         7   215.58 235.58
## - TAMAÑO            1   203.95 235.95
## - FENOTIPO_IHQ_CAT  2   232.16 262.15 
## ```
Código
# FILTRADO DEL DATASET
significativas <- subset(dataset_recodificado, select = c(FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

significativas <- na.omit(significativas)


# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modA_both <- stepAIC(mod_completo, direction = "both")
## ```
##  Start:  AIC=225.79
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + QT_CAT + RE + 
##     RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## - QT_CAT            2   188.12 224.12
## - RE                1   186.33 224.33
## <none>                  185.79 225.79
## - Ki67_CAT          1   187.96 225.96
## - HT_ADY_OK         7   201.17 227.17
## - RP                1   190.18 228.18
## - EDAD_DIAGNOSTICO  4   199.34 231.34
## - FENOTIPO_IHQ_CAT  2   197.09 233.09
## - TAMAÑO            1   200.65 238.65
## 
## Step:  AIC=224.13
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + RP + 
##     Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## - RE                1   188.84 222.84
## <none>                  188.12 224.12
## - Ki67_CAT          1   190.67 224.67
## - HT_ADY_OK         7   202.78 224.78
## + QT_CAT            2   185.79 225.79
## - RP                1   191.87 225.87
## - EDAD_DIAGNOSTICO  4   201.56 229.56
## - TAMAÑO            1   203.44 237.44
## - FENOTIPO_IHQ_CAT  2   230.74 262.74
## 
## Step:  AIC=222.84
## (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + RP + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                    Df Deviance    AIC
## <none>                  188.84 222.84
## - Ki67_CAT          1   191.62 223.62
## + RE                1   188.12 224.12
## + QT_CAT            2   186.33 224.33
## - RP                1   194.30 226.30
## - EDAD_DIAGNOSTICO  4   202.70 228.70
## - HT_ADY_OK         7   215.58 235.58
## - TAMAÑO            1   203.95 235.95
## - FENOTIPO_IHQ_CAT  2   232.16 262.15 
## ```

En cuanto al resumen de cada uno de los ajustes:

Código
summary(modA_forward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + 
##     TAMAÑO + EDAD_DIAGNOSTICO + RP + Ki67_CAT, family = binomial("logit"), 
##     data = significativas)
## 
## Coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   -1.26846    1.33911  -0.947
## FENOTIPO_IHQ_CATLUMINAL                       -1.07246    0.52602  -2.039
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO               -4.04226    0.83460  -4.843
## HT_ADY_OKANALOGOS-TAMOXIFENO                   0.09744    1.50824   0.065
## HT_ADY_OKHORMONOTERAPIA-CICLINAS               0.31380    1.54133   0.204
## HT_ADY_OKINHIBIDORES DE AROMATASA             -0.44483    1.04273  -0.427
## HT_ADY_OKNO                                    3.12890    1.29509   2.416
## HT_ADY_OKOLAPARIB                            -12.48066  882.74396  -0.014
## HT_ADY_OKTAMOXIFENO                            1.71905    0.96534   1.781
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA   0.13566    1.12572   0.121
## TAMAÑO                                        -0.79999    0.22201  -3.603
## EDAD_DIAGNOSTICO40-49                          0.06261    0.66214   0.095
## EDAD_DIAGNOSTICO50-59                         -1.32591    0.72721  -1.823
## EDAD_DIAGNOSTICO60-69                          0.41246    0.73753   0.559
## EDAD_DIAGNOSTICO70-79                         -1.16266    0.96387  -1.206
## RP                                            -0.58159    0.25887  -2.247
## Ki67_CAT>14                                    1.11994    0.70074   1.598
##                                              Pr(>|z|)    
## (Intercept)                                  0.343514    
## FENOTIPO_IHQ_CATLUMINAL                      0.041468 *  
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO              1.28e-06 ***
## HT_ADY_OKANALOGOS-TAMOXIFENO                 0.948486    
## HT_ADY_OKHORMONOTERAPIA-CICLINAS             0.838675    
## HT_ADY_OKINHIBIDORES DE AROMATASA            0.669666    
## HT_ADY_OKNO                                  0.015693 *  
## HT_ADY_OKOLAPARIB                            0.988719    
## HT_ADY_OKTAMOXIFENO                          0.074948 .  
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA 0.904082    
## TAMAÑO                                       0.000314 ***
## EDAD_DIAGNOSTICO40-49                        0.924669    
## EDAD_DIAGNOSTICO50-59                        0.068259 .  
## EDAD_DIAGNOSTICO60-69                        0.575990    
## EDAD_DIAGNOSTICO70-79                        0.227724    
## RP                                           0.024660 *  
## Ki67_CAT>14                                  0.109992    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 289.57  on 215  degrees of freedom
## Residual deviance: 188.84  on 199  degrees of freedom
## AIC: 222.84
## 
## Number of Fisher Scoring iterations: 13
##  
## ```
Código
summary(modA_backward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + 
##     RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO, family = binomial("logit"), 
##     data = significativas)
## 
## Coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   -1.26846    1.33911  -0.947
## FENOTIPO_IHQ_CATLUMINAL                       -1.07246    0.52602  -2.039
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO               -4.04226    0.83460  -4.843
## HT_ADY_OKANALOGOS-TAMOXIFENO                   0.09744    1.50824   0.065
## HT_ADY_OKHORMONOTERAPIA-CICLINAS               0.31380    1.54133   0.204
## HT_ADY_OKINHIBIDORES DE AROMATASA             -0.44483    1.04273  -0.427
## HT_ADY_OKNO                                    3.12890    1.29509   2.416
## HT_ADY_OKOLAPARIB                            -12.48066  882.74396  -0.014
## HT_ADY_OKTAMOXIFENO                            1.71905    0.96534   1.781
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA   0.13566    1.12572   0.121
## RP                                            -0.58159    0.25887  -2.247
## Ki67_CAT>14                                    1.11994    0.70074   1.598
## EDAD_DIAGNOSTICO40-49                          0.06261    0.66214   0.095
## EDAD_DIAGNOSTICO50-59                         -1.32591    0.72721  -1.823
## EDAD_DIAGNOSTICO60-69                          0.41246    0.73753   0.559
## EDAD_DIAGNOSTICO70-79                         -1.16266    0.96387  -1.206
## TAMAÑO                                        -0.79999    0.22201  -3.603
##                                              Pr(>|z|)    
## (Intercept)                                  0.343514    
## FENOTIPO_IHQ_CATLUMINAL                      0.041468 *  
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO              1.28e-06 ***
## HT_ADY_OKANALOGOS-TAMOXIFENO                 0.948486    
## HT_ADY_OKHORMONOTERAPIA-CICLINAS             0.838675    
## HT_ADY_OKINHIBIDORES DE AROMATASA            0.669666    
## HT_ADY_OKNO                                  0.015693 *  
## HT_ADY_OKOLAPARIB                            0.988719    
## HT_ADY_OKTAMOXIFENO                          0.074948 .  
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA 0.904082    
## RP                                           0.024660 *  
## Ki67_CAT>14                                  0.109992    
## EDAD_DIAGNOSTICO40-49                        0.924669    
## EDAD_DIAGNOSTICO50-59                        0.068259 .  
## EDAD_DIAGNOSTICO60-69                        0.575990    
## EDAD_DIAGNOSTICO70-79                        0.227724    
## TAMAÑO                                       0.000314 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 289.57  on 215  degrees of freedom
## Residual deviance: 188.84  on 199  degrees of freedom
## AIC: 222.84
## 
## Number of Fisher Scoring iterations: 13
##  
## ```
Código
summary(modA_both)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + 
##     RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO, family = binomial("logit"), 
##     data = significativas)
## 
## Coefficients:
##                                               Estimate Std. Error z value
## (Intercept)                                   -1.26846    1.33911  -0.947
## FENOTIPO_IHQ_CATLUMINAL                       -1.07246    0.52602  -2.039
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO               -4.04226    0.83460  -4.843
## HT_ADY_OKANALOGOS-TAMOXIFENO                   0.09744    1.50824   0.065
## HT_ADY_OKHORMONOTERAPIA-CICLINAS               0.31380    1.54133   0.204
## HT_ADY_OKINHIBIDORES DE AROMATASA             -0.44483    1.04273  -0.427
## HT_ADY_OKNO                                    3.12890    1.29509   2.416
## HT_ADY_OKOLAPARIB                            -12.48066  882.74396  -0.014
## HT_ADY_OKTAMOXIFENO                            1.71905    0.96534   1.781
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA   0.13566    1.12572   0.121
## RP                                            -0.58159    0.25887  -2.247
## Ki67_CAT>14                                    1.11994    0.70074   1.598
## EDAD_DIAGNOSTICO40-49                          0.06261    0.66214   0.095
## EDAD_DIAGNOSTICO50-59                         -1.32591    0.72721  -1.823
## EDAD_DIAGNOSTICO60-69                          0.41246    0.73753   0.559
## EDAD_DIAGNOSTICO70-79                         -1.16266    0.96387  -1.206
## TAMAÑO                                        -0.79999    0.22201  -3.603
##                                              Pr(>|z|)    
## (Intercept)                                  0.343514    
## FENOTIPO_IHQ_CATLUMINAL                      0.041468 *  
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO              1.28e-06 ***
## HT_ADY_OKANALOGOS-TAMOXIFENO                 0.948486    
## HT_ADY_OKHORMONOTERAPIA-CICLINAS             0.838675    
## HT_ADY_OKINHIBIDORES DE AROMATASA            0.669666    
## HT_ADY_OKNO                                  0.015693 *  
## HT_ADY_OKOLAPARIB                            0.988719    
## HT_ADY_OKTAMOXIFENO                          0.074948 .  
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA 0.904082    
## RP                                           0.024660 *  
## Ki67_CAT>14                                  0.109992    
## EDAD_DIAGNOSTICO40-49                        0.924669    
## EDAD_DIAGNOSTICO50-59                        0.068259 .  
## EDAD_DIAGNOSTICO60-69                        0.575990    
## EDAD_DIAGNOSTICO70-79                        0.227724    
## TAMAÑO                                       0.000314 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 289.57  on 215  degrees of freedom
## Residual deviance: 188.84  on 199  degrees of freedom
## AIC: 222.84
## 
## Number of Fisher Scoring iterations: 13
##  
## ```

Modelo B: Variables no Significativas

Empezamos por la selección de variables:

Código
# FILTRADO DEL DATASET
no_significativas <- subset(dataset_recodificado, select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO, GRADO_CAT, HISTOLOGIA_CAT, RCP))

no_significativas <- na.omit(no_significativas)

# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = no_significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = no_significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modB_forward <- stepAIC(mod_basico, direction = "forward", 
                      scope=list(lower=mod_basico,
                                 upper=~No_ANTIBIOTICOS_CAT+ TIPO_CIRUGIA+ ESTADIO_CAT+ Tn+ Nx+ ESTADO_MENOPAUSICO+ GRADO_CAT+ HISTOLOGIA_CAT))
## ```
##  Start:  AIC=122.57
## (RCP == "SI") * 1 ~ 1
## 
##                       Df Deviance    AIC
## + GRADO_CAT            1   116.38 120.38
## <none>                     120.57 122.57
## + HISTOLOGIA_CAT       1   120.31 124.31
## + TIPO_CIRUGIA         1   120.50 124.50
## + No_ANTIBIOTICOS_CAT  1   120.56 124.56
## + ESTADO_MENOPAUSICO   1   120.57 124.57
## + Tn                   3   117.36 125.36
## + Nx                   3   117.44 125.44
## + ESTADIO_CAT          2   120.00 126.00
## 
## Step:  AIC=120.38
## (RCP == "SI") * 1 ~ GRADO_CAT
## 
##                       Df Deviance    AIC
## <none>                     116.38 120.38
## + TIPO_CIRUGIA         1   116.16 122.16
## + No_ANTIBIOTICOS_CAT  1   116.29 122.29
## + HISTOLOGIA_CAT       1   116.31 122.31
## + ESTADO_MENOPAUSICO   1   116.38 122.38
## + Tn                   3   112.91 122.91
## + ESTADIO_CAT          2   115.39 123.39
## + Nx                   3   113.75 123.75 
## ```
Código
# FILTRADO DEL DATASET
no_significativas <- subset(dataset_recodificado, select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO, GRADO_CAT, HISTOLOGIA_CAT, RCP))

no_significativas <- na.omit(no_significativas)


# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = no_significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = no_significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modB_backward <- stepAIC(mod_completo, direction = "backward", 
                      scope=list(lower=mod_basico,
                                 upper=~No_ANTIBIOTICOS_CAT+ TIPO_CIRUGIA+ ESTADIO_CAT+ Tn+ Nx+ ESTADO_MENOPAUSICO+ GRADO_CAT+ HISTOLOGIA_CAT))
## ```
##  Start:  AIC=134.14
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT
## 
##                       Df Deviance    AIC
## - Tn                   3   108.06 130.06
## - ESTADIO_CAT          2   108.12 132.12
## - HISTOLOGIA_CAT       1   106.17 132.17
## - TIPO_CIRUGIA         1   106.18 132.18
## - No_ANTIBIOTICOS_CAT  1   106.24 132.24
## - ESTADO_MENOPAUSICO   1   106.30 132.30
## - Nx                   3   111.63 133.63
## <none>                     106.14 134.14
## - GRADO_CAT            1   110.12 136.12
## 
## Step:  AIC=130.06
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT
## 
##                       Df Deviance    AIC
## - No_ANTIBIOTICOS_CAT  1   108.09 128.09
## - HISTOLOGIA_CAT       1   108.12 128.12
## - TIPO_CIRUGIA         1   108.15 128.15
## - ESTADO_MENOPAUSICO   1   108.24 128.24
## <none>                     108.06 130.06
## - Nx                   3   114.72 130.72
## - ESTADIO_CAT          2   113.71 131.71
## - GRADO_CAT            1   112.79 132.79
## 
## Step:  AIC=128.09
## (RCP == "SI") * 1 ~ TIPO_CIRUGIA + ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + 
##     GRADO_CAT + HISTOLOGIA_CAT
## 
##                      Df Deviance    AIC
## - HISTOLOGIA_CAT      1   108.15 126.15
## - TIPO_CIRUGIA        1   108.20 126.20
## - ESTADO_MENOPAUSICO  1   108.28 126.28
## <none>                    108.09 128.09
## - Nx                  3   114.90 128.90
## - ESTADIO_CAT         2   113.71 129.71
## - GRADO_CAT           1   113.16 131.16
## 
## Step:  AIC=126.15
## (RCP == "SI") * 1 ~ TIPO_CIRUGIA + ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + 
##     GRADO_CAT
## 
##                      Df Deviance    AIC
## - TIPO_CIRUGIA        1   108.24 124.24
## - ESTADO_MENOPAUSICO  1   108.33 124.33
## <none>                    108.15 126.15
## - Nx                  3   114.93 126.93
## - ESTADIO_CAT         2   113.72 127.72
## - GRADO_CAT           1   113.16 129.16
## 
## Step:  AIC=124.24
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT
## 
##                      Df Deviance    AIC
## - ESTADO_MENOPAUSICO  1   108.42 122.42
## <none>                    108.24 124.24
## - Nx                  3   115.37 125.37
## - ESTADIO_CAT         2   113.72 125.72
## - GRADO_CAT           1   113.16 127.16
## 
## Step:  AIC=122.42
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT
## 
##               Df Deviance    AIC
## <none>             108.42 122.42
## - Nx           3   115.39 123.39
## - ESTADIO_CAT  2   113.75 123.75
## - GRADO_CAT    1   113.34 125.34 
## ```
Código
# FILTRADO DEL DATASET
no_significativas <- subset(dataset_recodificado, select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO, GRADO_CAT, HISTOLOGIA_CAT, RCP))

no_significativas <- na.omit(no_significativas)


# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = no_significativas, 
                    family = binomial("logit"))
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = no_significativas, 
                  family = binomial("logit"))

# APLICACIÓN DEL AJUSTE
modB_both <- stepAIC(mod_completo, direction = "both")
## ```
##  Start:  AIC=134.14
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT
## 
##                       Df Deviance    AIC
## - Tn                   3   108.06 130.06
## - ESTADIO_CAT          2   108.12 132.12
## - HISTOLOGIA_CAT       1   106.17 132.17
## - TIPO_CIRUGIA         1   106.18 132.18
## - No_ANTIBIOTICOS_CAT  1   106.24 132.24
## - ESTADO_MENOPAUSICO   1   106.30 132.30
## - Nx                   3   111.63 133.63
## <none>                     106.14 134.14
## - GRADO_CAT            1   110.12 136.12
## 
## Step:  AIC=130.06
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT
## 
##                       Df Deviance    AIC
## - No_ANTIBIOTICOS_CAT  1   108.09 128.09
## - HISTOLOGIA_CAT       1   108.12 128.12
## - TIPO_CIRUGIA         1   108.15 128.15
## - ESTADO_MENOPAUSICO   1   108.24 128.24
## <none>                     108.06 130.06
## - Nx                   3   114.72 130.72
## - ESTADIO_CAT          2   113.71 131.71
## - GRADO_CAT            1   112.79 132.79
## + Tn                   3   106.14 134.14
## 
## Step:  AIC=128.09
## (RCP == "SI") * 1 ~ TIPO_CIRUGIA + ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + 
##     GRADO_CAT + HISTOLOGIA_CAT
## 
##                       Df Deviance    AIC
## - HISTOLOGIA_CAT       1   108.15 126.15
## - TIPO_CIRUGIA         1   108.20 126.20
## - ESTADO_MENOPAUSICO   1   108.28 126.28
## <none>                     108.09 128.09
## - Nx                   3   114.90 128.90
## - ESTADIO_CAT          2   113.71 129.71
## + No_ANTIBIOTICOS_CAT  1   108.06 130.06
## - GRADO_CAT            1   113.16 131.16
## + Tn                   3   106.24 132.24
## 
## Step:  AIC=126.15
## (RCP == "SI") * 1 ~ TIPO_CIRUGIA + ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + 
##     GRADO_CAT
## 
##                       Df Deviance    AIC
## - TIPO_CIRUGIA         1   108.24 124.24
## - ESTADO_MENOPAUSICO   1   108.33 124.33
## <none>                     108.15 126.15
## - Nx                   3   114.93 126.93
## - ESTADIO_CAT          2   113.72 127.72
## + HISTOLOGIA_CAT       1   108.09 128.09
## + No_ANTIBIOTICOS_CAT  1   108.12 128.12
## - GRADO_CAT            1   113.16 129.16
## + Tn                   3   106.26 130.26
## 
## Step:  AIC=124.24
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT
## 
##                       Df Deviance    AIC
## - ESTADO_MENOPAUSICO   1   108.42 122.42
## <none>                     108.24 124.24
## - Nx                   3   115.37 125.37
## - ESTADIO_CAT          2   113.72 125.72
## + TIPO_CIRUGIA         1   108.15 126.15
## + No_ANTIBIOTICOS_CAT  1   108.19 126.19
## + HISTOLOGIA_CAT       1   108.20 126.20
## - GRADO_CAT            1   113.16 127.16
## + Tn                   3   106.31 128.31
## 
## Step:  AIC=122.42
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT
## 
##                       Df Deviance    AIC
## <none>                     108.42 122.42
## - Nx                   3   115.39 123.39
## - ESTADIO_CAT          2   113.75 123.75
## + ESTADO_MENOPAUSICO   1   108.24 124.24
## + TIPO_CIRUGIA         1   108.33 124.33
## + No_ANTIBIOTICOS_CAT  1   108.36 124.36
## + HISTOLOGIA_CAT       1   108.39 124.39
## - GRADO_CAT            1   113.34 125.34
## + Tn                   3   106.48 126.48 
## ```

En cuanto al resumen de cada uno de los ajustes:

Código
summary(modB_forward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ GRADO_CAT, family = binomial("logit"), 
##     data = no_significativas)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -1.1939     0.3610  -3.307 0.000941 ***
## GRADO_CAT3    0.9177     0.4585   2.001 0.045352 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 120.57  on 93  degrees of freedom
## Residual deviance: 116.38  on 92  degrees of freedom
## AIC: 120.38
## 
## Number of Fisher Scoring iterations: 4
##  
## ```
Código
summary(modB_backward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT, 
##     family = binomial("logit"), data = no_significativas)
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)  
## (Intercept)      -0.5314     1.0647  -0.499   0.6177  
## ESTADIO_CATII    -0.5426     1.1037  -0.492   0.6230  
## ESTADIO_CATIII    1.3673     1.3925   0.982   0.3261  
## Nx1              -0.6856     0.5409  -1.267   0.2050  
## Nx2              -2.4453     1.1577  -2.112   0.0347 *
## Nx3             -17.9886  1630.3719  -0.011   0.9912  
## GRADO_CAT3        1.0628     0.4951   2.147   0.0318 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 120.57  on 93  degrees of freedom
## Residual deviance: 108.42  on 87  degrees of freedom
## AIC: 122.42
## 
## Number of Fisher Scoring iterations: 15
##  
## ```
Código
summary(modB_both)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT, 
##     family = binomial("logit"), data = no_significativas)
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)  
## (Intercept)      -0.5314     1.0647  -0.499   0.6177  
## ESTADIO_CATII    -0.5426     1.1037  -0.492   0.6230  
## ESTADIO_CATIII    1.3673     1.3925   0.982   0.3261  
## Nx1              -0.6856     0.5409  -1.267   0.2050  
## Nx2              -2.4453     1.1577  -2.112   0.0347 *
## Nx3             -17.9886  1630.3719  -0.011   0.9912  
## GRADO_CAT3        1.0628     0.4951   2.147   0.0318 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 120.57  on 93  degrees of freedom
## Residual deviance: 108.42  on 87  degrees of freedom
## AIC: 122.42
## 
## Number of Fisher Scoring iterations: 15
##  
## ```

Modelo C: Todas las Variables

Empezamos por la selección de variables:

Código
# FILTRADO DEL DATASET 
mixtas <- subset(dataset_recodificado, 
                 select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO,
                            GRADO_CAT, HISTOLOGIA_CAT, FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, 
                            RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

mixtas <- na.omit(mixtas) 

# CREACION DE MODELOS 
mod_completo <- glm((RCP=="SI")*1 ~ ., data = mixtas,family = binomial("logit")) 
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = mixtas,family = binomial("logit"))  

# APLICACIÓN DEL AJUSTE 
modC_forward <- stepAIC(mod_basico, direction = "forward",                        scope=list(lower=mod_basico,upper=~FENOTIPO_IHQ_CAT+HT_ADY_OK+QT_CAT+RE+ RP+Ki67_CAT+EDAD_DIAGNOSTICO+TAMAÑO+ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA+ ESTADIO_CAT+Tn + Nx+  ESTADO_MENOPAUSICO+  GRADO_CAT+ HISTOLOGIA_CAT))
## ```
##  Start:  AIC=121.73
## (RCP == "SI") * 1 ~ 1
## 
##                       Df Deviance    AIC
## + RE                   1   108.06 112.06
## + Ki67_CAT             1   110.67 114.67
## + QT_CAT               2   110.88 116.88
## + FENOTIPO_IHQ_CAT     2   111.63 117.63
## + HT_ADY_OK            6   103.63 117.63
## + GRADO_CAT            1   115.23 119.23
## + RP                   1   116.23 120.23
## <none>                     119.73 121.73
## + TAMAÑO               1   119.43 123.43
## + HISTOLOGIA_CAT       1   119.44 123.44
## + EDAD_DIAGNOSTICO     4   113.56 123.56
## + TIPO_CIRUGIA         1   119.63 123.63
## + No_ANTIBIOTICOS_CAT  1   119.71 123.71
## + ESTADO_MENOPAUSICO   1   119.73 123.73
## + Tn                   3   116.06 124.06
## + ESTADIO_CAT          2   118.27 124.27
## + Nx                   3   116.34 124.34
## 
## Step:  AIC=112.06
## (RCP == "SI") * 1 ~ RE
## 
##                       Df Deviance    AIC
## + QT_CAT               2    99.41 107.41
## + FENOTIPO_IHQ_CAT     2   100.26 108.26
## + Ki67_CAT             1   103.35 109.35
## <none>                     108.06 112.06
## + GRADO_CAT            1   107.25 113.25
## + HISTOLOGIA_CAT       1   107.69 113.69
## + No_ANTIBIOTICOS_CAT  1   108.00 114.00
## + TAMAÑO               1   108.03 114.03
## + TIPO_CIRUGIA         1   108.03 114.03
## + ESTADO_MENOPAUSICO   1   108.06 114.06
## + RP                   1   108.06 114.06
## + EDAD_DIAGNOSTICO     4   102.88 114.88
## + ESTADIO_CAT          2   106.99 114.99
## + Tn                   3   105.10 115.10
## + Nx                   3   105.32 115.32
## + HT_ADY_OK            6   103.11 119.11
## 
## Step:  AIC=107.41
## (RCP == "SI") * 1 ~ RE + QT_CAT
## 
##                       Df Deviance    AIC
## + Ki67_CAT             1   96.899 106.90
## <none>                     99.410 107.41
## + EDAD_DIAGNOSTICO     4   92.463 108.46
## + No_ANTIBIOTICOS_CAT  1   99.117 109.12
## + HISTOLOGIA_CAT       1   99.156 109.16
## + TAMAÑO               1   99.168 109.17
## + TIPO_CIRUGIA         1   99.193 109.19
## + GRADO_CAT            1   99.253 109.25
## + RP                   1   99.295 109.30
## + ESTADO_MENOPAUSICO   1   99.391 109.39
## + FENOTIPO_IHQ_CAT     2   98.129 110.13
## + ESTADIO_CAT          2   98.705 110.70
## + Nx                   3   97.089 111.09
## + Tn                   3   97.178 111.18
## + HT_ADY_OK            6   93.403 113.40
## 
## Step:  AIC=106.9
## (RCP == "SI") * 1 ~ RE + QT_CAT + Ki67_CAT
## 
##                       Df Deviance    AIC
## <none>                     96.899 106.90
## + EDAD_DIAGNOSTICO     4   89.002 107.00
## + TAMAÑO               1   96.507 108.51
## + TIPO_CIRUGIA         1   96.590 108.59
## + No_ANTIBIOTICOS_CAT  1   96.620 108.62
## + RP                   1   96.681 108.68
## + HISTOLOGIA_CAT       1   96.745 108.75
## + ESTADO_MENOPAUSICO   1   96.841 108.84
## + GRADO_CAT            1   96.850 108.85
## + FENOTIPO_IHQ_CAT     2   94.982 108.98
## + Tn                   3   93.273 109.27
## + ESTADIO_CAT          2   96.045 110.05
## + Nx                   3   94.606 110.61
## + HT_ADY_OK            6   92.097 114.10 
## ```
Código
# FILTRADO DEL DATASET 
mixtas <- subset(dataset_recodificado, 
                 select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO,
                            GRADO_CAT, HISTOLOGIA_CAT, FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, 
                            RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

mixtas <- na.omit(mixtas)
# CREACION DE MODELOS
mod_completo <- glm((RCP=="SI")*1 ~ ., data = mixtas,family = binomial("logit")) 
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = mixtas,family = binomial("logit"))  
# APLICACIÓN DEL AJUSTE 
modC_backward <- stepAIC(mod_completo, direction = "backward",                        scope=list(lower=mod_basico,upper=~FENOTIPO_IHQ_CAT+HT_ADY_OK+QT_CAT+RE+ RP+Ki67_CAT+EDAD_DIAGNOSTICO+TAMAÑO+ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA+ ESTADIO_CAT+Tn + Nx+  ESTADO_MENOPAUSICO+  GRADO_CAT+ HISTOLOGIA_CAT))
## ```
##  Start:  AIC=122.82
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + QT_CAT + RE + RP + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - QT_CAT               2   59.854 119.85
## - FENOTIPO_IHQ_CAT     2   60.349 120.35
## - TIPO_CIRUGIA         1   58.970 120.97
## - Tn                   3   62.980 120.98
## - HISTOLOGIA_CAT       1   59.033 121.03
## - GRADO_CAT            1   59.442 121.44
## - No_ANTIBIOTICOS_CAT  1   59.604 121.60
## - RP                   1   59.847 121.85
## - TAMAÑO               1   60.142 122.14
## - RE                   1   60.683 122.68
## <none>                     58.822 122.82
## - HT_ADY_OK            6   71.476 123.48
## - Nx                   3   67.293 125.29
## - ESTADIO_CAT          2   65.755 125.75
## - EDAD_DIAGNOSTICO     4   70.061 126.06
## - ESTADO_MENOPAUSICO   1   65.187 127.19
## - Ki67_CAT             1   65.521 127.52
## 
## Step:  AIC=119.85
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + RP + Ki67_CAT + EDAD_DIAGNOSTICO + 
##     TAMAÑO
## 
##                       Df Deviance    AIC
## - Tn                   3   63.818 117.82
## - TIPO_CIRUGIA         1   59.955 117.95
## - No_ANTIBIOTICOS_CAT  1   60.221 118.22
## - RP                   1   60.773 118.77
## - TAMAÑO               1   61.058 119.06
## - HISTOLOGIA_CAT       1   61.158 119.16
## - GRADO_CAT            1   61.363 119.36
## - RE                   1   61.586 119.59
## <none>                     59.854 119.85
## - HT_ADY_OK            6   72.214 120.21
## - Nx                   3   68.436 122.44
## - ESTADIO_CAT          2   66.984 122.98
## - EDAD_DIAGNOSTICO     4   71.062 123.06
## - ESTADO_MENOPAUSICO   1   66.745 124.75
## - Ki67_CAT             1   67.526 125.53
## - FENOTIPO_IHQ_CAT     2   72.466 128.47
## 
## Step:  AIC=117.82
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - RP                   1   63.963 115.96
## - TIPO_CIRUGIA         1   63.970 115.97
## - No_ANTIBIOTICOS_CAT  1   64.043 116.04
## - HISTOLOGIA_CAT       1   64.559 116.56
## - RE                   1   64.638 116.64
## - EDAD_DIAGNOSTICO     4   71.511 117.51
## - HT_ADY_OK            6   75.764 117.76
## <none>                     63.818 117.82
## - GRADO_CAT            1   66.051 118.05
## - ESTADO_MENOPAUSICO   1   67.666 119.67
## - Nx                   3   72.314 120.31
## - Ki67_CAT             1   68.401 120.40
## - TAMAÑO               1   70.810 122.81
## - ESTADIO_CAT          2   73.244 123.24
## - FENOTIPO_IHQ_CAT     2   79.699 129.70
## 
## Step:  AIC=115.96
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - TIPO_CIRUGIA         1   64.096 114.10
## - No_ANTIBIOTICOS_CAT  1   64.116 114.12
## - RE                   1   64.638 114.64
## - HISTOLOGIA_CAT       1   64.736 114.74
## - EDAD_DIAGNOSTICO     4   71.616 115.62
## <none>                     63.963 115.96
## - GRADO_CAT            1   66.085 116.08
## - HT_ADY_OK            6   76.231 116.23
## - ESTADO_MENOPAUSICO   1   67.695 117.69
## - Nx                   3   72.529 118.53
## - Ki67_CAT             1   68.559 118.56
## - TAMAÑO               1   70.918 120.92
## - ESTADIO_CAT          2   73.512 121.51
## - FENOTIPO_IHQ_CAT     2   79.770 127.77
## 
## Step:  AIC=114.1
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + ESTADIO_CAT + Nx + 
##     ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - No_ANTIBIOTICOS_CAT  1   64.353 112.35
## - RE                   1   64.679 112.68
## - HISTOLOGIA_CAT       1   65.076 113.08
## - EDAD_DIAGNOSTICO     4   71.939 113.94
## - GRADO_CAT            1   66.086 114.09
## <none>                     64.096 114.10
## - HT_ADY_OK            6   76.376 114.38
## - ESTADO_MENOPAUSICO   1   67.846 115.85
## - Ki67_CAT             1   68.575 116.58
## - Nx                   3   73.169 117.17
## - TAMAÑO               1   71.185 119.19
## - ESTADIO_CAT          2   73.530 119.53
## - FENOTIPO_IHQ_CAT     2   79.855 125.86
## 
## Step:  AIC=112.35
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                      Df Deviance    AIC
## - RE                  1   64.911 110.91
## - HISTOLOGIA_CAT      1   65.347 111.35
## <none>                    64.353 112.35
## - GRADO_CAT           1   66.356 112.36
## - HT_ADY_OK           6   76.376 112.38
## - EDAD_DIAGNOSTICO    4   72.659 112.66
## - ESTADO_MENOPAUSICO  1   68.081 114.08
## - Ki67_CAT            1   68.605 114.61
## - Nx                  3   73.205 115.20
## - TAMAÑO              1   71.307 117.31
## - ESTADIO_CAT         2   73.531 117.53
## - FENOTIPO_IHQ_CAT    2   79.902 123.90
## 
## Step:  AIC=110.91
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                      Df Deviance    AIC
## - HISTOLOGIA_CAT      1   65.815 109.81
## - GRADO_CAT           1   66.772 110.77
## <none>                    64.911 110.91
## - EDAD_DIAGNOSTICO    4   72.990 110.99
## - ESTADO_MENOPAUSICO  1   68.490 112.49
## - Ki67_CAT            1   68.909 112.91
## - Nx                  3   73.212 113.21
## - TAMAÑO              1   71.411 115.41
## - ESTADIO_CAT         2   73.531 115.53
## - HT_ADY_OK           6   82.095 116.09
## - FENOTIPO_IHQ_CAT    2   79.940 121.94
## 
## Step:  AIC=109.81
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + EDAD_DIAGNOSTICO + 
##     TAMAÑO
## 
##                      Df Deviance    AIC
## - EDAD_DIAGNOSTICO    4   73.033 109.03
## <none>                    65.815 109.81
## - GRADO_CAT           1   68.251 110.25
## - ESTADO_MENOPAUSICO  1   68.946 110.95
## - Ki67_CAT            1   69.444 111.44
## - Nx                  3   75.774 113.77
## - TAMAÑO              1   72.185 114.19
## - HT_ADY_OK           6   82.990 114.99
## - ESTADIO_CAT         2   75.076 115.08
## - FENOTIPO_IHQ_CAT    2   81.444 121.44
## 
## Step:  AIC=109.03
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO
## 
##                      Df Deviance    AIC
## - ESTADO_MENOPAUSICO  1   73.893 107.89
## <none>                    73.033 109.03
## - GRADO_CAT           1   75.733 109.73
## - Ki67_CAT            1   76.849 110.85
## - TAMAÑO              1   77.746 111.75
## - Nx                  3   83.713 113.71
## - ESTADIO_CAT         2   83.440 115.44
## - HT_ADY_OK           6   91.473 115.47
## - FENOTIPO_IHQ_CAT    2   89.241 121.24
## 
## Step:  AIC=107.89
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + Ki67_CAT + TAMAÑO
## 
##                    Df Deviance    AIC
## <none>                  73.893 107.89
## - GRADO_CAT         1   76.360 108.36
## - Ki67_CAT          1   77.590 109.59
## - TAMAÑO            1   78.471 110.47
## - Nx                3   85.441 113.44
## - HT_ADY_OK         6   91.657 113.66
## - ESTADIO_CAT       2   84.722 114.72
## - FENOTIPO_IHQ_CAT  2   89.656 119.66 
## ```
Código
mixtas <- subset(dataset_recodificado, 
                 select = c(No_ANTIBIOTICOS_CAT, TIPO_CIRUGIA, ESTADIO_CAT, Tn, Nx, ESTADO_MENOPAUSICO,
                            GRADO_CAT, HISTOLOGIA_CAT, FENOTIPO_IHQ_CAT, HT_ADY_OK, QT_CAT, RE, 
                            RP, Ki67_CAT, EDAD_DIAGNOSTICO, TAMAÑO, RCP))

mixtas <- na.omit(mixtas)  
# CREACION DE MODELOS 
mod_completo <- glm((RCP=="SI")*1 ~ ., data = mixtas, family = binomial("logit")) 
mod_basico <- glm((RCP=="SI")*1 ~ 1, data = mixtas, family = binomial("logit"))  
# APLICACIÓN DEL AJUSTE
modC_both <- stepAIC(mod_completo, direction = "both")
## ```
##  Start:  AIC=122.82
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + QT_CAT + RE + RP + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - QT_CAT               2   59.854 119.85
## - FENOTIPO_IHQ_CAT     2   60.349 120.35
## - TIPO_CIRUGIA         1   58.970 120.97
## - Tn                   3   62.980 120.98
## - HISTOLOGIA_CAT       1   59.033 121.03
## - GRADO_CAT            1   59.442 121.44
## - No_ANTIBIOTICOS_CAT  1   59.604 121.60
## - RP                   1   59.847 121.85
## - TAMAÑO               1   60.142 122.14
## - RE                   1   60.683 122.68
## <none>                     58.822 122.82
## - HT_ADY_OK            6   71.476 123.48
## - Nx                   3   67.293 125.29
## - ESTADIO_CAT          2   65.755 125.75
## - EDAD_DIAGNOSTICO     4   70.061 126.06
## - ESTADO_MENOPAUSICO   1   65.187 127.19
## - Ki67_CAT             1   65.521 127.52
## 
## Step:  AIC=119.85
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Tn + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + RP + Ki67_CAT + EDAD_DIAGNOSTICO + 
##     TAMAÑO
## 
##                       Df Deviance    AIC
## - Tn                   3   63.818 117.82
## - TIPO_CIRUGIA         1   59.955 117.95
## - No_ANTIBIOTICOS_CAT  1   60.221 118.22
## - RP                   1   60.773 118.77
## - TAMAÑO               1   61.058 119.06
## - HISTOLOGIA_CAT       1   61.158 119.16
## - GRADO_CAT            1   61.363 119.36
## - RE                   1   61.586 119.59
## <none>                     59.854 119.85
## - HT_ADY_OK            6   72.214 120.21
## - Nx                   3   68.436 122.44
## + QT_CAT               2   58.822 122.82
## - ESTADIO_CAT          2   66.984 122.98
## - EDAD_DIAGNOSTICO     4   71.062 123.06
## - ESTADO_MENOPAUSICO   1   66.745 124.75
## - Ki67_CAT             1   67.526 125.53
## - FENOTIPO_IHQ_CAT     2   72.466 128.47
## 
## Step:  AIC=117.82
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + RP + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - RP                   1   63.963 115.96
## - TIPO_CIRUGIA         1   63.970 115.97
## - No_ANTIBIOTICOS_CAT  1   64.043 116.04
## - HISTOLOGIA_CAT       1   64.559 116.56
## - RE                   1   64.638 116.64
## - EDAD_DIAGNOSTICO     4   71.511 117.51
## - HT_ADY_OK            6   75.764 117.76
## <none>                     63.818 117.82
## - GRADO_CAT            1   66.051 118.05
## - ESTADO_MENOPAUSICO   1   67.666 119.67
## + Tn                   3   59.854 119.85
## - Nx                   3   72.314 120.31
## - Ki67_CAT             1   68.401 120.40
## + QT_CAT               2   62.980 120.98
## - TAMAÑO               1   70.810 122.81
## - ESTADIO_CAT          2   73.244 123.24
## - FENOTIPO_IHQ_CAT     2   79.699 129.70
## 
## Step:  AIC=115.96
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + TIPO_CIRUGIA + ESTADIO_CAT + 
##     Nx + ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - TIPO_CIRUGIA         1   64.096 114.10
## - No_ANTIBIOTICOS_CAT  1   64.116 114.12
## - RE                   1   64.638 114.64
## - HISTOLOGIA_CAT       1   64.736 114.74
## - EDAD_DIAGNOSTICO     4   71.616 115.62
## <none>                     63.963 115.96
## - GRADO_CAT            1   66.085 116.08
## - HT_ADY_OK            6   76.231 116.23
## - ESTADO_MENOPAUSICO   1   67.695 117.69
## + RP                   1   63.818 117.82
## - Nx                   3   72.529 118.53
## - Ki67_CAT             1   68.559 118.56
## + Tn                   3   60.773 118.77
## + QT_CAT               2   63.141 119.14
## - TAMAÑO               1   70.918 120.92
## - ESTADIO_CAT          2   73.512 121.51
## - FENOTIPO_IHQ_CAT     2   79.770 127.77
## 
## Step:  AIC=114.1
## (RCP == "SI") * 1 ~ No_ANTIBIOTICOS_CAT + ESTADIO_CAT + Nx + 
##     ESTADO_MENOPAUSICO + GRADO_CAT + HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + RE + Ki67_CAT + EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - No_ANTIBIOTICOS_CAT  1   64.353 112.35
## - RE                   1   64.679 112.68
## - HISTOLOGIA_CAT       1   65.076 113.08
## - EDAD_DIAGNOSTICO     4   71.939 113.94
## - GRADO_CAT            1   66.086 114.09
## <none>                     64.096 114.10
## - HT_ADY_OK            6   76.376 114.38
## - ESTADO_MENOPAUSICO   1   67.846 115.85
## + TIPO_CIRUGIA         1   63.963 115.96
## + RP                   1   63.970 115.97
## - Ki67_CAT             1   68.575 116.58
## + Tn                   3   60.827 116.83
## - Nx                   3   73.169 117.17
## + QT_CAT               2   63.279 117.28
## - TAMAÑO               1   71.185 119.19
## - ESTADIO_CAT          2   73.530 119.53
## - FENOTIPO_IHQ_CAT     2   79.855 125.86
## 
## Step:  AIC=112.35
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + RE + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - RE                   1   64.911 110.91
## - HISTOLOGIA_CAT       1   65.347 111.35
## <none>                     64.353 112.35
## - GRADO_CAT            1   66.356 112.36
## - HT_ADY_OK            6   76.376 112.38
## - EDAD_DIAGNOSTICO     4   72.659 112.66
## - ESTADO_MENOPAUSICO   1   68.081 114.08
## + No_ANTIBIOTICOS_CAT  1   64.096 114.10
## + TIPO_CIRUGIA         1   64.116 114.12
## + RP                   1   64.315 114.31
## - Ki67_CAT             1   68.605 114.61
## + Tn                   3   61.029 115.03
## - Nx                   3   73.205 115.20
## + QT_CAT               2   63.824 115.82
## - TAMAÑO               1   71.307 117.31
## - ESTADIO_CAT          2   73.531 117.53
## - FENOTIPO_IHQ_CAT     2   79.902 123.90
## 
## Step:  AIC=110.91
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     HISTOLOGIA_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + 
##     EDAD_DIAGNOSTICO + TAMAÑO
## 
##                       Df Deviance    AIC
## - HISTOLOGIA_CAT       1   65.815 109.81
## - GRADO_CAT            1   66.772 110.77
## <none>                     64.911 110.91
## - EDAD_DIAGNOSTICO     4   72.990 110.99
## + RE                   1   64.353 112.35
## - ESTADO_MENOPAUSICO   1   68.490 112.49
## + No_ANTIBIOTICOS_CAT  1   64.679 112.68
## + TIPO_CIRUGIA         1   64.809 112.81
## + RP                   1   64.896 112.90
## - Ki67_CAT             1   68.909 112.91
## - Nx                   3   73.212 113.21
## + Tn                   3   61.893 113.89
## + QT_CAT               2   64.378 114.38
## - TAMAÑO               1   71.411 115.41
## - ESTADIO_CAT          2   73.531 115.53
## - HT_ADY_OK            6   82.095 116.09
## - FENOTIPO_IHQ_CAT     2   79.940 121.94
## 
## Step:  AIC=109.81
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + EDAD_DIAGNOSTICO + 
##     TAMAÑO
## 
##                       Df Deviance    AIC
## - EDAD_DIAGNOSTICO     4   73.033 109.03
## <none>                     65.815 109.81
## - GRADO_CAT            1   68.251 110.25
## + HISTOLOGIA_CAT       1   64.911 110.91
## - ESTADO_MENOPAUSICO   1   68.946 110.95
## + RE                   1   65.347 111.35
## - Ki67_CAT             1   69.444 111.44
## + TIPO_CIRUGIA         1   65.544 111.54
## + No_ANTIBIOTICOS_CAT  1   65.562 111.56
## + RP                   1   65.810 111.81
## + QT_CAT               2   64.674 112.67
## + Tn                   3   63.238 113.24
## - Nx                   3   75.774 113.77
## - TAMAÑO               1   72.185 114.19
## - HT_ADY_OK            6   82.990 114.99
## - ESTADIO_CAT          2   75.076 115.08
## - FENOTIPO_IHQ_CAT     2   81.444 121.44
## 
## Step:  AIC=109.03
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + ESTADO_MENOPAUSICO + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO
## 
##                       Df Deviance    AIC
## - ESTADO_MENOPAUSICO   1   73.893 107.89
## <none>                     73.033 109.03
## - GRADO_CAT            1   75.733 109.73
## + EDAD_DIAGNOSTICO     4   65.815 109.81
## + No_ANTIBIOTICOS_CAT  1   72.356 110.36
## + RP                   1   72.520 110.52
## + RE                   1   72.717 110.72
## + TIPO_CIRUGIA         1   72.725 110.72
## - Ki67_CAT             1   76.849 110.85
## + HISTOLOGIA_CAT       1   72.990 110.99
## - TAMAÑO               1   77.746 111.75
## + QT_CAT               2   72.401 112.40
## - Nx                   3   83.713 113.71
## + Tn                   3   72.437 114.44
## - ESTADIO_CAT          2   83.440 115.44
## - HT_ADY_OK            6   91.473 115.47
## - FENOTIPO_IHQ_CAT     2   89.241 121.24
## 
## Step:  AIC=107.89
## (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT + FENOTIPO_IHQ_CAT + 
##     HT_ADY_OK + Ki67_CAT + TAMAÑO
## 
##                       Df Deviance    AIC
## <none>                     73.893 107.89
## - GRADO_CAT            1   76.360 108.36
## + ESTADO_MENOPAUSICO   1   73.033 109.03
## + No_ANTIBIOTICOS_CAT  1   73.364 109.36
## + TIPO_CIRUGIA         1   73.446 109.45
## + RP                   1   73.459 109.46
## - Ki67_CAT             1   77.590 109.59
## + RE                   1   73.633 109.63
## + HISTOLOGIA_CAT       1   73.883 109.88
## - TAMAÑO               1   78.471 110.47
## + EDAD_DIAGNOSTICO     4   68.946 110.95
## + QT_CAT               2   73.393 111.39
## - Nx                   3   85.441 113.44
## + Tn                   3   73.578 113.58
## - HT_ADY_OK            6   91.657 113.66
## - ESTADIO_CAT          2   84.722 114.72
## - FENOTIPO_IHQ_CAT     2   89.656 119.66 
## ```

En cuanto al resumen de cada uno de los ajustes:

Código
summary(modC_forward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ RE + QT_CAT + Ki67_CAT, family = binomial("logit"), 
##     data = mixtas)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)   
## (Intercept)        -16.6308  2006.6536  -0.008  0.99339   
## RE                  -0.7075     0.2535  -2.791  0.00526 **
## QT_CATINMUNO       -18.3414  3844.7040  -0.005  0.99619   
## QT_CATNO antiHER2   -1.0749     0.4986  -2.156  0.03110 * 
## Ki67_CAT>14         16.6459  2006.6536   0.008  0.99338   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 119.730  on 92  degrees of freedom
## Residual deviance:  96.899  on 88  degrees of freedom
## AIC: 106.9
## 
## Number of Fisher Scoring iterations: 17
##  
## ```
Código
summary(modC_backward)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO, family = binomial("logit"), 
##     data = mixtas)
## 
## Coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   -34.79415 6806.33932  -0.005
## ESTADIO_CATII                                   0.02381    1.70775   0.014
## ESTADIO_CATIII                                  4.20745    2.57466   1.634
## Nx1                                            -1.43475    0.76301  -1.880
## Nx2                                            -4.58587    1.81499  -2.527
## Nx3                                           -22.68200 4070.08192  -0.006
## GRADO_CAT3                                      1.10424    0.72674   1.519
## FENOTIPO_IHQ_CATLUMINAL                        -0.13767    0.81482  -0.169
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO                -4.14717    1.33117  -3.115
## HT_ADY_OKANALOGOS-TAMOXIFENO                   17.05064 6522.63884   0.003
## HT_ADY_OKHORMONOTERAPIA-CICLINAS               17.05984 8210.29758   0.002
## HT_ADY_OKINHIBIDORES DE AROMATASA              14.81693 6522.63873   0.002
## HT_ADY_OKNO                                    19.03138 6522.63880   0.003
## HT_ADY_OKTAMOXIFENO                            16.20038 6522.63872   0.002
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA   15.26974 6522.63880   0.002
## Ki67_CAT>14                                    18.27986 1944.59131   0.009
## TAMAÑO                                         -0.90663    0.46613  -1.945
##                                              Pr(>|z|)   
## (Intercept)                                   0.99592   
## ESTADIO_CATII                                 0.98888   
## ESTADIO_CATIII                                0.10222   
## Nx1                                           0.06006 . 
## Nx2                                           0.01152 * 
## Nx3                                           0.99555   
## GRADO_CAT3                                    0.12865   
## FENOTIPO_IHQ_CATLUMINAL                       0.86583   
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO               0.00184 **
## HT_ADY_OKANALOGOS-TAMOXIFENO                  0.99791   
## HT_ADY_OKHORMONOTERAPIA-CICLINAS              0.99834   
## HT_ADY_OKINHIBIDORES DE AROMATASA             0.99819   
## HT_ADY_OKNO                                   0.99767   
## HT_ADY_OKTAMOXIFENO                           0.99802   
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA  0.99813   
## Ki67_CAT>14                                   0.99250   
## TAMAÑO                                        0.05177 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 119.730  on 92  degrees of freedom
## Residual deviance:  73.893  on 76  degrees of freedom
## AIC: 107.89
## 
## Number of Fisher Scoring iterations: 17
##  
## ```
Código
summary(modC_both)
## ```
##  
## Call:
## glm(formula = (RCP == "SI") * 1 ~ ESTADIO_CAT + Nx + GRADO_CAT + 
##     FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO, family = binomial("logit"), 
##     data = mixtas)
## 
## Coefficients:
##                                                Estimate Std. Error z value
## (Intercept)                                   -34.79415 6806.33932  -0.005
## ESTADIO_CATII                                   0.02381    1.70775   0.014
## ESTADIO_CATIII                                  4.20745    2.57466   1.634
## Nx1                                            -1.43475    0.76301  -1.880
## Nx2                                            -4.58587    1.81499  -2.527
## Nx3                                           -22.68200 4070.08192  -0.006
## GRADO_CAT3                                      1.10424    0.72674   1.519
## FENOTIPO_IHQ_CATLUMINAL                        -0.13767    0.81482  -0.169
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO                -4.14717    1.33117  -3.115
## HT_ADY_OKANALOGOS-TAMOXIFENO                   17.05064 6522.63884   0.003
## HT_ADY_OKHORMONOTERAPIA-CICLINAS               17.05984 8210.29758   0.002
## HT_ADY_OKINHIBIDORES DE AROMATASA              14.81693 6522.63873   0.002
## HT_ADY_OKNO                                    19.03138 6522.63880   0.003
## HT_ADY_OKTAMOXIFENO                            16.20038 6522.63872   0.002
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA   15.26974 6522.63880   0.002
## Ki67_CAT>14                                    18.27986 1944.59131   0.009
## TAMAÑO                                         -0.90663    0.46613  -1.945
##                                              Pr(>|z|)   
## (Intercept)                                   0.99592   
## ESTADIO_CATII                                 0.98888   
## ESTADIO_CATIII                                0.10222   
## Nx1                                           0.06006 . 
## Nx2                                           0.01152 * 
## Nx3                                           0.99555   
## GRADO_CAT3                                    0.12865   
## FENOTIPO_IHQ_CATLUMINAL                       0.86583   
## FENOTIPO_IHQ_CATTRIPLE NEGATIVO               0.00184 **
## HT_ADY_OKANALOGOS-TAMOXIFENO                  0.99791   
## HT_ADY_OKHORMONOTERAPIA-CICLINAS              0.99834   
## HT_ADY_OKINHIBIDORES DE AROMATASA             0.99819   
## HT_ADY_OKNO                                   0.99767   
## HT_ADY_OKTAMOXIFENO                           0.99802   
## HT_ADY_OKTAMOXIFENO-INHIBIDORES DE AROMATASA  0.99813   
## Ki67_CAT>14                                   0.99250   
## TAMAÑO                                        0.05177 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 119.730  on 92  degrees of freedom
## Residual deviance:  73.893  on 76  degrees of freedom
## AIC: 107.89
## 
## Number of Fisher Scoring iterations: 17
##  
## ```

Interpretaciones

Modelo A

Para el modelo A, se ha comprobado que la fórmula del modelo final es

RCP ~ FENOTIPO_IHQ_CAT + HT_ADY_OK + TAMAÑO + RP + Ki67_CAT

con idénticos valores estadísticos en los 3 modelos de selección, lo que sugiere una alta estabilidad del proceso de selección.

Métrica Valor
AIC 228.7
Residual deviance 202.70
Iteraciones 13

Los resultados del modelo sugieren que el fenotipo tumoral, el uso (o no) de hormonoterapia adyuvante, el tamaño tumoral, la expresión de receptores de progesterona (RP) y el índice de proliferación (Ki67) tienen un impacto relevante sobre la probabilidad de alcanzar una respuesta completa patológica (RCP).

En particular, el fenotipo triple negativo se asocia significativamente con una menor probabilidad de RCP. Aunque esto puede parecer contraintuitivo dependiendo del esquema de tratamiento, es coherente con la alta heterogeneidad biológica de este subtipo.

Por otro lado, no recibir hormonoterapia adyuvante se relaciona con una mayor probabilidad de RCP. Esto probablemente actúa como un indicador indirecto de subtipos tumorales más agresivos, como el triple negativo, que suelen ser más sensibles a la quimioterapia pero no hormonodependientes.

Modelo B

Para el modelo B cuya fórmula final es

RCP ~ ESTADIO_CAT + Nx + GRADO_CAT

Métrica Valor
AIC 122.42
Residual deviance 108.42
Iteraciones 15

En los tres enfoques de selección de variables para el Modelo B (forward, backward y stepwise), la variable GRADO_CAT3 (probablemente grado histológico 3) aparece consistentemente como un factor significativamente asociado a la probabilidad de respuesta completa patológica (RCP), con un efecto positivo.

En los modelos backward y stepwise (idénticos en este caso), también se identifica como significativa la categoría Nx2 (clasificación ganglionar), que se asocia negativamente con la RCP. El valor extremo y no significativo de Nx3 sugiere un bajo número de casos o posible colinealidad.

El modelo forward es más simple, incluyendo solo GRADO_CAT3, con mejor parsimonia pero menor ajuste. Los modelos backward y stepwise incorporan más variables, logrando un menor deviance residual aunque con mayor AIC.

Modelo C

En el modelo C se obtienen dos fórmulas finales

RCP ~ RE + QT_CAT + Ki67_CAT

RCP ~ ESTADIO_CAT + Nx + GRADO_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO

Métrica Forward Backward/Stepwise
AIC 106.90 107.89
Residual deviance 96.90 73.89
Iteraciones 17 17

En los tres enfoques de selección de variables para el modelo C, la variable Ki67_CAT>14 (indicador de alta proliferación celular) aparece de manera consistente, aunque no es significativa en ninguno de los modelos, probablemente debido a alta varianza.

En el modelo forward, el receptor de estrógenos (RE) muestra una asociación negativa significativa con la probabilidad de respuesta completa patológica (RCP), mientras que ciertos esquemas de quimioterapia (QT_CATNO antiHER2) también presentan significación.

En los modelos backward y stepwise, se observa una asociación negativa significativa de la categoría Nx2 (afectación ganglionar) con la RCP. Además, el fenotipo triple negativo (FENOTIPO_IHQ_CATTRIPLE NEGATIVO) se asocia significativamente de forma negativa con la RCP, lo cual es coherente con su comportamiento clínico más agresivo.

La variable TAMAÑO del tumor también muestra una tendencia negativa marginalmente significativa (p ≈ 0.052), lo que podría indicar que tumores más grandes tienen menos probabilidad de lograr RCP.

Aunque el modelo forward es más parsimonioso (menos variables y menor AIC), los modelos backward y stepwise logran mejor ajuste (menor deviance residual), incorporando múltiples predictores clínicamente relevantes.

Predicciones

Teniendo en cuenta los valores de AIC como método de evaluación inicial consideramos que los modelos conseguidos para el modelo C son los mejores para poder realizar predicciones y, por ende, vamos a utilizar ambos.

En primer lugar comenzamos con el modelo:

RCP ~ ESTADIO_CAT + Nx + GRADO_CAT + FENOTIPO_IHQ_CAT + HT_ADY_OK + Ki67_CAT + TAMAÑO

Código
p1 <- data.frame(
  ESTADIO_CAT = factor("I", levels = c("I", "II", "III")),
  Nx = factor("0", levels = levels(dataset_recodificado$Nx)),
  GRADO_CAT = factor("1/2", levels = c("1/2", "3")),
  FENOTIPO_IHQ_CAT = factor("HER2", levels = c("LUMINAL", "HER2", "TRIPLE NEGATIVO")),
  HT_ADY_OK = factor("TAMOXIFENO", levels = levels(dataset_recodificado$HT_ADY_OK)),
  Ki67_CAT = factor(">14", levels = c("<=14", ">14")),
  TAMAÑO = 2.0
)
prob1 <- predict(modC_backward, newdata = p1, type = "response")
## Paciente 1 - Probabilidad: 0.106 - Predicción: NO - RCP = SI
Código

p2 <- data.frame(
  ESTADIO_CAT = factor("II", levels = c("I", "II", "III")),
  Nx = factor("1", levels = levels(dataset_recodificado$Nx)),
  GRADO_CAT = factor("3", levels = c("1/2", "3")),
  FENOTIPO_IHQ_CAT = factor("LUMINAL", levels = c("LUMINAL", "HER2", "TRIPLE NEGATIVO")),
  HT_ADY_OK = factor("INHIBIDORES DE AROMATASA", levels = levels(dataset_recodificado$HT_ADY_OK)),
  Ki67_CAT = factor(">14", levels = c("<=14", ">14")),
  TAMAÑO = 3.0
)
prob2 <- predict(modC_backward, newdata = p2, type = "response")
## Paciente 2 - Probabilidad: 0.008 - Predicción: NO - RCP = NO
Código

p3 <- data.frame(
  ESTADIO_CAT = factor("II", levels = c("I", "II", "III")),
  Nx = factor("0", levels = levels(dataset_recodificado$Nx)),
  GRADO_CAT = factor("3", levels = c("1/2", "3")),
  FENOTIPO_IHQ_CAT = factor("HER2", levels = c("LUMINAL", "HER2", "TRIPLE NEGATIVO")),
  HT_ADY_OK = factor("NO", levels = levels(dataset_recodificado$HT_ADY_OK)),
  Ki67_CAT = factor(">14", levels = c("<=14", ">14")),
  TAMAÑO = 2.3
)
prob3 <- predict(modC_backward, newdata = p3, type = "response")
## Paciente 3 - Probabilidad: 0.826 - Predicción: SI - RCP = SI

Vamos a evaluar este modelo a través de la curva ROC que nos permite medir la capacidad del modelo para discriminar entre pacientes con y sin RCP. Por otro lado, con el gráfico de calibración evaluamos si las probabilidades predichas por el modelo coinciden con las frecuencias observadas.

Código
evaluar_modelo(modC_backward, datos_validacion = dataset_recodificado, variable_respuesta = "RCP")
## Setting levels: control = NO, case = SI
## Setting direction: controls < cases

El modelo presenta un buen rendimiento discriminativo, con un AUC de 0.797, lo que indica una capacidad adecuada para distinguir entre pacientes con y sin el evento de interés. La curva ROC se aleja claramente de la diagonal, lo que refuerza esta buena discriminación.

En cuanto a la calibración, el gráfico muestra que las probabilidades predichas están bastante alineadas con las observadas, aunque hay cierta desviación en los extremos. En general, el modelo tiende a predecir bien las probabilidades reales, lo cual respalda la validez de las predicciones realizadas, incluyendo los ejemplos concretos evaluados.

En segundo lugar utilizaremos el modelo:

RCP ~ RE + QT_CAT + Ki67_CAT

Código

p4 <- data.frame(
  RE = 75,
  QT_CAT = factor("NO antiHER2", levels = levels(dataset_recodificado$QT_CAT)),
  Ki67_CAT = factor(">14", levels = c("<=14", ">14"))
)
prob4 <- predict(modC_forward, newdata = p4, type = "response")
## Paciente 4 - Probabilidad: 0 - Predicción: NO - RCP = NO
Código

p5 <- data.frame(
  RE = 0,
  QT_CAT = factor("antiHER2", levels = levels(dataset_recodificado$QT_CAT)),
  Ki67_CAT = factor(">14", levels = c("<=14", ">14"))
)
prob5 <- predict(modC_forward, newdata = p5, type = "response")
## Paciente 5 - Probabilidad: 0.504 - Predicción: SI - RCP = SI
Código
p6 <- data.frame(
  RE = 99,
  QT_CAT = factor("NO antiHER2", levels = levels(dataset_recodificado$QT_CAT)),
  Ki67_CAT = factor("<=14", levels = c("<=14", ">14"))
)
prob6 <- predict(modC_forward, newdata = p6, type = "response")
## Paciente 6 - Probabilidad: 0 - Predicción: NO - RCP = NO
Código
evaluar_modelo(modC_forward, datos_validacion = dataset_recodificado, variable_respuesta = "RCP")
## Setting levels: control = NO, case = SI
## Setting direction: controls < cases

Este modelo también presenta un rendimiento razonable, con un AUC de 0.754, aunque ligeramente inferior al del modelo anterior. La capacidad discriminativa sigue siendo aceptable.

Sin embargo, el gráfico de calibración revela una menor concordancia entre las probabilidades predichas y las observadas, especialmente en los rangos intermedios y altos, donde el modelo tiende a sobreestimar el riesgo. A pesar de ello, las predicciones realizadas en los ejemplos fueron correctas, lo que sugiere que, aunque la calibración global es mejorable, puede ofrecer resultados útiles a nivel individual.

Análisis de supervivencia

Se llevó a cabo un análisis de supervivencia global (SG) con el objetivo de evaluar el impacto del uso de antibióticos en pacientes con cáncer de mama tratadas con quimioterapia neoadyuvante. El tiempo de seguimiento se calculó como la diferencia en meses entre la fecha de inicio del tratamiento (FECHA_INICIO_QT) y la fecha del último control (FECHA_ULTIMO_CONTROL). El evento de interés se definió como el fallecimiento de la paciente, codificado a partir de la variable ESTADO_ULTIMO_CONTROL (estado_SG = 1 si el estado es “MCE”, y 0 en caso contrario). Se estimaron curvas de Kaplan-Meier para evaluar la supervivencia global en el total de pacientes y se compararon las curvas según los subtipos moleculares del tumor (Luminal, HER2+, Triple Negativo), así como según el uso de antibióticos durante el tratamiento. Para evaluar diferencias estadísticas entre grupos se aplicó el test de log-rank. Finalmente, se repitió el análisis de supervivencia estratificado por subtipo molecular, comparando dentro de cada subtipo a las pacientes que recibieron antibióticos frente a las que no, con el fin de explorar si el efecto de los antibióticos sobre la supervivencia varía según el tipo biológico del cáncer.

Código
# Preparar los datos
datos_preparados <- preparar_datos_supervivencia(dataset_recodificado)

# Ejecutar el análisis
resultados_sg <- analisis_supervivencia(datos_preparados)

# Mostrar los gráficos
resultados_sg$global

La probabilidad de supervivencia en la cohorte disminuye de manera progresiva y acentuada, especialmente a partir de los 270 meses de seguimiento, mostrando una tendencia que se aproxima a un descenso exponencial. Sin embargo, entre los 100 y 200 meses, la probabilidad aún se mantiene relativamente alta, oscilando entre 1 y 0.75.

Código
resultados_sg$por_subtipo

En el análisis por subtipos moleculares, las pacientes con tumores Luminal experimentan una disminución brusca en la probabilidad de supervivencia alrededor de los 300 meses. En contraste, el subtipo HER2+ mantiene una probabilidad de supervivencia elevada, con valores que permanecen entre 1 y 0.75 a lo largo del tiempo analizado. Por su parte, el subtipo Triple Negativo muestra una caída más pronunciada en la probabilidad a partir de los 100 meses, aunque esta se mantiene por encima de 0.75 hasta aproximadamente los 250 meses, momento en el que desciende hasta 0.5 y alcanza un valor ligeramente superior a 0.25 en torno a los 300 meses.

Código
resultados_sg$por_ab

En cuanto al uso de antibióticos, se observa que las pacientes que no recibieron antibióticos mantienen una probabilidad de supervivencia relativamente estable, que no desciende por debajo de 0.6 durante el período de seguimiento. En cambio, aquellas que sí recibieron antibióticos presentan una disminución gradual en la probabilidad de supervivencia, que se acentúa cerca de los 300 meses, momento en el cual la probabilidad cae bruscamente hasta alcanzar un valor próximo a 0.

Código
resultados_sg$por_subtipo_y_ab[["LUMINAL"]]

Al analizar específicamente el subtipo LUMINAL, se observa que las pacientes que no recibieron antibióticos presentan una probabilidad de supervivencia muy similar a la de aquellas que sí los recibieron, manteniéndose ambas ligeramente por debajo de 1 a lo largo de los 300 meses de seguimiento.

Código
resultados_sg$por_subtipo_y_ab[["HER2"]]

Al analizar específicamente el subtipo HER2+, se observa que las pacientes que no fueron tratadas con antibióticos mantienen una probabilidad de supervivencia constante de 1 durante todo el seguimiento. Por otro lado, aquellas que sí recibieron antibióticos muestran una probabilidad algo menor, situándose por encima de 0.75 antes de los 200 meses y manteniéndose estable en torno a 0.75 a partir de ese punto.

Código
resultados_sg$por_subtipo_y_ab[["TRIPLE NEGATIVO"]]

Al analizar específicamente el subtipo TRIPLE NEGATIVO, se observa que las pacientes que no recibieron antibióticos presentan una menor probabilidad de supervivencia en comparación con aquellas que sí los recibieron. En este último grupo, la probabilidad de supervivencia se mantiene en 1 hasta aproximadamente los 250 meses de seguimiento. Esto podría sugerir un posible efecto beneficioso del uso de antibióticos en pacientes con este subtipo tumoral, contribuyendo a una mayor supervivencia.

Conclusiones

Los resultados obtenidos en este análisis de supervivencia sugieren que el uso de antibióticos durante el tratamiento con quimioterapia neoadyuvante podría estar asociado a una menor probabilidad de supervivencia en pacientes con cáncer de mama, particularmente en ciertos subtipos biológicos como HER2+ y LUMINAL. Estos hallazgos respaldan la hipótesis de que la alteración de la microbiota —posiblemente inducida por la administración de antibióticos— puede influir negativamente en la eficacia de las terapias oncológicas y, en consecuencia, en la evolución clínica de las pacientes.

En contraste, en el caso del subtipo TRIPLE NEGATIVO, se observa una tendencia opuesta: las pacientes que recibieron antibióticos presentan una mayor probabilidad de supervivencia en comparación con aquellas que no los recibieron. Este hallazgo sugiere que, en este subgrupo, el uso de antibióticos podría tener un efecto beneficioso, aunque se requiere un análisis más profundo para confirmar esta asociación y comprender los mecanismos subyacentes.Además, las diferencias observadas entre subtipos moleculares subrayan la necesidad de considerar el perfil biológico del tumor a la hora de valorar el riesgo asociado al uso de antibióticos durante el tratamiento oncológico. Esto sugiere que las decisiones clínicas relacionadas con la prescripción de antimicrobianos deberían realizarse con cautela, y en lo posible bajo un criterio de indicación estrictamente necesario, especialmente en el contexto de la quimioterapia.

Por otro lado, estos resultados también ponen de relieve la importancia de integrar el control de infecciones, la evaluación del estado inmunológico y la vigilancia de la microbiota intestinal como factores relevantes en el manejo integral de las pacientes con cáncer. En un futuro, este enfoque podría abrir la puerta a estrategias de soporte que busquen minimizar el impacto de los antibióticos o restaurar la microbiota, como el uso de probióticos o transplantes fecales, siempre dentro de un marco de evidencia científica robusta.

Finalmente, aunque este análisis no permite establecer relaciones causales definitivas, sí plantea interrogantes clínicamente relevantes que justifican la necesidad de realizar estudios prospectivos que analicen de forma más controlada el impacto de los antibióticos en la supervivencia, considerando la biología del tumor, las comorbilidades y la composición de la microbiota como posibles factores moduladores.