Ejercicio 5

La base que vamos a trabajar se llama Sore.xlsx y esta contiene las variables Y=sore, que indica si la persona sufrió dolores de garganta después de pasar por una cirugía en la que fue necesario usar anesteria general.
Las variables regresoras que estudiaré son el tipo de mecanismo respiratorio usado y la duración de la cirugía.

Instrucciones:

Ajusta el mejor modelo de regresión logística, a partir de éste ejercicio:

library(readxl)  
setwd("C:/Users/josep_o4goibb/Documents/2025-2/1- Cat Dat/11- Trabajo Final")
datos <- read_excel("Sore.xlsx", sheet = 1)
unique(datos$type)
## [1] "mask" "tube"
#DAT - type - Error Mask and Tube
datos$type <- factor(datos$type, levels = c("mask", "tube"))
unique(datos$type)
## [1] mask tube
## Levels: mask tube
str(datos)
## tibble [35 × 3] (S3: tbl_df/tbl/data.frame)
##  $ duration: num [1:35] 45 15 40 83 90 25 35 65 95 35 ...
##  $ type    : Factor w/ 2 levels "mask","tube": 1 1 1 2 2 2 1 1 1 1 ...
##  $ sore    : num [1:35] 0 0 1 1 1 1 1 1 1 1 ...

Ajuste de los candidatos posibles para elegir el mejor modelo

# Modelo nulo (sin predictores)
m0 <- glm(sore ~ 1, data = datos, family = binomial)

# Solo type
m1 <- glm(sore ~ type, data = datos, family = binomial)

# Solo duración
m2 <- glm(sore ~ duration, data = datos, family = binomial)

# Modelo completo
m3 <- glm(sore ~ type + duration, data = datos, family = binomial)

# --------------------------------------------------------
# 4. COMPARACIÓN DE MODELOS POR AIC
# --------------------------------------------------------
AIC(m0, m1, m2, m3)
##    df      AIC
## m0  1 48.17981
## m1  2 46.57757
## m2  2 37.65134
## m3  3 36.13794
# --------------------------------------------------------
# 5. SELECCIÓN AUTOMÁTICA step() con AIC
# --------------------------------------------------------
mejor_modelo <- step(m3, direction = "both", trace = FALSE)

# Mostrar el modelo seleccionado
summary(mejor_modelo)
## 
## Call:
## glm(formula = sore ~ type + duration, family = binomial, data = datos)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -1.41734    1.09457  -1.295  0.19536   
## typetube    -1.65895    0.92285  -1.798  0.07224 . 
## duration     0.06868    0.02641   2.600  0.00931 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 46.180  on 34  degrees of freedom
## Residual deviance: 30.138  on 32  degrees of freedom
## AIC: 36.138
## 
## Number of Fisher Scoring iterations: 5
# --------------------------------------------------------
# 6. RESULTADOS FINALES
# --------------------------------------------------------
cat("\nModelo seleccionado por AIC:\n")
## 
## Modelo seleccionado por AIC:
print(formula(mejor_modelo))
## sore ~ type + duration
cat("\nCoeficientes del modelo:\n")
## 
## Coeficientes del modelo:
print(coef(summary(mejor_modelo)))
##                Estimate Std. Error   z value    Pr(>|z|)
## (Intercept) -1.41734131  1.0945708 -1.294883 0.195360521
## typetube    -1.65894910  0.9228542 -1.797629 0.072235877
## duration     0.06867778  0.0264112  2.600328 0.009313474

De esta manera, observando el AIC seleccione el modelo:

\[ \text{sore} \sim \text{type} + \text{duration} \]

Lo que quiere decir que, la probabilidad de dolor de garganta depende de el tipo de dispositivo respiratorio (mask o tube) y de la duración de la cirugía ( en minutos)

Modelo logístico

Una vez que ya hice el summary( ) puedo identificar mis valores para poner en la ecuación logística:

\[ \log\left(\frac{p}{1-p}\right) = -1.4173 - 1.6589 \cdot I(\text{tube}) + 0.0687 \cdot \text{duration} \]

Aquí puedo ver que mi categoría base es mask y que el valor de \(I(tube)=1\) si y solo si type = tube

Coeficientes

