Tener en cuenta las distribuciones que salieron de la primera parte del analisis
TRAUMA CERRADO
Presion Sistolica al ingreso
Presion Sistolica pre-REBOA
TRAUMA PENETRANTE
Presion Sistolica al ingreso
Presion Sistolica pre-REBOA
Se realizo la diferencia entre la presion sistolica al ingreso y la presion sistolica antes de la colocacion de REBOA
No hay diferencia entre los grupos de mortalidad por el delta de SBP (P=0.15)
blunt %>%
skim(delta_sbp)
| Name | Piped data |
| Number of rows | 558 |
| Number of columns | 73 |
| _______________________ | |
| Column type frequency: | |
| numeric | 1 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| delta_sbp | 14 | 0.97 | 21.62 | 48.36 | -191 | 0 | 19 | 49 | 214 | ▁▁▇▂▁ |
blunt %>%
ggplot(aes(y = delta_sbp)) +
geom_boxplot()+
facet_wrap( ~ mortalidad_24h)
## Warning: Removed 14 rows containing non-finite values (stat_boxplot).
with(data = blunt, t.test(delta_sbp ~ mortalidad_24h))
##
## Welch Two Sample t-test
##
## data: delta_sbp by mortalidad_24h
## t = 1.4149, df = 247.21, p-value = 0.1583
## alternative hypothesis: true difference in means between group NO and group SI is not equal to 0
## 95 percent confidence interval:
## -2.814377 17.173099
## sample estimates:
## mean in group NO mean in group SI
## 23.84800 16.66864
Tiene una pobre capacidad de predicion con un AUC de 0.447
roc.sbp <- pROC::roc(mortality_24h ~ delta_sbp, direction = "<",
data = blunt)
## Setting levels: control = 0, case = 1
roc.sbp
##
## Call:
## roc.formula(formula = mortality_24h ~ delta_sbp, data = blunt, direction = "<")
##
## Data: delta_sbp in 375 controls (mortality_24h 0) < 169 cases (mortality_24h 1).
## Area under the curve: 0.4476
plot(roc.sbp)
No hay diferencia entre los grupos de mortalidad por el delta de SBP (P=0.76)
penetrating %>%
skim(delta_sbp)
| Name | Piped data |
| Number of rows | 288 |
| Number of columns | 73 |
| _______________________ | |
| Column type frequency: | |
| numeric | 1 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| delta_sbp | 46 | 0.84 | 13.1 | 38.72 | -180 | -8.75 | 10 | 30 | 152 | ▁▁▇▅▁ |
penetrating %>%
ggplot(aes(y = delta_sbp)) +
geom_boxplot()+
facet_wrap( ~ mortalidad_24h)
## Warning: Removed 46 rows containing non-finite values (stat_boxplot).
with(data = penetrating, t.test(delta_sbp ~ mortalidad_24h))
##
## Welch Two Sample t-test
##
## data: delta_sbp by mortalidad_24h
## t = 0.30524, df = 113.09, p-value = 0.7607
## alternative hypothesis: true difference in means between group NO and group SI is not equal to 0
## 95 percent confidence interval:
## -10.00843 13.65418
## sample estimates:
## mean in group NO mean in group SI
## 13.66071 11.83784
Tiene una pobre capacidad de predicion con un AUC de 0.478
roc.sbp <- pROC::roc(mortality_24h ~ delta_sbp, direction = "<",
data = penetrating)
## Setting levels: control = 0, case = 1
roc.sbp
##
## Call:
## roc.formula(formula = mortality_24h ~ delta_sbp, data = penetrating, direction = "<")
##
## Data: delta_sbp in 168 controls (mortality_24h 0) < 74 cases (mortality_24h 1).
## Area under the curve: 0.4783
plot(roc.sbp)
De acuerdo, a lo que hemos escrito anteriormente y lo que resultaron de las tablas de analisis univariado de las presiones sistolicas al ingreso y antes de colocar el REBOA, la franja entre 60 y 90 mm Hg es el rango que esta menor al umbral del 30% de mortalidad. Es por esta razon que se propone el concepto del “REBOA TEMPRANO”. Este REBOA temprano se asocia a la oclusion aortica endovascular antes de que la descompensacion hemodinamica progrese, teniendo como referente la presion arterial sistolica.
Ya que los deltas de las presiones hemos explorado que no tiene efecto predictivo ni hay diferencia entre los grupos. Se propone la siguiente medida como TEMPRANO Paciente con PAS > 50 mm Hg al ingreso y que al momento de colocar el REBOA la PAS > 70 mm Hg
Se propone esa diferencia de 20 mm Hg antes de la PAS pre REBOA, como el rango minimo en que la descompensacion hemodinamica potencialmente se podria observar respuesta a las primeras maniobras de reanimacion. PAS < 50 mm Hg se observa que la mortalidad predictiva a 24 horas es mayor del 40%.
A continuacion, presento las diferencias entre los grupos segun el mecanismo de trauma
blunt <- blunt %>%
mutate(reboa_early = ifelse(sbp_on_admission >= 50 & sbp_pre_reboa >= 70,1,0))
blunt$reboa_early_t <- factor(blunt$reboa_early,
levels = c("0","1"),
labels = c("Tardio","Temprano"))
model_database <- blunt %>%
filter(reboa_early >= 0) %>%
select(age, age_2,
sex, iss,
cpr_admission,
pupilar_absent,
Hospital_Volume,
mortality_24h,
Packed.red.blood.cells,
Fresh.frozen.plasma,
reboa_early_t,
reboa_early)
model_database$Hospital_Volume <- factor(model_database$Hospital_Volume,
levels = c("1","2", "3"),
labels = c("<20","20-80",">80"))
model_database <- model_database %>%
mutate(trans.masiva = ifelse(Packed.red.blood.cells >= 10,1,0))
model_database %>%
select(-reboa_early) %>%
tbl_summary(by = reboa_early_t,
label = list(age ~ "Edad",
age_2 ~ "Categorias de Edad",
sex ~ "Genero",
iss ~ "ISS",
cpr_admission ~ "Paro Cardiaco Prehospitalario",
pupilar_absent ~ "Ausencia de Respuesta Pupilar",
Hospital_Volume ~ "Volumen por Hospital",
Packed.red.blood.cells ~ "U. Globulos Rojos en 24h",
Fresh.frozen.plasma ~ "U. Plasma en 24h",
trans.masiva ~ "Transfusion Masiva",
mortality_24h ~ "Mortalidad a 24 horas")) %>%
add_p() %>%
modify_caption("**Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Cerrado**") %>%
bold_labels()
## Registered S3 methods overwritten by 'broom':
## method from
## tidy.glht jtools
## tidy.summary.glht jtools
| Characteristic | Tardio, N = 3371 | Temprano, N = 2171 | p-value2 |
|---|---|---|---|
| Edad | 42 (27, 57) | 46 (28, 60) | 0.073 |
| Unknown | 7 | 0 | |
| Categorias de Edad | 0.4 | ||
| 20 | 18 (5.5%) | 8 (3.7%) | |
| 20-39 | 134 (41%) | 78 (36%) | |
| 40-59 | 110 (33%) | 75 (35%) | |
| 60 | 68 (21%) | 56 (26%) | |
| Unknown | 7 | 0 | |
| Genero | 0.7 | ||
| Female | 90 (27%) | 54 (25%) | |
| Male | 247 (73%) | 162 (75%) | |
| Unknown | 0 | 1 | |
| ISS | 34 (25, 45) | 34 (25, 43) | 0.5 |
| Unknown | 34 | 34 | |
| Paro Cardiaco Prehospitalario | 74 (22%) | 18 (8.3%) | <0.001 |
| Ausencia de Respuesta Pupilar | 146 (43%) | 66 (30%) | 0.002 |
| Volumen por Hospital | 0.071 | ||
| <20 | 91 (27%) | 74 (34%) | |
| 20-80 | 129 (38%) | 86 (40%) | |
| >80 | 117 (35%) | 57 (26%) | |
| Mortalidad a 24 horas | 123 (36%) | 50 (23%) | <0.001 |
| U. Globulos Rojos en 24h | 15 (8, 27) | 10 (6, 19) | <0.001 |
| Unknown | 50 | 16 | |
| U. Plasma en 24h | 12 (6, 22) | 8 (4, 14) | <0.001 |
| Unknown | 54 | 21 | |
| Transfusion Masiva | 197 (69%) | 112 (56%) | 0.004 |
| Unknown | 50 | 16 | |
|
1
Median (IQR); n (%)
2
Wilcoxon rank sum test; Pearson's Chi-squared test
|
|||
La relacion univariada del REBOA temprano con la mortalidad a 24 horas
Resultados del Modelo
model_reboa.early <- glm(mortality_24h ~ reboa_early,
family = binomial(link = "logit"),
data = model_database)
summary(model_reboa.early)
##
## Call:
## glm(formula = mortality_24h ~ reboa_early, family = binomial(link = "logit"),
## data = model_database)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.9530 -0.9530 -0.7238 1.4198 1.7134
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.5538 0.1132 -4.894 9.87e-07 ***
## reboa_early -0.6522 0.1970 -3.311 0.000929 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 687.97 on 553 degrees of freedom
## Residual deviance: 676.56 on 552 degrees of freedom
## AIC: 680.56
##
## Number of Fisher Scoring iterations: 4
La relacion de Reboa temprano y la mortalidad a 24 horas tiene un OR 0.521 95%CI (0.35-0.76)
summ (model_reboa.early, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(1) = 11.402, p = 0.001
## Pseudo-R² (Cragg-Uhler) = 0.029
## Pseudo-R² (McFadden) = 0.017
## AIC = 680.564, BIC = 689.198
##
## Standard errors: MLE
## --------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept) 0.575 0.460 0.717 -4.894 0.000
## reboa_early 0.521 0.354 0.766 -3.311 0.001
## --------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.early$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.early))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.early)
## X-squared = 5.0553e-23, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.early, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.early, type = "response"))
##
## Data: predict(model_reboa.early, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.5747
Se evidencio que al comparar los grupos de edad manera estratificada. Se encontro que hay diferencia significativa en los pacientes con REBOA temprano vs tardio respecto a su mortalidad para los grupos de edad entre los 20-39 años y 40-59 años
model_database %>%
filter(age >= 0) %>%
tabyl(mortality_24h,reboa_early_t, age_2) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`20`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 10 (55.6%) 7 (87.5%) 17 (65.4%)
## 1 8 (44.4%) 1 (12.5%) 9 (34.6%)
## Total 18 (100.0%) 8 (100.0%) 26 (100.0%)
##
## $`20-39`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 87 (64.9%) 62 (79.5%) 149 (70.3%)
## 1 47 (35.1%) 16 (20.5%) 63 (29.7%)
## Total 134 (100.0%) 78 (100.0%) 212 (100.0%)
##
## $`40-59`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 69 (62.7%) 62 (82.7%) 131 (70.8%)
## 1 41 (37.3%) 13 (17.3%) 54 (29.2%)
## Total 110 (100.0%) 75 (100.0%) 185 (100.0%)
##
## $`60`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 44 (64.7%) 36 (64.3%) 80 (64.5%)
## 1 24 (35.3%) 20 (35.7%) 44 (35.5%)
## Total 68 (100.0%) 56 (100.0%) 124 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>%
filter(age >= 0) %>%
tabyl(mortality_24h,reboa_early_t, age_2)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`20`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.1902
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.00353528 2.01510208
## sample estimates:
## odds ratio
## 0.1894669
##
##
## $`20-39`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.02928
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.2315454 0.9547621
## sample estimates:
## odds ratio
## 0.4793022
##
##
## $`40-59`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.004838
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1590200 0.7510655
## sample estimates:
## odds ratio
## 0.354805
##
##
## $`60`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.4541725 2.2722793
## sample estimates:
## odds ratio
## 1.018373
Sin embargo, cuando se construyo el modelo de REBOA temprano y los grupos de edad de 20-39, 40-59 y mayores de 60 no fueron estadisticamente significativos
model_reboa.edad <- glm(mortality_24h ~ reboa_early + age_2,
family = binomial(link = "logit"),
data = model_database)
summary(model_reboa.edad)
##
## Call:
## glm(formula = mortality_24h ~ reboa_early + age_2, family = binomial(link = "logit"),
## data = model_database)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.0470 -0.9209 -0.6939 1.4577 1.7569
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.4477 0.4194 -1.068 0.285668
## reboa_early -0.6630 0.1989 -3.334 0.000857 ***
## age_220-39 -0.1906 0.4431 -0.430 0.667069
## age_240-59 -0.1923 0.4474 -0.430 0.667327
## age_260 0.1330 0.4584 0.290 0.771714
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 677.98 on 546 degrees of freedom
## Residual deviance: 664.68 on 542 degrees of freedom
## (7 observations deleted due to missingness)
## AIC: 674.68
##
## Number of Fisher Scoring iterations: 4
Las bases de datos originales no venian con detalles exactos como el valor del ingreso en la escala de goma de Glasgow, el parametro que las dos bases coincidian era “Ausencia de la respuesta Pupilar”.
No hubo diferencias significativas entre los dos grupos
model_database %>%
tabyl(mortality_24h,reboa_early_t, pupilar_absent) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 144 (75.4%) 127 (84.1%) 271 (79.2%)
## 1 47 (24.6%) 24 (15.9%) 71 (20.8%)
## Total 191 (100.0%) 151 (100.0%) 342 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 70 (47.9%) 40 (60.6%) 110 (51.9%)
## 1 76 (52.1%) 26 (39.4%) 102 (48.1%)
## Total 146 (100.0%) 66 (100.0%) 212 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>%
tabyl(mortality_24h,reboa_early_t, pupilar_absent)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.05988
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3199303 1.0301474
## sample estimates:
## odds ratio
## 0.5799047
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.1031
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3163708 1.1246609
## sample estimates:
## odds ratio
## 0.6001504
Sin embargo, cuando se construyo el modelo de REBOA temprano y la ausencia de respuesta pupilar al ingreso se encontro que las dos variables tenian relacion con el desenlace de mortalidad a 24 horas. REBOA temprano OR= 0.58 y Ausencia de Respuesta Pupilar OR=3.36
model_reboa.pupilar <- glm(mortality_24h ~ reboa_early + pupilar_absent,
family = binomial(link = "logit"),
data = model_database)
summ(model_reboa.pupilar, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 51.908, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.126
## Pseudo-R² (McFadden) = 0.075
## AIC = 642.059, BIC = 655.010
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.325 0.240 0.438 -7.333 0.000
## reboa_early 0.588 0.394 0.878 -2.595 0.009
## pupilar_absent 3.363 2.303 4.911 6.279 0.000
## -----------------------------------------------------------------
En los pacientes que no presentaron Paro Cardiaco y se sometieron a reboa temprano la mortalidad fue inferior respecto a los que se les puso el REBOA tardio.
model_database %>%
tabyl(mortality_24h,reboa_early_t, cpr_admission) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 185 (70.3%) 160 (80.4%) 345 (74.7%)
## 1 78 (29.7%) 39 (19.6%) 117 (25.3%)
## Total 263 (100.0%) 199 (100.0%) 462 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 29 (39.2%) 7 (38.9%) 36 (39.1%)
## 1 45 (60.8%) 11 (61.1%) 56 (60.9%)
## Total 74 (100.0%) 18 (100.0%) 92 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>%
tabyl(mortality_24h,reboa_early_t, cpr_admission)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.01726
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3621872 0.9146601
## sample estimates:
## odds ratio
## 0.5788064
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3149318 3.4588588
## sample estimates:
## odds ratio
## 1.01256
En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.62 y del Paro Cardiaco Prehospitalario OR = 4.17
model_reboa.cpr <- glm(mortality_24h ~ reboa_early + cpr_admission,
family = binomial(link = "logit"),
data = model_database)
summ(model_reboa.cpr, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 47.177, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.115
## Pseudo-R² (McFadden) = 0.069
## AIC = 646.789, BIC = 659.741
##
## Standard errors: MLE
## ----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.409 0.316 0.530 -6.776 0.000
## reboa_early 0.628 0.421 0.939 -2.267 0.023
## cpr_admission 4.179 2.599 6.721 5.900 0.000
## ----------------------------------------------------------------
Los dos grupos con o sin transfusion masiva, tuvieron que el REBOA tenia una mortalidad menor a 24 horas
model_database %>%
tabyl(mortality_24h,reboa_early_t, trans.masiva) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 61 (67.8%) 75 (84.3%) 136 (76.0%)
## 1 29 (32.2%) 14 (15.7%) 43 (24.0%)
## Total 90 (100.0%) 89 (100.0%) 179 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 112 (56.9%) 78 (69.6%) 190 (61.5%)
## 1 85 (43.1%) 34 (30.4%) 119 (38.5%)
## Total 197 (100.0%) 112 (100.0%) 309 (100.0%)
##
## $NA_
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 41 (82.0%) 14 (87.5%) 55 (83.3%)
## 1 9 (18.0%) 2 (12.5%) 11 (16.7%)
## Total 50 (100.0%) 16 (100.0%) 66 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>%
tabyl(mortality_24h,reboa_early_t, trans.masiva)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.01383
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1761275 0.8507693
## sample estimates:
## odds ratio
## 0.3947061
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.02893
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3393565 0.9637029
## sample estimates:
## odds ratio
## 0.5753884
##
##
## $NA_
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.06167593 3.75182015
## sample estimates:
## odds ratio
## 0.6547206
En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.50 y la transfusion masiva OR = 1.83
model_reboa.tm <- glm(mortality_24h ~ reboa_early + trans.masiva,
family = binomial(link = "logit"),
data = model_database)
summ(model_reboa.tm, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 488 (66 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 22.085, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.061
## Pseudo-R² (McFadden) = 0.036
## AIC = 604.225, BIC = 616.795
##
## Standard errors: MLE
## ---------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ------------------ ----------- ------- ------- -------- -------
## (Intercept) 0.430 0.293 0.631 -4.307 0.000
## reboa_early 0.508 0.338 0.762 -3.272 0.001
## trans.masiva 1.838 1.209 2.792 2.850 0.004
## ---------------------------------------------------------------
Segun este modelo el Paro cardiaco y la ausencia de respuesta pupilar al ingreso son los factores de riesgo mas fuertes para la mortalidad a 24 horas al ingreso, mientras que la estrategia de REBOA temprano es un factor protector OR: 0.65, el modelo tiene un AUC= 0.72. La edad en este modelo no tuvo significante peso para la prediccion de mortalidad a 24 horas
model_reboa.1 <- glm(mortality_24h ~ reboa_early + cpr_admission + age_2 + pupilar_absent,
family = binomial(link = "logit"),
data = model_database)
summ (model_reboa.1, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 547 (7 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(6) = 71.670, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.173
## Pseudo-R² (McFadden) = 0.106
## AIC = 620.313, BIC = 650.444
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.228 0.090 0.580 -3.106 0.002
## reboa_early 0.650 0.429 0.983 -2.041 0.041
## cpr_admission 2.844 1.703 4.748 3.996 0.000
## age_220-39 1.072 0.420 2.737 0.145 0.884
## age_240-59 1.137 0.441 2.930 0.266 0.790
## age_260 1.770 0.667 4.697 1.147 0.251
## pupilar_absent 2.753 1.824 4.156 4.819 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.1$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.1))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.1)
## X-squared = 7.7984, df = 8, p-value = 0.4534
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.1, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.1, type = "response"))
##
## Data: predict(model_reboa.1, type = "response") in 377 controls (deaths 0) < 170 cases (deaths 1).
## Area under the curve: 0.7226
En este modelo que excluye a la edad sigue siendo el REBOA temprano un factor protector
model_reboa.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent,
family = binomial(link = "logit"),
data = model_database)
summ (model_reboa.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(3) = 68.701, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.164
## Pseudo-R² (McFadden) = 0.100
## AIC = 627.266, BIC = 644.535
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.285 0.209 0.390 -7.847 0.000
## reboa_early 0.663 0.440 0.999 -1.966 0.049
## cpr_admission 2.865 1.729 4.749 4.083 0.000
## pupilar_absent 2.600 1.738 3.888 4.654 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.2))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.2)
## X-squared = 0.085952, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.2, type = "response"))
##
## Data: predict(model_reboa.2, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.7042
Este modelo muestra que el REBOA temprano no alcanza a ser estadisticamente significativo tanto en el modelo que se exluyen los 66 datos que se habian perdido como otro escenario. Estos datos estan perdidos porque el ABO-Trauma registry no tenia esa informacion directa de las transfusiones.
model_reboa.3 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
family = binomial(link = "logit"),
data = model_database)
summ (model_reboa.3, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 488 (66 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(4) = 74.764, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.197
## Pseudo-R² (McFadden) = 0.121
## AIC = 555.546, BIC = 576.497
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.192 0.119 0.310 -6.725 0.000
## reboa_early 0.663 0.430 1.022 -1.862 0.063
## cpr_admission 3.050 1.773 5.246 4.031 0.000
## pupilar_absent 2.588 1.688 3.970 4.358 0.000
## trans.masiva 2.027 1.296 3.171 3.096 0.002
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.3)
## X-squared = 3.1114, df = 8, p-value = 0.9272
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3, type = "response"))
##
## Data: predict(model_reboa.3, type = "response") in 326 controls (deaths 0) < 162 cases (deaths 1).
## Area under the curve: 0.7318
## Una copia de la base para no afectar la general
model_database_2 <- model_database
model_database_2$trans.masiva[is.na(model_database_2$trans.masiva)] <- 0
model_reboa.3.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
family = binomial(link = "logit"),
data = model_database_2)
summ (model_reboa.3.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(4) = 84.044, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.198
## Pseudo-R² (McFadden) = 0.122
## AIC = 613.923, BIC = 635.509
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.175 0.115 0.266 -8.181 0.000
## reboa_early 0.687 0.453 1.041 -1.770 0.077
## cpr_admission 3.041 1.814 5.097 4.220 0.000
## pupilar_absent 2.528 1.680 3.804 4.451 0.000
## trans.masiva 2.219 1.477 3.332 3.839 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3.2))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.3.2)
## X-squared = NaN, df = 8, p-value = NA
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3.2, type = "response"))
##
## Data: predict(model_reboa.3.2, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.7341
La comparacion de los 2 grupos, muestra que los pacientes de REBOA tardio eran mas viejos, aunque no hay diferencias en la distribucion del tipo de edad. En este contexto NO hubo una diferencia respeto a la ausencia de respuesta pupilar al ingreso. La mortalidad si fue mayor en el grupo de REBOA temprano 40% vs 22%. Hubo diferencias tambien en los esfuerzos de resucitación
penetrating <- penetrating %>%
mutate(reboa_early = ifelse(sbp_on_admission >= 50 & sbp_pre_reboa >= 70,1,0))
penetrating$reboa_early_t <- factor(penetrating$reboa_early,
levels = c("0","1"),
labels = c("Tardio","Temprano"))
model_database.2 <- penetrating %>%
filter(reboa_early >= 0) %>%
select(age, age_2,
sex, iss,
cpr_admission,
pupilar_absent,
Hospital_Volume,
mortality_24h,
Packed.red.blood.cells,
Fresh.frozen.plasma,
reboa_early_t,
reboa_early)
model_database.2$Hospital_Volume <- factor(model_database.2$Hospital_Volume,
levels = c("1","2", "3"),
labels = c("<20","20-80",">80"))
model_database.2 <- model_database.2 %>%
mutate(trans.masiva = ifelse(Packed.red.blood.cells >= 10,1,0))
model_database.2 %>%
select(-reboa_early) %>%
tbl_summary(by = reboa_early_t,
label = list(age ~ "Edad",
age_2 ~ "Categorias de Edad",
sex ~ "Genero",
iss ~ "ISS",
cpr_admission ~ "Paro Cardiaco Prehospitalario",
pupilar_absent ~ "Ausencia de Respuesta Pupilar",
Hospital_Volume ~ "Volumen por Hospital",
Packed.red.blood.cells ~ "U. Globulos Rojos en 24h",
Fresh.frozen.plasma ~ "U. Plasma en 24h",
trans.masiva ~ "Transfusion Masiva",
mortality_24h ~ "Mortalidad a 24 horas")) %>%
add_p() %>%
modify_caption("**Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Penetrante**") %>%
bold_labels()
| Characteristic | Tardio, N = 1831 | Temprano, N = 961 | p-value2 |
|---|---|---|---|
| Edad | 46 (29, 60) | 35 (23, 56) | 0.015 |
| Unknown | 3 | 0 | |
| Categorias de Edad | 0.5 | ||
| 20 | 15 (8.3%) | 11 (11%) | |
| 20-39 | 65 (36%) | 41 (43%) | |
| 40-59 | 53 (29%) | 22 (23%) | |
| 60 | 47 (26%) | 22 (23%) | |
| Unknown | 3 | 0 | |
| Genero | 0.8 | ||
| Female | 38 (21%) | 19 (20%) | |
| Male | 145 (79%) | 77 (80%) | |
| ISS | 34 (25, 50) | 30 (20, 45) | 0.2 |
| Unknown | 16 | 11 | |
| Paro Cardiaco Prehospitalario | 35 (19%) | 8 (8.3%) | 0.018 |
| Ausencia de Respuesta Pupilar | 68 (37%) | 34 (35%) | 0.8 |
| Volumen por Hospital | 0.10 | ||
| <20 | 91 (50%) | 36 (38%) | |
| 20-80 | 66 (36%) | 47 (49%) | |
| >80 | 26 (14%) | 13 (14%) | |
| Mortalidad a 24 horas | 74 (40%) | 21 (22%) | 0.002 |
| U. Globulos Rojos en 24h | 18 (9, 27) | 10 (8, 19) | 0.047 |
| Unknown | 122 | 53 | |
| U. Plasma en 24h | 13 (4, 25) | 7 (5, 19) | 0.3 |
| Unknown | 122 | 53 | |
| Transfusion Masiva | 45 (74%) | 23 (53%) | 0.032 |
| Unknown | 122 | 53 | |
|
1
Median (IQR); n (%)
2
Wilcoxon rank sum test; Pearson's Chi-squared test
|
|||
La relacion univariada del REBOA temprano con la mortalidad a 24 horas
Resultados del Modelo
model_reboa.early <- glm(mortality_24h ~ reboa_early,
family = binomial(link = "logit"),
data = model_database.2)
summary(model_reboa.early)
##
## Call:
## glm(formula = mortality_24h ~ reboa_early, family = binomial(link = "logit"),
## data = model_database.2)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.0180 -1.0180 -0.7026 1.3457 1.7435
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.3873 0.1506 -2.571 0.0101 *
## reboa_early -0.8857 0.2892 -3.062 0.0022 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 357.88 on 278 degrees of freedom
## Residual deviance: 347.82 on 277 degrees of freedom
## AIC: 351.82
##
## Number of Fisher Scoring iterations: 4
La relacion de Reboa temprano y la mortalidad a 24 horas tiene un OR 0.412 95%CI (0.23-0.72)
summ (model_reboa.early, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(1) = 10.065, p = 0.002
## Pseudo-R² (Cragg-Uhler) = 0.049
## Pseudo-R² (McFadden) = 0.028
## AIC = 351.818, BIC = 359.081
##
## Standard errors: MLE
## --------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept) 0.679 0.505 0.912 -2.571 0.010
## reboa_early 0.412 0.234 0.727 -3.062 0.002
## --------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.early$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.early))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.early)
## X-squared = 5.7417e-24, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.early, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.early, type = "response"))
##
## Data: predict(model_reboa.early, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.5933
Se evidencio que al comparar los grupos de edad manera estratificada. Se encontro que hay diferencia significativa en los pacientes con REBOA temprano vs tardio respecto a su mortalidad solo fue significativa para los mayores de 60 años
model_database.2 %>%
filter(age >= 0) %>%
tabyl(mortality_24h,reboa_early_t, age_2) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`20`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 8 (53.3%) 6 (54.5%) 14 (53.8%)
## 1 7 (46.7%) 5 (45.5%) 12 (46.2%)
## Total 15 (100.0%) 11 (100.0%) 26 (100.0%)
##
## $`20-39`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 44 (67.7%) 35 (85.4%) 79 (74.5%)
## 1 21 (32.3%) 6 (14.6%) 27 (25.5%)
## Total 65 (100.0%) 41 (100.0%) 106 (100.0%)
##
## $`40-59`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 35 (66.0%) 18 (81.8%) 53 (70.7%)
## 1 18 (34.0%) 4 (18.2%) 22 (29.3%)
## Total 53 (100.0%) 22 (100.0%) 75 (100.0%)
##
## $`60`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 21 (44.7%) 16 (72.7%) 37 (53.6%)
## 1 26 (55.3%) 6 (27.3%) 32 (46.4%)
## Total 47 (100.0%) 22 (100.0%) 69 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>%
filter(age >= 0) %>%
tabyl(mortality_24h,reboa_early_t, age_2)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`20`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1519754 5.8616490
## sample estimates:
## odds ratio
## 0.9541453
##
##
## $`20-39`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.06583
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1077119 1.0595235
## sample estimates:
## odds ratio
## 0.3624765
##
##
## $`40-59`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.2654
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.0934448 1.6097973
## sample estimates:
## odds ratio
## 0.4366113
##
##
## $`60`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.03925
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.08328517 1.01299539
## sample estimates:
## odds ratio
## 0.3082406
Sin embargo, cuando se construyo el modelo de REBOA temprano y la edad estratificada. El grupo entre los 20-39 años fue un factor protector
model_reboa.edad <- glm(mortality_24h ~ reboa_early + age_2,
family = binomial(link = "logit"),
data = model_database.2)
summ(model_reboa.edad, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(4) = 20.245, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.098
## Pseudo-R² (McFadden) = 0.057
## AIC = 342.481, BIC = 360.583
##
## Standard errors: MLE
## --------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept) 1.241 0.545 2.827 0.514 0.607
## reboa_early 0.407 0.227 0.730 -3.019 0.003
## age_220-39 0.372 0.150 0.922 -2.135 0.033
## age_240-59 0.420 0.163 1.078 -1.804 0.071
## age_260 0.918 0.363 2.321 -0.181 0.856
## --------------------------------------------------------------
Las bases de datos originales no venian con detalles exactos como el valor del ingreso en la escala de goma de Glasgow, el parametro que las dos bases coincidian era “Ausencia de la respuesta Pupilar”.
model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, pupilar_absent) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 84 (73.0%) 55 (88.7%) 139 (78.5%)
## 1 31 (27.0%) 7 (11.3%) 38 (21.5%)
## Total 115 (100.0%) 62 (100.0%) 177 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 25 (36.8%) 20 (58.8%) 45 (44.1%)
## 1 43 (63.2%) 14 (41.2%) 57 (55.9%)
## Total 68 (100.0%) 34 (100.0%) 102 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, pupilar_absent)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.02047
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1202589 0.8762061
## sample estimates:
## odds ratio
## 0.3467137
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.05613
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1603788 1.0242740
## sample estimates:
## odds ratio
## 0.4107272
Sin embargo, cuando se construyo el modelo de REBOA temprano y la ausencia de respuesta pupilar al ingreso se encontro que las dos variables tenian relacion con el desenlace de mortalidad a 24 horas. REBOA temprano OR= 0.37 y Ausencia de Respuesta Pupilar OR=4.88
model_reboa.pupilar <- glm(mortality_24h ~ reboa_early + pupilar_absent,
family = binomial(link = "logit"),
data = model_database.2)
summ(model_reboa.pupilar, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 44.532, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.204
## Pseudo-R² (McFadden) = 0.124
## AIC = 319.352, BIC = 330.245
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.362 0.245 0.534 -5.119 0.000
## reboa_early 0.376 0.205 0.690 -3.160 0.002
## pupilar_absent 4.881 2.826 8.430 5.686 0.000
## -----------------------------------------------------------------
En este modelo el paro cardiaco no alcanzo a ser estadisticamente significativo.
model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, cpr_admission) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 92 (62.2%) 70 (79.5%) 162 (68.6%)
## 1 56 (37.8%) 18 (20.5%) 74 (31.4%)
## Total 148 (100.0%) 88 (100.0%) 236 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 17 (48.6%) 5 (62.5%) 22 (51.2%)
## 1 18 (51.4%) 3 (37.5%) 21 (48.8%)
## Total 35 (100.0%) 8 (100.0%) 43 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, cpr_admission)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.005843
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.2146969 0.8088688
## sample estimates:
## odds ratio
## 0.4239443
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.6981
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.07703643 3.49044779
## sample estimates:
## odds ratio
## 0.5741503
En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.43
model_reboa.cpr <- glm(mortality_24h ~ reboa_early + cpr_admission,
family = binomial(link = "logit"),
data = model_database.2)
summ(model_reboa.cpr, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 13.198, p = 0.001
## Pseudo-R² (Cragg-Uhler) = 0.064
## Pseudo-R² (McFadden) = 0.037
## AIC = 350.686, BIC = 361.579
##
## Standard errors: MLE
## ----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.602 0.434 0.834 -3.047 0.002
## reboa_early 0.439 0.247 0.778 -2.820 0.005
## cpr_admission 1.838 0.940 3.594 1.780 0.075
## ----------------------------------------------------------------
Los dos grupos con o sin transfusion masiva.
model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, trans.masiva) %>%
adorn_totals(c("row","col")) %>%
adorn_percentages(denominator = "col") %>%
adorn_pct_formatting() %>%
adorn_ns(position = "front") %>%
adorn_title()
## $`0`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 9 (56.2%) 17 (85.0%) 26 (72.2%)
## 1 7 (43.8%) 3 (15.0%) 10 (27.8%)
## Total 16 (100.0%) 20 (100.0%) 36 (100.0%)
##
## $`1`
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 32 (71.1%) 19 (82.6%) 51 (75.0%)
## 1 13 (28.9%) 4 (17.4%) 17 (25.0%)
## Total 45 (100.0%) 23 (100.0%) 68 (100.0%)
##
## $NA_
## reboa_early_t
## mortality_24h Tardio Temprano Total
## 0 68 (55.7%) 39 (73.6%) 107 (61.1%)
## 1 54 (44.3%) 14 (26.4%) 68 (38.9%)
## Total 122 (100.0%) 53 (100.0%) 175 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>%
tabyl(mortality_24h,reboa_early_t, trans.masiva)
lapply(le, function (x) {
fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.07316
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.03162525 1.35363165
## sample estimates:
## odds ratio
## 0.2371487
##
##
## $`1`
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.3828
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.1083998 2.0271613
## sample estimates:
## odds ratio
## 0.5229844
##
##
## $NA_
##
## Fisher's Exact Test for Count Data
##
## data: as.data.frame(x[, 2:3])
## p-value = 0.02897
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.2055658 0.9599426
## sample estimates:
## odds ratio
## 0.45404
En el modelo la transfusion masiva NO fue estadisticamente significativa
model_reboa.tm <- glm(mortality_24h ~ reboa_early + trans.masiva,
family = binomial(link = "logit"),
data = model_database.2)
summ(model_reboa.tm, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 104 (175 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(2) = 4.267, p = 0.118
## Pseudo-R² (Cragg-Uhler) = 0.059
## Pseudo-R² (McFadden) = 0.036
## AIC = 120.845, BIC = 128.778
##
## Standard errors: MLE
## ---------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## ------------------ ----------- ------- ------- -------- -------
## (Intercept) 0.635 0.266 1.517 -1.022 0.307
## reboa_early 0.368 0.135 1.000 -1.961 0.050
## trans.masiva 0.696 0.267 1.815 -0.742 0.458
## ---------------------------------------------------------------
Segun este modelo la ausencia de respuesta pupilar es el unico factor de riesgo para la mortalidad a 24 horas representativo. En cambio, el uso del REBOA temprano, estar en lso grupos de edad de 20-39 y 40-59 años son factores protectores.
model_reboa.1 <- glm(mortality_24h ~ reboa_early + cpr_admission + age_2 + pupilar_absent,
family = binomial(link = "logit"),
data = model_database.2)
summ (model_reboa.1, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(6) = 54.185, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.247
## Pseudo-R² (McFadden) = 0.154
## AIC = 312.541, BIC = 337.884
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.798 0.321 1.980 -0.487 0.626
## reboa_early 0.356 0.188 0.674 -3.176 0.001
## cpr_admission 1.001 0.475 2.107 0.001 0.999
## age_220-39 0.323 0.120 0.866 -2.247 0.025
## age_240-59 0.327 0.118 0.908 -2.144 0.032
## age_260 0.691 0.253 1.888 -0.721 0.471
## pupilar_absent 5.106 2.824 9.232 5.395 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.1$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.1))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.1)
## X-squared = 5.042, df = 8, p-value = 0.7531
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.1, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.1, type = "response"))
##
## Data: predict(model_reboa.1, type = "response") in 183 controls (deaths 0) < 93 cases (deaths 1).
## Area under the curve: 0.757
En este modelo que excluye a la edad sigue siendo el REBOA temprano un factor protector, la respuesta pupilar el factor de riesgo
model_reboa.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent,
family = binomial(link = "logit"),
data = model_database.2)
summ (model_reboa.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(3) = 44.565, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.204
## Pseudo-R² (McFadden) = 0.125
## AIC = 321.318, BIC = 335.843
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.359 0.241 0.535 -5.036 0.000
## reboa_early 0.379 0.205 0.699 -3.104 0.002
## cpr_admission 1.071 0.513 2.240 0.184 0.854
## pupilar_absent 4.812 2.730 8.481 5.434 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.2))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.2)
## X-squared = 0.052551, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.2, type = "response"))
##
## Data: predict(model_reboa.2, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.7245
Este modelo muestra que el REBOA temprano no alcanza a ser estadisticamente significativo. El unico que es factor de riesgo sigue siendo la ausencia de respuesta pupilar
Estos datos estan perdidos porque el ABO-Trauma registry no tenia esa informacion directa de las transfusiones.
model_reboa.3 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
family = binomial(link = "logit"),
data = model_database.2)
summ (model_reboa.3, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 104 (175 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(4) = 33.983, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.409
## Pseudo-R² (McFadden) = 0.285
## AIC = 95.129, BIC = 108.351
##
## Standard errors: MLE
## ------------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- -------- -------- -------
## (Intercept) 0.188 0.055 0.642 -2.669 0.008
## reboa_early 0.371 0.111 1.240 -1.611 0.107
## cpr_admission 1.167 0.311 4.382 0.229 0.819
## pupilar_absent 15.331 4.701 50.000 4.526 0.000
## trans.masiva 0.830 0.257 2.686 -0.310 0.756
## ------------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.3)
## X-squared = 5.2457, df = 8, p-value = 0.731
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3, type = "response"))
##
## Data: predict(model_reboa.3, type = "response") in 77 controls (deaths 0) < 27 cases (deaths 1).
## Area under the curve: 0.8095
Pero en este modelo que no excluye a los pacientes, el REBOA temprano sigue siendo un factor protector.
## Una copia de la base para no afectar la general
model_database.2_2 <- model_database.2
model_database.2_2$trans.masiva[is.na(model_database.2_2$trans.masiva)] <- 0
model_reboa.3.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
family = binomial(link = "logit"),
data = model_database.2_2)
summ (model_reboa.3.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(4) = 46.246, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.211
## Pseudo-R² (McFadden) = 0.129
## AIC = 321.637, BIC = 339.793
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.401 0.261 0.616 -4.172 0.000
## reboa_early 0.378 0.204 0.698 -3.105 0.002
## cpr_admission 1.115 0.532 2.338 0.289 0.773
## pupilar_absent 4.609 2.606 8.154 5.250 0.000
## trans.masiva 0.647 0.332 1.262 -1.278 0.201
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3.2))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.3.2)
## X-squared = 3.457, df = 8, p-value = 0.9025
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3.2, type = "response"))
##
## Data: predict(model_reboa.3.2, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.7369
En este modelo se excluyo el paro prehospitalario. El REBOA temprano sigue siendo un factor protector junto con los grupos de edad de 20-39 y 40-59 años
model_reboa.4 <- glm(mortality_24h ~ reboa_early + age_2 + pupilar_absent,
family = binomial(link = "logit"),
data = model_database.2)
summ (model_reboa.4, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
## Family: binomial
## Link function: logit
##
## MODEL FIT:
## <U+03C7>²(5) = 54.185, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.247
## Pseudo-R² (McFadden) = 0.154
## AIC = 310.541, BIC = 332.264
##
## Standard errors: MLE
## -----------------------------------------------------------------
## exp(Est.) 2.5% 97.5% z val. p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept) 0.798 0.328 1.942 -0.497 0.619
## reboa_early 0.356 0.190 0.667 -3.224 0.001
## age_220-39 0.323 0.121 0.862 -2.258 0.024
## age_240-59 0.327 0.118 0.903 -2.157 0.031
## age_260 0.691 0.254 1.877 -0.725 0.468
## pupilar_absent 5.107 2.893 9.014 5.624 0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.4$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.4))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: deaths, fitted(model_reboa.4)
## X-squared = 4.5846, df = 8, p-value = 0.8009
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.4, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
##
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.4, type = "response"))
##
## Data: predict(model_reboa.4, type = "response") in 183 controls (deaths 0) < 93 cases (deaths 1).
## Area under the curve: 0.7569