## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Warning: package 'meta' was built under R version 4.3.3
## Loading required package: metadat
## Warning: package 'metadat' was built under R version 4.3.3
## Loading 'meta' package (version 7.0-0).
## Type 'help(meta)' for a brief overview.
## Readers of 'Meta-Analysis with R (Use R!)' should install
## older version of 'meta' package: https://tinyurl.com/dt4y5drs
Total treatment duration
# Cargar las librerías necesarias
library(dplyr)
library(meta)
# Crear un dataframe con los datos
treatment_duration_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
Me_Intervention = c(5.3, 4.8, 6.2, 11.5, 4.5, 9.5), # Media del grupo de intervención
Se_Intervention = c(1.4, 3, 2.06, 3.4, 1.2, 4.06), # Error estándar del grupo de intervención
Ne_Intervention = c(212, 125, 3474, 303, 30, 70), # Tamaño de muestra del grupo de intervención
Mc_Control = c(5.2, 4.8, 6.2, 11.25, 4.5, 9.5), # Media del grupo de control
Sc_Control = c(1.4, 2.8, 2.07, 3.1, 1.4, 4.06), # Error estándar del grupo de control
Nc_Control = c(220, 124, 3507, 304, 30, 70) # Tamaño de muestra del grupo de control
)
# Meta-análisis de duración total del tratamiento
treatment_duration_meta <- metacont(
n.e = treatment_duration_data$Ne_Intervention,
mean.e = treatment_duration_data$Me_Intervention,
sd.e = treatment_duration_data$Se_Intervention,
n.c = treatment_duration_data$Nc_Control,
mean.c = treatment_duration_data$Mc_Control,
sd.c = treatment_duration_data$Sc_Control,
studlab = paste(treatment_duration_data$Author, treatment_duration_data$Year),
data = treatment_duration_data,
sm = "SMD", # Utilizar la diferencia de medias estandarizada
method.tau = "PM" # Método de DerSimonian-Laird
)
# Resumen
summary(treatment_duration_meta)
## SMD 95%-CI %W(common) %W(random)
## Dulhunty 2015 0.0713 [-0.1174; 0.2600] 5.1 5.1
## Hagel 2022 0.0000 [-0.2484; 0.2484] 2.9 2.9
## Dulhunty 2024 0.0000 [-0.0469; 0.0469] 82.4 82.4
## Landoni 2023 0.0768 [-0.0824; 0.2359] 7.2 7.2
## Dulhunty 2013 0.0000 [-0.5061; 0.5061] 0.7 0.7
## Abdul-Aziz 2016 0.0000 [-0.3313; 0.3313] 1.7 1.7
##
## Number of studies: k = 6
## Number of observations: o = 8469 (o.e = 4214, o.c = 4255)
##
## SMD 95%-CI z p-value
## Common effect model 0.0091 [-0.0335; 0.0517] 0.42 0.6744
## Random effects model 0.0091 [-0.0335; 0.0517] 0.42 0.6744
##
## Quantifying heterogeneity:
## tau^2 = 0 [0.0000; 0.0018]; tau = 0 [0.0000; 0.0424]
## I^2 = 0.0% [0.0%; 74.6%]; H = 1.00 [1.00; 1.99]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.27 5 0.9385
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
## - Hedges' g (bias corrected standardised mean difference; using exact formulae)
# Gráfico de bosque
forest(treatment_duration_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "Total Treatment Duration",
common = FALSE,
col.diamond = "lightblue",
col.square = "darkblue",
addrow = FALSE,
label.right = "Favors Control",
label.left = "Favors Intervention",
bottom.lr = TRUE,
ff.lr = "bold",
colgap = "10mm",
pooled.events = TRUE,
addrow.overall = TRUE,
overall = TRUE,
col.by = "black",
xlim = c(-2, 2)) # Ajustar límites según sea necesario
All-cause mortality
# Crear el dataframe para la mortalidad por todas las causas
mortality_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(32, 27, 864, 127, 28, 18), # Eventos en el grupo de intervención
TE = c(212, 125, 3474, 303, 30, 70), # Total en el grupo de intervención
EC = c(38, 32, 939, 127, 26, 26), # Eventos en el grupo de control
TC = c(220, 127, 3507, 304, 30, 70) # Total en el grupo de control
)
# Verificar la estructura del dataframe
str(mortality_data)
## 'data.frame': 6 obs. of 6 variables:
## $ Author: chr "Dulhunty" "Hagel" "Dulhunty" "Landoni" ...
## $ Year : num 2015 2022 2024 2023 2013 ...
## $ EE : num 32 27 864 127 28 18
## $ TE : num 212 125 3474 303 30 ...
## $ EC : num 38 32 939 127 26 26
## $ TC : num 220 127 3507 304 30 ...
# Realizar el meta-análisis para mortalidad por todas las causas
mortality_meta <- metabin(
event.e = mortality_data$EE, # Eventos en el grupo de intervención
n.e = mortality_data$TE, # Total en el grupo de intervención
event.c = mortality_data$EC, # Eventos en el grupo de control
n.c = mortality_data$TC, # Total en el grupo de control
sm = "OR", # Medida de efecto, puedes cambiar a "RR" si es necesario
studlab = paste(mortality_data$Author, mortality_data$Year), # Etiquetas de los estudios
data = mortality_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen del meta-análisis para mortalidad por todas las causas
summary(mortality_meta)
## OR 95%-CI %W(common) %W(random)
## Dulhunty 2015 0.8515 [0.5096; 1.4228] 3.6 3.6
## Hagel 2022 0.8179 [0.4558; 1.4678] 2.8 2.8
## Dulhunty 2024 0.9053 [0.8132; 1.0078] 82.4 82.4
## Landoni 2023 1.0057 [0.7284; 1.3885] 9.1 9.1
## Dulhunty 2013 2.1538 [0.3635; 12.7635] 0.3 0.3
## Abdul-Aziz 2016 0.5858 [0.2844; 1.2068] 1.8 1.8
##
## Number of studies: k = 6
## Number of observations: o = 8472 (o.e = 4214, o.c = 4258)
## Number of events: e = 2284
##
## OR 95%-CI z p-value
## Common effect model 0.9046 [0.8207; 0.9972] -2.02 0.0437
## Random effects model 0.9046 [0.8207; 0.9972] -2.02 0.0437
##
## Quantifying heterogeneity:
## tau^2 = 0 [0.0000; 0.5892]; tau = 0 [0.0000; 0.7676]
## I^2 = 0.0% [0.0%; 74.6%]; H = 1.00 [1.00; 1.99]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.88 5 0.7179
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque para visualizar los resultados
forest(mortality_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "All-cause Mortality", # Etiqueta para la medida de efecto
common = FALSE, # No usar un efecto común
col.diamond = "lightblue", # Color del diamante
col.square = "darkblue", # Color del cuadrado
addrow = FALSE, # No agregar filas adicionales
label.right = "Favors Control", # Etiqueta derecha
label.left = "Favors Intervention", # Etiqueta izquierda
bottom.lr = TRUE, # Poner la leyenda en la parte inferior
ff.lr = "bold", # Negrita para la leyenda
colgap = "10mm", # Espacio entre columnas
pooled.events = TRUE, # Mostrar eventos combinados
addrow.overall = TRUE, # Agregar fila para el total
overall = TRUE, # Mostrar resultados generales
col.by = "black", # Color de la columna general
xlim = c(0.1, 10)) # Limites del eje x (ajustar según sea necesario)
Survival at study completion
# Crear el dataframe para la supervivencia al finalizar el estudio
survival_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(180, 98, 2610, 176, 2, 52), # Eventos en el grupo de intervención (supervivientes)
TE = c(212, 125, 3474, 303, 30, 70), # Total en el grupo de intervención
EC = c(174, 93, 2535, 176, 4, 44), # Eventos en el grupo de control (supervivientes)
TC = c(220, 127, 3507, 304, 30, 70) # Total en el grupo de control
)
# Verificar la estructura del dataframe
str(survival_data)
## 'data.frame': 6 obs. of 6 variables:
## $ Author: chr "Dulhunty" "Hagel" "Dulhunty" "Landoni" ...
## $ Year : num 2015 2022 2024 2023 2013 ...
## $ EE : num 180 98 2610 176 2 52
## $ TE : num 212 125 3474 303 30 ...
## $ EC : num 174 93 2535 176 4 ...
## $ TC : num 220 127 3507 304 30 ...
# Realizar el meta-análisis para supervivencia al finalizar el estudio
survival_meta <- metabin(
event.e = survival_data$EE, # Eventos en el grupo de intervención
n.e = survival_data$TE, # Total en el grupo de intervención
event.c = survival_data$EC, # Eventos en el grupo de control
n.c = survival_data$TC, # Total en el grupo de control
sm = "OR", # Medida de efecto: Odds Ratio
studlab = paste(survival_data$Author, survival_data$Year), # Etiquetas de los estudios
data = survival_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen del meta-análisis para supervivencia al finalizar el estudio
summary(survival_meta)
## OR 95%-CI %W(common) %W(random)
## Dulhunty 2015 1.4871 [0.9047; 2.4443] 3.8 3.8
## Hagel 2022 1.3270 [0.7434; 2.3687] 2.8 2.8
## Dulhunty 2024 1.1583 [1.0411; 1.2887] 82.3 82.3
## Landoni 2023 1.0079 [0.7301; 1.3912] 9.0 9.0
## Dulhunty 2013 0.4643 [0.0783; 2.7513] 0.3 0.3
## Abdul-Aziz 2016 1.7071 [0.8287; 3.5167] 1.8 1.8
##
## Number of studies: k = 6
## Number of observations: o = 8472 (o.e = 4214, o.c = 4258)
## Number of events: e = 6144
##
## OR 95%-CI z p-value
## Common effect model 1.1641 [1.0567; 1.2824] 3.08 0.0021
## Random effects model 1.1641 [1.0567; 1.2824] 3.08 0.0021
##
## Quantifying heterogeneity:
## tau^2 = 0 [0.0000; 0.7350]; tau = 0 [0.0000; 0.8573]
## I^2 = 0.0% [0.0%; 74.6%]; H = 1.00 [1.00; 1.99]
##
## Test of heterogeneity:
## Q d.f. p-value
## 4.01 5 0.5483
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque para visualizar los resultados
forest(survival_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "Survival at Study Completion", # Etiqueta para la medida de efecto
common = FALSE, # No usar un efecto común
col.diamond = "lightblue", # Color del diamante
col.square = "darkblue", # Color del cuadrado
addrow = FALSE, # No agregar filas adicionales
label.right = "Favors Control ", # Etiqueta derecha
label.left = "Favors Intervention", # Etiqueta izquierda
bottom.lr = TRUE, # Poner la leyenda en la parte inferior
ff.lr = "bold", # Negrita para la leyenda
colgap = "10mm", # Espacio entre columnas
pooled.events = TRUE, # Mostrar eventos combinados
addrow.overall = TRUE, # Agregar fila para el total
overall = TRUE, # Mostrar resultados generales
col.by = "black", # Color de la columna general
xlim = c(0.1, 10)) # Limites del eje x (ajustar según sea necesario)
ICU survivors
# Cargar las librerías necesarias
library(dplyr)
library(meta)
# Crear el dataframe para los sobrevivientes en la UCI
icu_survivors_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(180, NA, 2829, NA, 28, 21), # Eventos en el grupo de intervención (supervivientes)
TE = c(212, NA, 3474, NA, 30, 70), # Total en el grupo de intervención
EC = c(182, NA, 2862, NA, 26, 21), # Eventos en el grupo de control (supervivientes)
TC = c(220, NA, 3507, NA, 30, 70) # Total en el grupo de control
)
# Verificar la estructura del dataframe
str(icu_survivors_data)
## 'data.frame': 6 obs. of 6 variables:
## $ Author: chr "Dulhunty" "Hagel" "Dulhunty" "Landoni" ...
## $ Year : num 2015 2022 2024 2023 2013 ...
## $ EE : num 180 NA 2829 NA 28 ...
## $ TE : num 212 NA 3474 NA 30 ...
## $ EC : num 182 NA 2862 NA 26 ...
## $ TC : num 220 NA 3507 NA 30 ...
# Filtrar los datos para eliminar filas con datos no reportados
icu_survivors_data <- icu_survivors_data %>%
filter(!is.na(EE) & !is.na(TE) & !is.na(EC) & !is.na(TC))
# Realizar el meta-análisis para sobrevivientes en la UCI
icu_survivors_meta <- metabin(
event.e = icu_survivors_data$EE, # Eventos en el grupo de intervención
n.e = icu_survivors_data$TE, # Total en el grupo de intervención
event.c = icu_survivors_data$EC, # Eventos en el grupo de control
n.c = icu_survivors_data$TC, # Total en el grupo de control
sm = "RR", # Medida de efecto: Riesgo Relativo
studlab = paste(icu_survivors_data$Author, icu_survivors_data$Year), # Etiquetas de los estudios
data = icu_survivors_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen del meta-análisis para sobrevivientes en la UCI
summary(icu_survivors_meta)
## RR 95%-CI %W(common) %W(random)
## Dulhunty 2015 1.0263 [0.9447; 1.1150] 6.7 6.7
## Dulhunty 2024 0.9979 [0.9758; 1.0204] 91.6 91.6
## Dulhunty 2013 1.0769 [0.9087; 1.2763] 1.6 1.6
## Abdul-Aziz 2016 1.0000 [0.6029; 1.6587] 0.2 0.2
##
## Number of studies: k = 4
## Number of observations: o = 7613 (o.e = 3786, o.c = 3827)
## Number of events: e = 6149
##
## RR 95%-CI z p-value
## Common effect model 1.0009 [0.9798; 1.0226] 0.09 0.9313
## Random effects model 1.0009 [0.9798; 1.0226] 0.09 0.9313
##
## Quantifying heterogeneity:
## tau^2 = 0 [0.0000; 0.0102]; tau = 0 [0.0000; 0.1010]
## I^2 = 0.0% [0.0%; 84.7%]; H = 1.00 [1.00; 2.56]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.14 3 0.7681
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque para visualizar los resultados
forest(icu_survivors_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "ICU Survivors", # Etiqueta para la medida de efecto
common = FALSE, # No usar un efecto común
col.diamond = "lightblue", # Color del diamante
col.square = "darkblue", # Color del cuadrado
addrow = FALSE, # No agregar filas adicionales
label.right = "Favors Control", # Etiqueta derecha
label.left = "Favors Intervention", # Etiqueta izquierda
bottom.lr = TRUE, # Poner la leyenda en la parte inferior
ff.lr = "bold", # Negrita para la leyenda
colgap = "10mm", # Espacio entre columnas
pooled.events = TRUE, # Mostrar eventos combinados
addrow.overall = TRUE, # Agregar fila para el total
overall = TRUE, # Mostrar resultados generales
col.by = "black", # Color de la columna general
xlim = c(0.1, 10)) # Limites del eje x (ajustar según sea necesario)
Hospital survivors
# Cargar las librerías necesarias
library(dplyr)
library(meta)
# Crear el dataframe para los sobrevivientes en el hospital
hospital_survivors_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(168, NA, 2666, NA, 27, NA), # Eventos en el grupo de intervención (supervivientes)
TE = c(212, NA, 3474, NA, 30, NA), # Total en el grupo de intervención
EC = c(164, NA, 2629, NA, 24, NA), # Eventos en el grupo de control (supervivientes)
TC = c(220, NA, 3507, NA, 30, NA) # Total en el grupo de control
)
# Verificar la estructura del dataframe
str(hospital_survivors_data)
## 'data.frame': 6 obs. of 6 variables:
## $ Author: chr "Dulhunty" "Hagel" "Dulhunty" "Landoni" ...
## $ Year : num 2015 2022 2024 2023 2013 ...
## $ EE : num 168 NA 2666 NA 27 ...
## $ TE : num 212 NA 3474 NA 30 ...
## $ EC : num 164 NA 2629 NA 24 ...
## $ TC : num 220 NA 3507 NA 30 ...
# Filtrar los datos para eliminar filas con datos no reportados
hospital_survivors_data <- hospital_survivors_data %>%
filter(!is.na(EE) & !is.na(TE) & !is.na(EC) & !is.na(TC))
# Realizar el meta-análisis para sobrevivientes en el hospital
hospital_survivors_meta <- metabin(
event.e = hospital_survivors_data$EE, # Eventos en el grupo de intervención
n.e = hospital_survivors_data$TE, # Total en el grupo de intervención
event.c = hospital_survivors_data$EC, # Eventos en el grupo de control
n.c = hospital_survivors_data$TC, # Total en el grupo de control
sm = "RR", # Medida de efecto: Riesgo Relativo
studlab = paste(hospital_survivors_data$Author, hospital_survivors_data$Year), # Etiquetas de los estudios
data = hospital_survivors_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen del meta-análisis para sobrevivientes en el hospital
summary(hospital_survivors_meta)
## RR 95%-CI %W(common) %W(random)
## Dulhunty 2015 1.0630 [0.9585; 1.1789] 6.1 6.1
## Dulhunty 2024 1.0237 [0.9970; 1.0512] 92.5 92.5
## Dulhunty 2013 1.1250 [0.9073; 1.3949] 1.4 1.4
##
## Number of studies: k = 3
## Number of observations: o = 7473 (o.e = 3716, o.c = 3757)
## Number of events: e = 5678
##
## RR 95%-CI z p-value
## Common effect model 1.0274 [1.0016; 1.0539] 2.08 0.0375
## Random effects model 1.0274 [1.0016; 1.0539] 2.08 0.0375
##
## Quantifying heterogeneity:
## tau^2 = 0 [0.0000; 0.0823]; tau = 0 [0.0000; 0.2869]
## I^2 = 0.0% [0.0%; 89.6%]; H = 1.00 [1.00; 3.10]
##
## Test of heterogeneity:
## Q d.f. p-value
## 1.17 2 0.5564
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque para visualizar los resultados
forest(hospital_survivors_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "Hospital Survivors", # Etiqueta para la medida de efecto
common = FALSE, # No usar un efecto común
col.diamond = "lightblue", # Color del diamante
col.square = "darkblue", # Color del cuadrado
addrow = FALSE, # No agregar filas adicionales
label.right = "Favors Control", # Etiqueta derecha
label.left = "Favors Intervention", # Etiqueta izquierda
bottom.lr = TRUE, # Poner la leyenda en la parte inferior
ff.lr = "bold", # Negrita para la leyenda
colgap = "10mm", # Espacio entre columnas
pooled.events = TRUE, # Mostrar eventos combinados
addrow.overall = TRUE, # Agregar fila para el total
overall = TRUE, # Mostrar resultados generales
col.by = "black", # Color de la columna general
xlim = c(0.1, 10)) # Limites del eje x (ajustar según sea necesario)
Clinical cure
library(dplyr)
library(meta)
# Dataframe de curación clínica general
clinical_cure_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(111, 21, 1930, NA, 23, 39),
TE = c(212, 59, 3467, NA, 30, 70),
EC = c(109, 12, 1744, NA, 13, 24),
TC = c(220, 69, 3491, NA, 30, 70)
)
# Eliminar filas con datos no reportados
clinical_cure_data <- clinical_cure_data %>%
filter(!is.na(EE) & !is.na(TE) & !is.na(EC) & !is.na(TC))
#Meta-análisis curación clínica
clinical_cure_meta <- metabin(
event.e = clinical_cure_data$EE,
n.e = clinical_cure_data$TE,
event.c = clinical_cure_data$EC,
n.c = clinical_cure_data$TC,
sm = "RR",
studlab = paste(clinical_cure_data$Author, clinical_cure_data$Year),
data = clinical_cure_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen
summary(clinical_cure_meta)
## RR 95%-CI %W(common) %W(random)
## Dulhunty 2015 1.0568 [0.8782; 1.2717] 5.3 26.4
## Hagel 2022 2.0466 [1.1029; 3.7979] 0.5 10.4
## Dulhunty 2024 1.1143 [1.0658; 1.1651] 92.1 30.8
## Dulhunty 2013 1.7692 [1.1232; 2.7868] 0.9 15.0
## Abdul-Aziz 2016 1.6250 [1.1049; 2.3899] 1.2 17.5
##
## Number of studies: k = 5
## Number of observations: o = 7718 (o.e = 3838, o.c = 3880)
## Number of events: e = 4026
##
## RR 95%-CI z p-value
## Common effect model 1.1242 [1.0771; 1.1733] 5.37 < 0.0001
## Random effects model 1.3399 [1.0497; 1.7102] 2.35 0.0188
##
## Quantifying heterogeneity:
## tau^2 = 0.0499 [0.0007; 0.6607]; tau = 0.2233 [0.0273; 0.8129]
## I^2 = 65.3% [9.1%; 86.7%]; H = 1.70 [1.05; 2.75]
##
## Test of heterogeneity:
## Q d.f. p-value
## 11.52 4 0.0213
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque
forest(clinical_cure_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "Clinical Cure",
common = FALSE,
col.diamond = "lightblue",
col.square = "darkblue",
addrow = FALSE,
label.right = "Favors Control",
label.left = "Favors Intervention",
bottom.lr = TRUE,
ff.lr = "bold",
colgap = "10mm",
pooled.events = TRUE,
addrow.overall = TRUE,
overall = TRUE,
col.by = "black",
xlim = c(0.1, 10))
Days alive and free from the ICU at day 28
library(meta)
# Crear un dataframe con los datos
data <- data.frame(
Author = c("Dulhunty 2015", "Dulhunty 2024", "Landoni 2023", "Dulhunty 2013", "Abdul-Aziz 2016"),
Year = c(2015, 2024, 2023, 2013, 2016),
Me_Intervention = c(15.5, 67.75, 4.75, 18.93, 20),
DE_Intervention = c(6.3, 15.2, 5.51, 3.23, 3.15),
Ne_Intervention = c(212, 3474, 303, 30, 70),
Me_Control = c(16.75, 64.5, 4.75, 9.31, 17),
DE_Control = c(6.03, 17.8, 5.51, 2.68, 6.91),
Nc_Control = c(220, 3507, 304, 30, 70)
)
# Filtrar datos que no tienen tamaños de muestra (en este caso no hay NA)
data <- na.omit(data)
# Calcular la diferencia de medias y su error estándar
data$Mean_Difference <- data$Me_Intervention - data$Me_Control
data$SE_Difference <- sqrt((data$DE_Intervention^2 / data$Ne_Intervention) + (data$DE_Control^2 / data$Nc_Control))
# Crear el meta-análisis
meta_analysis <- metagen(
TE = data$Mean_Difference,
seTE = data$SE_Difference,
studlab = data$Author,
data = data,
sm = "MD" # Diferencia de medias
)
# Resumen del meta-análisis
summary(meta_analysis)
## MD 95%-CI %W(common) %W(random)
## Dulhunty 2015 -1.2500 [-2.4137; -0.0863] 16.6 20.1
## Dulhunty 2024 3.2500 [ 2.4738; 4.0262] 37.2 20.3
## Landoni 2023 0.0000 [-0.8767; 0.8767] 29.2 20.3
## Dulhunty 2013 9.6200 [ 8.1181; 11.1219] 9.9 19.8
## Abdul-Aziz 2016 3.0000 [ 1.2210; 4.7790] 7.1 19.6
##
## Number of studies: k = 5
##
## MD 95%-CI z p-value
## Common effect model 2.1719 [ 1.6983; 2.6455] 8.99 < 0.0001
## Random effects model 2.9014 [-0.7767; 6.5796] 1.55 0.1221
##
## Quantifying heterogeneity:
## tau^2 = 17.1886 [5.8838; 145.9212]; tau = 4.1459 [2.4256; 12.0798]
## I^2 = 97.5% [96.0%; 98.4%]; H = 6.31 [4.98; 8.01]
##
## Test of heterogeneity:
## Q d.f. p-value
## 159.52 4 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
## [1] "Q: 159.515326512751"
## [1] "I²: 0.974924039667873"
Lenght of ICU stay, mean, d
library(meta)
# Crear un dataframe con los datos
data <- data.frame(
Author = c("Dulhunty 2015", "Hagel 2022", "Dulhunty 2024", "Landoni 2023", "Dulhunty 2013", "Abdul-Aziz 2016"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
Me_Intervention = c(7.5, 9.25, 67.75, 12.25, 7.75, 8),
DE_Intervention = c(2.8, 3.18, 15.2, 4.9, 2.32, 1.42),
Ne_Intervention = c(212, 125, 3474, 303, 30, 70),
Me_Control = c(6.5, 11.5, 64.5, 13, 9.31, 6),
DE_Control = c(2.3, 2.8, 17.8, 5.79, 2.68, 2.62),
Nc_Control = c(220, 124, 3507, 304, 30, 70)
)
# Filtrar datos que no tienen tamaños de muestra (en este caso no hay NA)
data <- na.omit(data)
# Calcular la diferencia de medias y su error estándar
data$Mean_Difference <- data$Me_Intervention - data$Me_Control
data$SE_Difference <- sqrt((data$DE_Intervention^2 / data$Ne_Intervention) + (data$DE_Control^2 / data$Nc_Control))
# Crear el meta-análisis
meta_analysis <- metagen(
TE = data$Mean_Difference,
seTE = data$SE_Difference,
studlab = data$Author,
data = data,
sm = "MD" # Diferencia de medias
)
# Resumen del meta-análisis
summary(meta_analysis)
## MD 95%-CI %W(common) %W(random)
## Dulhunty 2015 1.0000 [ 0.5158; 1.4842] 36.2 17.1
## Hagel 2022 -2.2500 [-2.9941; -1.5059] 15.3 16.8
## Dulhunty 2024 3.2500 [ 2.4738; 4.0262] 14.1 16.8
## Landoni 2023 -0.7500 [-1.6032; 0.1032] 11.7 16.6
## Dulhunty 2013 -1.5600 [-2.8284; -0.2916] 5.3 15.8
## Abdul-Aziz 2016 2.0000 [ 1.3019; 2.6981] 17.4 16.9
##
## Number of studies: k = 6
##
## MD 95%-CI z p-value
## Common effect model 0.6537 [ 0.3623; 0.9451] 4.40 < 0.0001
## Random effects model 0.3028 [-1.4170; 2.0226] 0.35 0.7300
##
## Quantifying heterogeneity:
## tau^2 = 4.4395 [1.6199; 27.6580]; tau = 2.1070 [1.2728; 5.2591]
## I^2 = 96.4% [94.2%; 97.8%]; H = 5.29 [4.17; 6.71]
##
## Test of heterogeneity:
## Q d.f. p-value
## 139.83 5 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
## [1] "Q: 139.825888863471"
## [1] "I²: 0.96424124287254"
Lenght of hospital stay, mean, d
library(meta)
# Crear un dataframe con los datos
data <- data.frame(
Author = c("Dulhunty 2015", "Hagel 2022", "Dulhunty 2024", "Landoni 2023"),
Year = c(2015, 2022, 2024, 2023),
Me_Intervention = c(18, 9.25, 44.25, 23),
DE_Intervention = c(6.9, 3.18, 21.05, 7.5),
Ne_Intervention = c(212, 125, 3474, 303),
Me_Control = c(15.75, 23.25, 42, 23.5),
DE_Control = c(5.49, 3.7, 20.7, 8.6),
Nc_Control = c(220, 124, 3507, 304)
)
# Filtrar datos que no tienen tamaños de muestra (excluir estudios no reportados)
data <- na.omit(data)
# Calcular la diferencia de medias y su error estándar
data$Mean_Difference <- data$Me_Intervention - data$Me_Control
data$SE_Difference <- sqrt((data$DE_Intervention^2 / data$Ne_Intervention) + (data$DE_Control^2 / data$Nc_Control))
# Crear el meta-análisis
meta_analysis <- metagen(
TE = data$Mean_Difference,
seTE = data$SE_Difference,
studlab = data$Author,
data = data,
sm = "MD" # Diferencia de medias
)
# Resumen del meta-análisis
summary(meta_analysis)
## MD 95%-CI %W(common) %W(random)
## Dulhunty 2015 2.2500 [ 1.0715; 3.4285] 19.3 25.0
## Hagel 2022 -14.0000 [-14.8573; -13.1427] 36.5 25.0
## Dulhunty 2024 2.2500 [ 1.2705; 3.2295] 27.9 25.0
## Landoni 2023 -0.5000 [ -1.7836; 0.7836] 16.3 25.0
##
## Number of studies: k = 4
##
## MD 95%-CI z p-value
## Common effect model -4.1257 [ -4.6435; -3.6079] -15.62 < 0.0001
## Random effects model -2.5064 [-10.1367; 5.1238] -0.64 0.5197
##
## Quantifying heterogeneity:
## tau^2 = 60.3161 [19.1767; >603.1606]; tau = 7.7663 [4.3791; >24.5593]
## I^2 = 99.6% [99.5%; 99.7%]; H = 16.49 [14.28; 19.04]
##
## Test of heterogeneity:
## Q d.f. p-value
## 815.52 3 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - Restricted maximum-likelihood estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
## [1] "Q: 815.518622520315"
## [1] "I²: 0.996321359295599"
Adverse events
# Cargar las librerías necesarias
library(dplyr)
library(meta)
# Crear un dataframe con los datos
adverse_events_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
EE = c(20, 20, 10, 0, 0, NA), # Eventos en el grupo de intervención
TE = c(212, 125, 3498, 303, 30, NA), # Tamaño de muestra en el grupo de intervención
EC = c(28, 27, 6, 0, 0, NA), # Eventos en el grupo de control
TC = c(220, 124, 3533, 304, 30, NA) # Tamaño de muestra en el grupo de control
)
# Eliminar filas con datos no reportados
adverse_events_data <- adverse_events_data %>%
filter(!is.na(EE) & !is.na(TE) & !is.na(EC) & !is.na(TC))
# Meta-análisis de eventos adversos
adverse_events_meta <- metabin(
event.e = adverse_events_data$EE,
n.e = adverse_events_data$TE,
event.c = adverse_events_data$EC,
n.c = adverse_events_data$TC,
sm = "OR",
studlab = paste(adverse_events_data$Author, adverse_events_data$Year),
data = adverse_events_data,
method = "inverse",
method.tau = "PM",
method.tau.ci = "PL"
)
# Resumen
summary(adverse_events_meta)
## OR 95%-CI %W(common) %W(random)
## Dulhunty 2015 0.7143 [0.3890; 1.3116] 44.3 41.9
## Hagel 2022 0.6843 [0.3606; 1.2987] 39.8 39.0
## Dulhunty 2024 1.6853 [0.6119; 4.6420] 15.9 19.1
## Landoni 2023 NA 0.0 0.0
## Dulhunty 2013 NA 0.0 0.0
##
## Number of studies: k = 3
## Number of observations: o = 8379 (o.e = 4168, o.c = 4211)
## Number of events: e = 111
##
## OR 95%-CI z p-value
## Common effect model 0.8050 [0.5373; 1.2061] -1.05 0.2931
## Random effects model 0.8273 [0.5123; 1.3361] -0.78 0.4383
##
## Quantifying heterogeneity:
## tau^2 = 0.0465 [0.0000; 9.9985]; tau = 0.2156 [0.0000; 3.1620]
## I^2 = 18.0% [0.0%; 91.5%]; H = 1.10 [1.00; 3.42]
##
## Test of heterogeneity:
## Q d.f. p-value
## 2.44 2 0.2955
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
# Gráfico de bosque
forest(adverse_events_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "Adverse Events",
common = FALSE,
col.diamond = "lightblue",
col.square = "darkblue",
addrow = FALSE,
label.right = "Favors Control",
label.left = "Favors Intervention",
bottom.lr = TRUE,
ff.lr = "bold",
colgap = "10mm",
pooled.events = TRUE,
addrow.overall = TRUE,
overall = TRUE,
col.by = "black",
xlim = c(0.1, 10))
APACHE II
# Cargar las librerías necesarias
library(dplyr)
library(meta)
# Crear un dataframe con los datos
apache_data <- data.frame(
Author = c("Dulhunty", "Hagel", "Dulhunty", "Landoni", "Dulhunty", "Abdul-Aziz"),
Year = c(2015, 2022, 2024, 2023, 2013, 2016),
ME_Intervention = c(21.25, 23.2, 19.6, NA, 21, 21), # Media del grupo de intervención
DE_Intervention = c(2.6, 6.7, 7.6, NA, 8.6, 2.89), # Desviación estándar del grupo de intervención
Ne_Intervention = c(212, 125, 3474, 303, 30, 70), # Tamaño de muestra del grupo de intervención
ME_Control = c(20.25, 22.4, 19.5, NA, 23, 20.75), # Media del grupo de control
DE_Control = c(2.6, 5.7, 7.4, NA, 7.6, 3.16), # Desviación estándar del grupo de control
Ne_Control = c(220, 124, 3507, 304, 30, 70) # Tamaño de muestra del grupo de control
)
# Eliminar filas con datos no reportados
apache_data <- apache_data %>%
filter(!is.na(ME_Intervention) & !is.na(DE_Intervention) &
!is.na(ME_Control) & !is.na(DE_Control))
# Meta-análisis de APACHE II
apache_meta <- metacont(
n.e = apache_data$Ne_Intervention,
mean.e = apache_data$ME_Intervention,
sd.e = apache_data$DE_Intervention,
n.c = apache_data$Ne_Control,
mean.c = apache_data$ME_Control,
sd.c = apache_data$DE_Control,
studlab = paste(apache_data$Author, apache_data$Year),
data = apache_data,
sm = "SMD", # Utilizar la diferencia de medias estandarizada
method.tau = "PM" # Método de DerSimonian-Laird
)
# Resumen
summary(apache_meta)
## SMD 95%-CI %W(common) %W(random)
## Dulhunty 2015 0.3839 [ 0.1936; 0.5743] 5.4 23.8
## Hagel 2022 0.1282 [-0.1205; 0.3769] 3.2 19.9
## Dulhunty 2024 0.0133 [-0.0336; 0.0602] 88.9 32.4
## Dulhunty 2013 -0.2432 [-0.7513; 0.2648] 0.8 8.8
## Abdul-Aziz 2016 0.0821 [-0.2493; 0.4136] 1.8 15.2
##
## Number of studies: k = 5
## Number of observations: o = 7862 (o.e = 3911, o.c = 3951)
##
## SMD 95%-CI z p-value
## Common effect model 0.0363 [-0.0080; 0.0805] 1.61 0.1082
## Random effects model 0.1124 [-0.0629; 0.2878] 1.26 0.2089
##
## Quantifying heterogeneity:
## tau^2 = 0.0242 [0.0022; 0.3834]; tau = 0.1554 [0.0472; 0.6192]
## I^2 = 74.2% [35.9%; 89.6%]; H = 1.97 [1.25; 3.10]
##
## Test of heterogeneity:
## Q d.f. p-value
## 15.49 4 0.0038
##
## Details on meta-analytical method:
## - Inverse variance method
## - Paule-Mandel estimator for tau^2
## - Q-Profile method for confidence interval of tau^2 and tau
## - Hedges' g (bias corrected standardised mean difference; using exact formulae)
# Gráfico de bosque
forest(apache_meta,
lab.e = "Intervention Group",
lab.c = "Control Group",
smlab = "APACHE II Score",
common = FALSE,
col.diamond = "lightblue",
col.square = "darkblue",
addrow = FALSE,
label.right = "Favors Control",
label.left = "Favors Intervention",
bottom.lr = TRUE,
ff.lr = "bold",
colgap = "10mm",
pooled.events = TRUE,
addrow.overall = TRUE,
overall = TRUE,
col.by = "black",
xlim = c(-2, 2)) # Ajusta límites según sea necesario