coef(summary(mejor_modelo))
##                Estimate Std. Error   z value    Pr(>|z|)
## (Intercept) -1.41734131  1.0945708 -1.294883 0.195360521
## typetube    -1.65894910  0.9228542 -1.797629 0.072235877
## duration     0.06867778  0.0264112  2.600328 0.009313474
  • Por parte del intercepto el cuál es \(\beta_{0}=-1.4173\) no me esta dando una logica interpretación , lo unico que me da a entender es que esto se da cuando la duration=0 y type= mask

    Type

  • Ahora dado que \(\beta_{1}= -1.6589\) y \(p=0.072\) , mi primer coeficiente me esta diciendo que el tube, reduce el riesgo del dolor y es marginalmente significativo por que cae en la desigualdad (\(p<0.10\))

  • Ahora tomaré el Odds Ratio

    exp(-1.6589)
    ## [1] 0.1903482

    De esta manera usar el método del tubo reduce las odds (razón de probabilidades) de experimentar dolor aproximadamente en un 81% en comparación con usar la mascarilla, ya que el odds ratio estimado es 0.19

    Duration

    Tomo el valor que me dio en \(\beta_{2}\) con su debido \(p=0.009\) para poderlo interpretar

    exp(0.0687)
    ## [1] 1.071115

    Esto me quiere decir que el \(OR = 1.07\), es decir que por cada minuto adicional de duración del procedimiento, las odds de experimentar dolor aumentan aproximadamente en un 7%, según el odds ratio estimado.

Probabilidades predichas

Ahora, a partir del modelo logístico ajustado, se calcularon las probabilidades estimadas de experimentar dolor para cada individuo dadas sus covariables, esto mediante la función predict() con el argumento type = "response". Esta opción transforma los log-odds estimados por el modelo en probabilidades comprendidas entre 0 y 1, lo cual permite interpretar directamente la probabilidad estimada del evento.

datos$prob_pred <- predict(mejor_modelo, type = "response")
head(datos)
## # A tibble: 6 × 4
##   duration type   sore prob_pred
##      <dbl> <fct> <dbl>     <dbl>
## 1       45 mask      0     0.842
## 2       15 mask      0     0.404
## 3       40 mask      1     0.791
## 4       83 tube      1     0.932
## 5       90 tube      1     0.957
## 6       25 tube      1     0.204

Coherencia Clínica y Plausibilidad Práctica de los Resultados del Modelo Logístico

Los resultados obtenidos del modelo logístico no solo poseen solidez estadística, sino que también exhiben una notable coherencia clínica y una profunda plausibilidad práctica, alineándose con las expectativas fisiológicas y las observaciones empíricas en el ámbito de los procedimientos de anestesia y manejo de la vía aérea.

El modelo sugiere que el uso del tubo endotraqueal (\(I(\text{tube})\)) está asociado con una reducción en las odds de desarrollar dolor de garganta (sore throat) en comparación con el uso de la mascarilla laríngea.Esta relación es clínicamente razonable. Aunque la intubación endotraqueal es un procedimiento invasivo, el tubo es diseñado para permanecer estable y sellar la tráquea. En contraste, la mascarilla laríngea puede, en ciertos casos o con movimientos del paciente, generar una mayor fricción o presión errática contra las estructuras delicadas de la orofaringe, lo que potencialmente induce más irritación posoperatoria. La ligera significación marginal del efecto subraya la importancia de la técnica de inserción y el ajuste preciso en ambos dispositivos.

Para eel impacto de la duración de la cirugía es inequívocamente lógico y coherente con la fisiopatología de la irritación de la vía aérea.El coeficiente positivo estimado indica que a mayor duración de la cirugía, mayor es el riesgo de desarrollar dolor de garganta. El modelo cuantifica este riesgo: estima un aumento del 7% en las odds de experimentar dolor por cada minuto adicional de exposición a la anestesia. Este incremento progresivo es plausible, ya que un tiempo prolongado resulta en:

  • Mayor exposición de las mucosas al flujo de gases anestésicos secos.

  • Mayor tiempo de contacto del dispositivo (tubo o mascarilla) con la pared faríngea y laríngea.

  • Mayor probabilidad de microtraumatismos acumulados o manipulación del sistema durante el procedimiento extendido.

Así que la dirección de los efectos, tubo reduciendo el riesho y la mayor duración aumentandola concuerda con la lógica clínica del fenómeno estudiado. Así mismo la magnitud de estos efectos resulta razonable y consistente con la evidencia esperada.