1 1. Identificación del estudio

Titulo: Eficacia del entrenamiento muscular respiratorio en el destete de la ventilación mecánica en pacientes con ventilación mecánica por 48 o mas horas: un ensayo clínico controlado.

Autores: L.M. Sandoval Moreno, I.C. Casas Quiroga, E.C. Wilches Luna y A.F. Garcia.

Ano de publicacion: 2019 (publicado en Medicina Intensiva, volumen 43, numero 2, paginas 79–89).

Registro del ensayo: ClinicalTrials.gov (NCT02469064).

2 Planteamiento del problema

Considero que este estudio aborda una problemática de gran relevancia en el contexto de las unidades de cuidados intensivos (UCI), dado que aproximadamente el 35% de los pacientes que ingresan en estas unidades requieren ventilación mecánica (VM), y entre un 20% y un 30% de ellos presenta dificultades durante el proceso de destete; es decir, la transición desde la dependencia total del ventilador hacia la respiración autónoma.

Ademas, según los autores cerca del 50% de los pacientes con destete difícil requiere VM por 7 días o mas, lo cual expone a los pacientes a complicaciones serias como neumonía asociada al ventilador, isquemia traqueal, daño pulmonar y disfunción muscular diafragmática, incrementando así el riesgo de mortalidad y el consumo de recursos hospitalarios, que puede llegar hasta un 40% de los recursos totales de una UCI.

Por lo anterior, me parece que el entrenamiento muscular respiratorio (EMR) surge como una estrategia terapéutica potencialmente útil para mejorar la fuerza y resistencia de los músculos respiratorios; sin embargo, la evidencia disponible al momento de este estudio era contradictoria e insuficiente, con tamaños de muestra pequeños y ausencia de anáisis multivariados en los estudios previos.

Adicionalmente, en el ambito colombiano no se habían evaluado los efectos del EMR en pacientes con VM, lo cual justificaba plenamente la realización de esta investigación.

3 Pregunta de investigación

La pregunta que considero que guió este ensayo clinico fue:

En pacientes adultos hospitalizados en UCI con requerimiento de ventilación mecánica por 48 horas o mas, el entrenamiento muscular respiratorio con dispositivo Threshold (ajustado al 50% de la presión inspiratoria máxima), comparado con el cuidado estándar de fisioterapia respiratoria, es eficáz para reducir el tiempo de destete de la ventilación mecánica y mejorar la fuerza muscular respiratoria?

4 Estrategia PICOT

Tabla 1. Estrategia PICOT que considero del ensayo clínico de Sandoval et al. (2019)
Componente PICOT Descripción
P - Población Adultos (>= 18 años) hospitalizados en UCI de IV nivel en Cali (Colombia), con ventilación mecánica por 48 horas o más, primer evento de VM, estabilidad hemodinámica y gasimétrica definida (PaO2 > 60 mmHg con FiO2 <= 0.5, PEEP < 8 cmH2O, RASS entre -1 y 0).
I - Intervención Entrenamiento muscular respiratorio con dispositivo Threshold IMT, ajustado al 50% de la presión inspiratoria máxima (Pimáx), 2 veces al día, 3 series de 6-10 repeticiones con 2 minutos de descanso entre series, ADICIONAL al cuidado estándar.
C - Comparador Cuidado convencional de fisioterapia respiratoria en UCI (fisioterapia respiratoria, terapia física y manejo de la VM), SIN entrenamiento muscular respiratorio adicional.
O - Desenlace primario Tiempo de destete de la ventilación mecánica, definido como el período desde el inicio de VM en presión soporte (PS) con nivel de PS < 10 cmH2O hasta la extubación.
O - Desenlaces secundarios Fuerza muscular respiratoria (cambio en la Pimáx), frecuencia de destete fallido (reintubación o muerte en las primeras 48 horas post-extubación), requerimiento de ventilación mecánica no invasiva (VMNI).
T - Tiempo Seguimiento desde la aleatorización hasta la extubación o censura; período de reclutamiento de 7 meses.

Sección 2: Características de la población + Diseño metodológico + Aleatorización + Enmascaramiento

5 Características de la población

Considero importante describir con detalle las características de los participantes, ya que esto me permite evaluar la validez interna y externa del estudio.

Se aleatorizaron 126 pacientes en total, de los cuales 62 fueron asignados al grupo experimental (entrenamiento muscular respiratorio) y 64 al grupo convencional (cuidado estandar).

El promedio de edad fue de 57.49 años (mediana: 62, rango: 18-88), lo cual creo que refleja una población predominantemente adulta mayor, caracteristica esperable en una UCI de IV nivel; además, la talla promedio fue de 162.90 cm (mediana: 163, rango: 145-185).

Del total de participantes, 71 fueron hombres (56.3%) y 55 mujeres (43.7%), sin diferencias significativas entre los grupos en cuanto a genero (valor p = 0.48).

Un aspecto que me parece relevante es que 107 pacientes (84.9%) fueron intubados a nivel intrainstitucional y solo 19 (15.1%) a nivel extrainstitucional, con una tendencia a la diferencia entre grupos en este punto (valor p = 0.06), lo cual considero que podria sugerir que los pacientes del grupo experimental tenian mayor proporción de intubaciones fuera de la institución, un factor que potencialmente podria influir en la gravedad inicial.

En cuanto al diagnostico de ingreso, 93 pacientes (73.8%) ingresaron con diagnostico medico y 33 (26.2%) con diagnostico quirurgico, sin diferencias entre los grupos (valor p = 0.75).

En cuanto al tiempo promedio de ventilación mecánica previo al ingreso al protocolo fue de 86.53 horas (mediana: 66.5 horas), lo que me indica que los pacientes ya llevaban un periodo considerable de soporte ventilatorio antes de iniciar la intervencion.

5.1 Criterios de inclusión y exclusión

Tabla 2. Criterios de inclusión del ensayo clínico
No.  Criterios de inclusión
1 Edad >= 18 años
2 Requerimiento de ventilación mecánica >= 48 horas
3 Hospitalizados en UCI de IV nivel en Cali, Colombia
4 Primer evento de requerimiento de ventilación mecánica
5 Intubados dentro de la institución o remitidos hasta 12 horas post-intubación
6 PaO2 > 60 mmHg con FiO2 <= 0.5 (intercambio gaseoso aceptable)
7 PEEP < 8 cmH2O y RASS entre -1 y 0 (sedación leve o alerta)
8 Presión arterial media > 60 mmHg sin vasopresor o con dosis mínimas
Tabla 3. Criterios de exclusión del ensayo clínico
No.  Criterios de exclusión (con frecuencia observada)
1 Enfermedad neuromuscular progresiva (n = 14)
2 Lesión del sistema nervioso central (n = 151, la causa más frecuente de exclusión)
3 Lesión medular por encima de T5 (n = 6)
4 Enfermedad esquelética de caja torácica o columna vertebral (n = 2)
5 Traqueostomía o intubación nasotraqueal previa (n = 22)
6 Soporte ventilatorio domiciliario previo (n = 15)
7 Estado de gestación (n = 2)
8 Intubación nasotraqueal (n = 1)
9 Infección con gérmenes multirresistentes (n = 2)

Me parece fundamental señalar el flujo de pacientes a traves del estudio, pues de 491 pacientes elegibles que requirieron ventilación mecánica por 48 horas o mas durante los 7 meses de reclutamiento, 215 fueron excluidos por criterios de exclusión (siendo la lesion del sistema nervioso central la causa predominante con 151 casos), 148 no cumplieron criterios de inclusión (principalmente por nivel inadecuado de RASS con 56 casos e inestabilidad hemodinamica con 47 casos), y 2 pacientes decidieron no participar.

En total, aleatorizaron 126 pacientes, lo cual representa un 25.7% de los pacientes inicialmente elegibles; esta proporcion me parece que es relevante porque indica que la poblacion finalmente estudiada es un subgrupo muy especifico de pacientes en ventilación mecánica, lo cual creo que tiene implicaciones para la validez externa del estudio.

6 Diseño metodológico

6.1 Tipo de estudio

Este estudio corresponde a un ensayo clinico controlado aleatorizado de grupos paralelos, doble ciego, que es el diseño con mayor nivel de evidencia para evaluar la eficacia de una intervencion terapeutica.

Considero que la elección de este diseño fue apropiada dado que se buscaba establecer una relacion causal entre el entrenamiento muscular respiratorio y la reduccion del tiempo de destete de la ventilacion mecanica; por lo tanto, un ECC aleatorizado era el unico diseño capáz de controlar adecuadamente los factores de confusión conocidos y desconocidos mediante la aleatorizacion.

6.2 Aleatorización

El proceso de aleatorización fue, a mi juicio, uno de los puntos mas solidos de este estudio, por lo siguiente a mi juicio:

Tipo de aleatorización: Se realizó una aleatorización estratificada por condicion de sepsis, con bloques de tamaños variables (4 y 6 individuos).

Este enfoque es particularmente acertado porque la sepsis ha sido identificada como un factor determinante tanto en el destete de la ventilacion mecánica como en la fuerza de la musculatura respiratoria, tal como lo describieron Bolton et al. desde 1984; por lo tanto, estratificar por esta variable les garantizó que ambos grupos tuvieran una proporcion similar de pacientes con y sin sepsis, lo cual prevenia un desbalance que podria confundir los resultados mas adelante.

Bloques de tamaño variable: Los investigadores utilizaron bloques no fijos de tamaños 4 y 6, lo cual es una estrategia recomendada porque, a diferencia de los bloques de tamaño fijo, dificulta que los investigadores predigan la siguiente asignacion, reduciendo asi el riesgo de sesgo de seleccion.

Generación de la secuencia: La aleatorización la hicieron mediante el programa Random Allocation Software for Parallel Group Randomized Trials previo al ingreso del primer paciente, lo cual les aseguró que la secuencia fuera generada de forma genuinamente aleatoria y no manipulable.

Ocultamiento de la asignación: Las combinaciones de la intervención fueron organizadas por una persona externa en sobres cerrados de diferente color segun la condición de sepsis, numerados en la superficie exterior y mantenidos en 2 cajas selladas.

Los sobres se abrieron solo despues de obtener el consentimiento informado; por tanto este mecanismo de ocultamiento, aunque no es el mas robusto (los sobres cerrados pueden ser vulnerables a manipulación comparados con sistemas centralizados por teléfono o plataforma electrónica), fue reforzado por la participacion de una persona externa y la estrategia de sellado y numeración.

6.3 Enmascaramiento (cegamiento)

El estudio fue descrito como doble ciego, y la estrategia de enmascaramiento me parece ingeniosa dado el contexto de una intervención fisioterapeutica, donde el cegamiento suele ser especialmente difícil:

Enmascaramiento del investigador principal y equipo de UCI: El proceso de recolección de datos y la implementación de la intervención estuvieron a cargo de 4 fisioterapeutas con dedicación exclusiva, excluyendo al investigador principal. Esto les garantizó que las mediciones de los desenlaces no estuvieran influenciadas por el conocimiento de la asignación.

Enmascaramiento del procedimiento: La intervención en ambos grupos tuvo la misma duración, las cortinas de los cubiculos de la UCI se cerraron durante el procedimiento, y el dispositivo Threshold se mantuvo guardado en una caja opaca sellada.

Considero que este enfoque es particularmente valioso porque en ensayos clinicos de fisioterapia, el paciente y el personal suelen saber si se esta aplicando o no la intervención; al estandarizar la duración y el entorno visual, se redujo significativamente el riesgo de sesgo de deteccion.

Limitación del cegamiento: Me parece importante señalar que los 4 fisioterapeutas que realizaban la intervención si conocían la asignación de cada paciente (necesariamente, para aplicar o no el Threshold), por lo que el cegamiento no fue completo desde la perspectiva del terapeuta ejecutor; sin embargo, al separar las funciones de intervención y medición, considero que este riesgo se mitigó de forma razonable.

6.4 Selección de la población y flujo del estudio

Figura 1. Diagrama de flujo que adapto del estudio de Sandoval et al. (2019)

Sección 3: Supuestos del cálculo de tamaño de muestra + Métodos estadísticos + Sesgos + Confusores

7 Cálculo del tamaño de muestra: supuestos y justificación

Considero que el cálculo del tamaño de muestra es uno de los pilares fundamentales de cualquier ensayo clínico, ya que determina la capacidad del estudio para detectar diferencias reales entre los grupos si estas existen.

En este caso, los investigadores basaron su cálculo en los siguientes supuestos:

7.1 Supuestos declarados por los autores

Tabla 4. Supuestos del cálculo del tamaño de muestra declarados por Sandoval et al. (2019)
Parámetro Valor utilizado
Variable respuesta Tiempo de destete de la ventilación mecánica (variable continua, en horas)
Desviación estándar esperada 52.8 horas
Diferencia clínicamente relevante (delta) 24 horas a favor del grupo experimental
Porcentaje de pérdidas esperadas (drop out) 10%
Poder estadístico (1 - beta) 80%
Error tipo I (alfa) 5% (bilateral)
Tipo de prueba Comparación de dos medias independientes (prueba t de dos colas)
Fuente de los parámetros Ensayo clínico controlado de Condessa et al. (2013)
Tamaño de muestra resultante 63 pacientes por grupo (126 en total)

7.2 Mi análisis crítico de los supuestos

Me parece pertinente evaluar críticamente cada uno de estos supuestos, dado que la validez del tamaño de muestra depende directamente de la precisión con la que estos parámetros reflejan la realidad clínica:

1. Sobre la desviación estándar (52.8 horas): Este valor fue tomado del estudio de Condessa et al. (2013), un ensayo clínico previo realizado en Brasil, por lo que considero que utilizar datos de un estudio externo es una práctica aceptable y frecuente cuando no se dispone de datos piloto propios; sin embargo, creo que la variabilidad del tiempo de destete puede diferir entre poblaciones, especialmente si las características clínicas, los protocolos institucionales de manejo ventilatorio o la prevalencia de sepsis son diferentes.

De hecho, me parecce que los resultados observados en el estudio de Sandoval mostraron desviaciones estándar de 11.41 y 12.51 horas en los grupos convencional y experimental respectivamente, valores considerablemente menores a las 52.8 horas asumidas; esto me dice que la población estudiada tuvo mucha menos variabilidad en el tiempo de destete de lo anticipado.

2. Sobre la diferencia esperada (24 horas): Una reducción de 24 horas en el tiempo de destete fue considerada clínicamente relevante. Desde mi perspectiva, este valor es razonable ya que una reducción de un día completo en ventilación mecánica tiene implicaciones directas en la reducción del riesgo de complicaciones y en los costos hospitalarios; sin embargo, los resultados que observé mostraron una diferencia de apenas 0.58 horas entre los grupos, lo cual creo que está muy lejos de las 24 horas asumidas.

Esto me parece que no invalido el cálculo del tamaño de muestra en sí, pero sí puede indicar que la magnitud del efecto que esperaron fue sobreestimada con respecto a lo que la intervención realmente pudo lograr en esta población.

3. Sobre el poder del 80%:

Este es el valor convencionalmente aceptado en investigación clínica y garantiza que, si la diferencia real entre los grupos es de al menos 24 horas, el estudio tendría un 80% de probabilidad de detectarla.

Considero que este poder fué adecuado, aunque a mi juicio un poder del 90% habría proporcionado mayor seguridad, a costa de un tamaño de muestra más grande.

4. Sobre el error tipo I del 5%: El nivel de significancia de 0.05 (bilateral) es el estándar en ensayos clínicos y permite controlar la probabilidad de concluir erróneamente que existe una diferencia cuando en realidad no la hay.

La prueba bilateral considero que fue apropiada porque, a priori, no se podía descartar que el entrenamiento muscular respiratorio pudiera ser perjudicial.

5. Sobre el margen de pérdidas del 10%:

Los investigadores anticiparon un 10% de pérdidas durante el seguimiento, lo cual creo que fue conservador pero razonable para un estudio en UCI.

En la práctica, 3 pacientes no les cumplieron el protocolo al ser asignados al grupo experimental, y ningún paciente les solicitó retirarse; por lo tanto, las pérdidas reales fueron menores a lo anticipado, lo cual me parece que fortaleció el análisis por intención a tratar.

7.3 Verificación de los supuestos, miro si ¿se cumplieron?

Tabla 5. Verificación de los supuestos del tamaño de muestra
Supuesto ¿Se cumplió? Detalle de la verificación
Desviación estándar de 52.8 horas NO Las desviaciones observadas fueron 11.41 y 12.51 horas, muy inferiores a lo asumido.
Diferencia esperada de 24 horas NO La diferencia observada fue de apenas 0.58 horas (no significativa).
Poder del 80% Parcial No verificable directamente, pero dado que los supuestos de variabilidad no se cumplieron, considero que el poder real del estudio fue diferente al planeado.
Error tipo I del 5% Se utilizó un nivel de significancia del 5% bilateral en todos los análisis.
Pérdidas del 10% Las pérdidas reales (3 pacientes que no cumplieron protocolo) fueron menores al 10%.
Distribución normal del desenlace NO La variable de destete mostró distribución asimétrica (mediana = 5 horas en ambos grupos vs. promedios de 8.78 y 9.36 horas), por lo que considero que los autores correctamente usaron pruebas no paramétricas (Mann-Whitney).

8 Métodos estadísticos empleados

Considero que el plan de análisis estadístico de este estudio fue riguroso y bien estructurado, combinando métodos apropiados para cada tipo de variable evaluada. A continuación presento un análisis de cada método y como se justificó:
Tabla 6. Métodos estadísticos que emplearon en el estudio
Variable analizada Tipo de variable Método estadístico y justificación
Desenlace primario
Tiempo de destete de la VM (univariado) Continua (asimétrica) Prueba de Mann-Whitney (U de Wilcoxon): considero que fue adecuada porque el tiempo de destete no siguió una distribución normal, como lo evidencia la asimetría entre media y mediana.
Análisis de supervivencia
Probabilidad de extubación (univariado) Tiempo hasta evento Análisis de supervivencia con curvas de Kaplan-Meier y prueba de log-rank, porque es un método apropiado para analizar tiempo hasta un evento (extubación), permitiendo manejar datos censurados.
Probabilidad de extubación (multivariado) Tiempo hasta evento Regresión de Cox (modelo de riesgos proporcionales), porque permite ajustar por covariables y estimar razones de peligro (Hazard Ratio), incorporando pacientes censurados al análisis.
Fuerza muscular respiratoria
Cambio en la Pimáx (entre grupos) Continua Prueba t de Student para muestras independientes, pues compara los promedios de cambio en la presión inspiratoria máxima entre el grupo experimental y el convencional.
Cambio en la Pimáx (intragrupo) Continua pareada Prueba t pareada, porque evalúa si el cambio en la presión inspiratoria máxima dentro de cada grupo fue estadísticamente significativo.
Cambio en la Pimáx (multivariado) Continua Regresión lineal múltiple, pues permite identificar factores asociados al cambio en la presión inspiratoria máxima, controlando por covariables.
Desenlaces dicotómicos
Destete fallido y VMNI (univariado) Dicotómica Razón de oportunidades (Odds Ratio), porque cuantifica la asociación entre el tratamiento y la ocurrencia de destete fallido o requerimiento de ventilación mecánica no invasiva.
Destete fallido y VMNI (multivariado) Dicotómica Regresión logística, pues permite ajustar por covariables potencialmente confusoras.
Estrategia de modelización
Selección de variables para modelos finales Modelización Método stepwise con criterio de inclusión valor p < 0.25, evaluando confusión e interacción con prueba de razón de verosimilitudes (lrtest).

Me parece importante destacar que los autores realizaron análisis por intención a tratar, lo cual significa que todos los pacientes fueron analizados en el grupo al que fueron originalmente asignados, independientemente de si recibieron o no la intervención.

Este enfoque es considerado el estándar de oro en ensayos clínicos porque preserva los beneficios de la aleatorización y proporciona una estimación conservadora del efecto de la intervención, más cercana a lo que ocurriría en la práctica clínica real.

De los 62 pacientes asignados al grupo experimental, 3 no recibieron el tratamiento pero fueron incluidos en el análisis como parte del grupo experimental.

Además, considero acertado que los autores hayan complementado los análisis univariados con modelos multivariados para cada desenlace, dado que esto les permitió controlar por variables potencialmente confusoras y explorar interacciones relevantes, como la que se encontró entre el sistema principal comprometido y la rehabilitación pulmonar.

9 Análisis de sesgos

Como hemos visto en clase, todo ensayo clínico es susceptible a diferentes tipos de sesgos, y parte del análisis crítico consiste en evaluar cómo los investigadores los identificaron y combatieron.

A continuación presento mi análisis de los principales sesgos potenciales en este estudio:
Tabla 7. Análisis de riesgo de sesgo del ensayo clínico
Tipo de sesgo Nivel de riesgo Estrategia de control utilizada
Sesgo de selección (aleatorización) Bajo Aleatorización estratificada por condición de sepsis con bloques de tamaño variable, generada por software previo al inicio del reclutamiento. El ocultamiento de la asignación se logró mediante sobres sellados organizados por persona externa.
Sesgo de selección (autoselección) Bajo Las características de los 2 pacientes que decidieron no participar no difirieron de las de los incluidos, descartando sesgo de autoselección; además, todos los pacientes que cumplieron criterios fueron aleatorizados.
Sesgo de información (detección) Bajo El investigador principal y el equipo de UCI fueron enmascarados. Las mediciones de la presión inspiratoria máxima se realizaron con manovacuómetro digital calibrado (Carefusión), con pruebas de confiabilidad intra e interevaluador previas a la recolección.
Sesgo de información (desempeño) Bajo-Moderado Aunque los 4 fisioterapeutas ejecutores conocían la asignación (inevitable para aplicar el Threshold), estandarizaron la duración de la intervención en ambos grupos, cerraron las cortinas de los cubículos y mantuvieron el dispositivo en caja opaca sellada. El riesgo residual es que los terapeutas pudieran inconscientemente modificar su comportamiento según el grupo.
Sesgo de desgaste (attrition) Bajo Ningún paciente solicitó retirarse del estudio, no se presentaron efectos adversos y 123 de 126 pacientes completaron el seguimiento hasta el desenlace principal; además, el análisis por intención a tratar incluyó a los 126 pacientes.
Sesgo de reporte Bajo El estudio fue registrado prospectivamente en ClinicalTrials.gov (NCT02469064), lo cual permite verificar que los desenlaces reportados corresponden a los originalmente planeados.

10 Mi análisis de confusores y colisionadores

Confusores identificados y cómo se trataron:

La condición de sepsis fue reconocida como un factor determinante tanto en el destete de la ventilación mecánica como en la fuerza de la musculatura respiratoria, y me parece que los autores lo abordaron de manera muy inteligente mediante una doble estrategia, pues por un lado, realizaron aleatorización estratificada por condición de sepsis, lo cual les garantizó una distribución balanceada entre los grupos; y por otro lado, llevaron a cabo un análisis estratificado por esta misma condición.

Considero que este abordaje fue ejemplar, dado que la sepsis no solo puede afectar directamente el desenlace, sino que además podría modificar el efecto de la intervención (lo que en epidemiología conocemos como modificación de efecto), aspecto que los investigadores exploraron apropiadamente.

En cuanto al tiempo en ventilación mecánica en modos espontáneos (tanto previo como posterior al ingreso en el protocolo), este fue identificado en el análisis multivariado como una variable significativamente asociada con un destete prolongado; es decir, a mayor tiempo en estos modos, más difícil resultó la extubación.

Para entender la magnitud de esta asociación, en la regresión de Cox ajustada los pacientes con una hora o más de ventilación en modos espontáneos previo al protocolo presentaron una razón de riesgo instantáneo (Hazard Ratio, HR) ajustada de 0.45 (intervalo de confianza del 95%: 0.29-0.69; valor p < 0.01), lo que en términos prácticos indica que estos pacientes tenían un 55% menos de probabilidad de ser extubados en cualquier momento dado, comparados con quienes no tuvieron tiempo en modos espontáneos previo.

De forma aún más marcada, los pacientes con 5 a 118 horas en modos espontáneos posteriores al protocolo mostraron un HR ajustado de 0.21 (intervalo de confianza del 95%: 0.13-0.35; valor p < 0.01), lo cual me traduce un 79% menos de probabilidad de extubación; este hallazgo me parece interesante, porque sugiere que los altos niveles de asistencia ventilatoria en modos espontáneos pueden ser tan perjudiciales como la ventilación controlada en términos de disfunción muscular diafragmática.

En lo que respecta a la dosis de midazolam previo al ingreso en el protocolo, esta mostró una tendencia hacia la significancia estadística en el modelo ajustado (HR: 1.51; intervalo de confianza del 95%: 0.99-2.39; valor p = 0.05).

Esto me llamó la atención porque a primera vista resulta paradójico, que a dosis más altas de sedación parecerían asociarse con mayor probabilidad de extubación.

Sin embargo, al pensarlo con detenimiento, considero que tiene una explicación clínica razonable, ya que los pacientes que recibieron mayor sedación probablemente fueron quienes permanecieron más tiempo en ventilación controlada, y al momento de cumplir los criterios de inclusión posiblemente ya se encontraban en mejor condición fisiológica para iniciar el destete.

Por otra parte, la interacción entre el sistema principal comprometido y la rehabilitación pulmonar resultó estadísticamente significativa en el modelo de cambio en la presión inspiratoria máxima (valor p de interacción = 0.02).

Específicamente, los pacientes con compromiso del sistema respiratorio que recibieron rehabilitación pulmonar mostraron un incremento significativamente mayor en la fuerza muscular respiratoria (coeficiente: 17.32; intervalo de confianza del 95%: 2.63-32.01).

Desde mi punto de vista, esta interacción tiene plena plausibilidad clínica, puesto que las intervenciones de rehabilitación pulmonar están diseñadas específicamente para pacientes con enfermedad respiratoria, y por tanto es esperable que el beneficio se concentre precisamente en este subgrupo de pacientes.

Sobre la presencia de colisionadores:

Tras revisar detenidamente los modelos de análisis presentados por los autores, no identifiqué evidencia de que hayan introducido un colisionador (es decir, una variable que sea afectada simultáneamente por la exposición y por el desenlace) dentro de sus modelos.

La selección de covariables la realizaron mediante un criterio estadístico (valor p < 0.25 en análisis univariado) combinado con la evaluación de confusión e interacción a través de la prueba de razón de verosimilitudes, lo cual considero que es una práctica estándar y metodológicamente sólida.

Sin embargo, me parece importante señalar que la variable ‘requerimiento de ventilación mecánica no invasiva post-extubación’ podría haberse comportado como un colisionador si los autores la hubieran incluido como covariable al analizar la relación entre tratamiento y destete fallido, dado que tanto la intervención como el estado post-extubación podrían haber influido en la decisión clínica de iniciar ventilación no invasiva.

Afortunadamente, los autores actuaron con prudencia al analizar esta variable como un desenlace separado, sin incluirla como covariable en los modelos de destete fallido, evitando así el sesgo que un colisionador habría introducido en la estimación del efecto del tratamiento.
Tabla 8. Confusores identificados y el manejo que les dieron en el estudio
Variable confusora Estrategia de control Significancia Efecto observado
Condición de sepsis Aleatorización estratificada + análisis estratificado Significativo Factor de estratificación principal por su papel reconocido en la disfunción muscular respiratoria.
Tiempo en VM en modos espontáneos Incluido como covariable en modelo multivariado de Cox Significativo Asociación significativa con destete prolongado; razón de riesgo instantáneo (HR): 0.21-0.45, es decir, entre 55% y 79% menos probabilidad de extubación.
Dosis de midazolam previo al protocolo Incluido como covariable en modelo multivariado de Cox Limítrofe Tendencia a la asociación (HR: 1.51; intervalo de confianza del 95%: 0.99-2.39; valor p = 0.05).
Dosis de dexmedetomidina previo al protocolo Incluido como covariable en modelo multivariado de Cox No significativo HR: 0.71 (intervalo de confianza del 95%: 0.45-1.11; valor p = 0.14); no alcanzó significancia estadística.
Sistema principal comprometido Incluido como covariable en modelos multivariados; se evaluó interacción con rehabilitación pulmonar No significativo Variable incluida en modelo final; no significativa de forma independiente, pero relevante en interacción.
Rehabilitación pulmonar Incluida como covariable; interacción significativa con sistema respiratorio comprometido (valor p = 0.02) Significativo Interacción significativa con sistema respiratorio comprometido (coeficiente: 17.32; intervalo de confianza del 95%: 2.63-32.01).
  1. Cálculo del tamaño de muestra (diferencia de promedios)

11 Cálculo del tamaño de muestra en R

11.1 Ejemplo que seleccioné: diferencia de promedios (Sandoval et al., 2019)

Este proceso corresponde al artículo de Sandoval et al. (2019), cuyo desenlace primario fue el tiempo de destete de la ventilación mecánica, una variable continua medida en horas.

El abordaje estadístico para el cálculo del tamaño de muestra fue la comparación de dos medias independientes (prueba t bilateral), ya que el objetivo era detectar si existía una diferencia significativa en el promedio de horas de destete entre el grupo que recibió entrenamiento muscular respiratorio y el grupo con cuidado convencional.

A continuación presento los parámetros que los autores utilizaron para realizar este cálculo, junto con la fuente de donde los obtuvieron, y posteriormente reproduzco el cálculo en R utilizando dos paquetes complementarios: pwr y TrialSize.

11.1.1 Paso 1: Defino los parámetros del estudio

# Defino los parámetros que Sandoval et al. (2019) reportaron haber utilizado
# para calcular el tamaño de muestra de su ensayo clinico.
# Aclaro que estos valores los tomaron del estudio previo de Condessa et al. (2013)

alfa <- 0.05        # Error tipo I (probabilidad de rechazar H0 siendo verdadera)
beta <- 0.20        # Error tipo II (probabilidad de no rechazar H0 siendo falsa)
poder <- 1 - beta   # Poder estadistico: 80%
delta <- 24          # Diferencia clinicamente relevante: 24 horas de reduccion
sigma <- 52.8        # Desviación estandar esperada del tiempo de destete (horas)
drop_out <- 0.10     # Porcentaje esperado de perdidas durante el seguimiento

# Calculo el tamaño del efecto estandarizado (d de Cohen),
# que es la diferencia esperada dividida entre la desviación estándar.
# Este valor es clave porque el paquete pwr trabaja con tamaños de efecto
# estandarizados en lugar de valores absolutos

d_cohen <- delta / sigma
cat("Tamaño del efecto estandarizado (d de Cohen):", round(d_cohen, 4), "\n")
## Tamaño del efecto estandarizado (d de Cohen): 0.4545
cat("Interpretacion: un d de Cohen de", round(d_cohen, 2), 
    "se considera un efecto pequeno-mediano segun la clasificacion de Cohen\n")
## Interpretacion: un d de Cohen de 0.45 se considera un efecto pequeno-mediano segun la clasificacion de Cohen

11.1.2 Paso 2: Cálculo con el paquete pwr

# Cargo el paquete pwr, que es el mas utilizado para cálculos
# de poder estadístico y tamaño de muestra en R

if (!require(pwr)) install.packages("pwr", repos = "https://cloud.r-project.org")
library(pwr)

# Utilizo la funcion pwr.t.test() para calcular el tamaño de muestra
# necesario para comparar dos medias independientes.
# Considero que los argumentos son:
#   d = tamaño del efecto estandarizado (d de Cohen)
#   sig.level = nivel de significancia (alfa)
#   power = poder estadístico deseado
#   type = "two.sample" porque son dos grupos independientes
#   alternative = "two.sided" porque la prueba es bilateral

resultado_pwr <- pwr.t.test(
  d = d_cohen,
  sig.level = alfa,
  power = poder,
  type = "two.sample",
  alternative = "two.sided"
)

# Muestro el resultado completo
print(resultado_pwr)
## 
##      Two-sample t test power calculation 
## 
##               n = 76.94921
##               d = 0.4545455
##       sig.level = 0.05
##           power = 0.8
##     alternative = two.sided
## 
## NOTE: n is number in *each* group
# Extraigo el tamaño de muestra por grupo y lo redondeo hacia arriba,
# porque no se puede reclutar fracciones de pacientes

n_por_grupo_pwr <- ceiling(resultado_pwr$n)
cat("\n--- RESULTADO CON PAQUETE pwr ---\n")
## 
## --- RESULTADO CON PAQUETE pwr ---
cat("Tamaño de muestra por grupo (sin ajuste por perdidas):", n_por_grupo_pwr, "pacientes\n")
## Tamaño de muestra por grupo (sin ajuste por perdidas): 77 pacientes
# Ahora ajusto por el 10% de perdidas esperadas.
# La formula de ajuste es: n_ajustado = n / (1 - proporción_perdidas)

n_ajustado_pwr <- ceiling(n_por_grupo_pwr / (1 - drop_out))
cat("Tamaño de muestra por grupo (ajustado por 10% de perdidas):", n_ajustado_pwr, "pacientes\n")
## Tamaño de muestra por grupo (ajustado por 10% de perdidas): 86 pacientes
cat("Tamaño de muestra TOTAL:", n_ajustado_pwr * 2, "pacientes\n\n")
## Tamaño de muestra TOTAL: 172 pacientes
# Comparo con lo que reportaron los autores
cat("--- COMPARACION CON EL ARTICULO ---\n")
## --- COMPARACION CON EL ARTICULO ---
cat("Los autores reportaron:", 63, "pacientes por grupo (126 en total)\n")
## Los autores reportaron: 63 pacientes por grupo (126 en total)
cat("Mi cálculo arroja:", n_ajustado_pwr, "pacientes por grupo (", n_ajustado_pwr * 2, "en total)\n")
## Mi cálculo arroja: 86 pacientes por grupo ( 172 en total)

11.1.3 Paso 3: Hago verificación con el paquete TrialSize

library(TrialSize)

# Los argumentos exactos de TwoSampleMean.Equality() son:
#   alpha = nivel de significancia
#   beta = error tipo II
#   sigma = desviacion estandar comun
#   k = razon de asignacion entre grupos (1 = iguales)
#   margin = diferencia esperada entre las medias (lo que nosotros llamamos delta)

n_trialsize <- TwoSampleMean.Equality(
  alpha = alfa,
  beta = beta,
  sigma = sigma,
  k = 1,
  margin = delta
)

cat("--- RESULTADO CON TrialSize ---\n")
## --- RESULTADO CON TrialSize ---
cat("n por grupo (sin ajuste):", ceiling(n_trialsize), "pacientes\n")
## n por grupo (sin ajuste): 76 pacientes
n_ajustado_ts <- ceiling(ceiling(n_trialsize) / (1 - drop_out))
cat("n por grupo (ajustado por 10%):", n_ajustado_ts, "pacientes\n")
## n por grupo (ajustado por 10%): 85 pacientes
cat("n TOTAL:", n_ajustado_ts * 2, "pacientes\n")
## n TOTAL: 170 pacientes

11.1.4 Paso 4: Verifico con fórmula manual

# Me parece fundamental verificar con la formula clasica,
# porque así comprendo exactamente de donde sale cada numero
# y no dependo ciegamente de ningún paquete.
#
# La formula para comparacion de dos medias independientes es:
# n = 2 * ((Z_alfa/2 + Z_beta)^2 * sigma^2) / delta^2

z_alfa <- qnorm(1 - alfa/2)  # Z para alfa/2 = 0.025 -> 1.96
z_beta <- qnorm(1 - beta)    # Z para beta = 0.20 -> 0.8416

cat("Valor critico Z para alfa/2 =", round(z_alfa, 4), "\n")
## Valor critico Z para alfa/2 = 1.96
cat("Valor critico Z para beta =", round(z_beta, 4), "\n\n")
## Valor critico Z para beta = 0.8416
# Aplico la fórmula
n_manual <- 2 * ((z_alfa + z_beta)^2 * sigma^2) / delta^2

cat("--- RESULTADO CON FORMULA MANUAL ---\n")
## --- RESULTADO CON FORMULA MANUAL ---
cat("n por grupo (sin ajuste):", ceiling(n_manual), "pacientes\n")
## n por grupo (sin ajuste): 76 pacientes
n_manual_ajustado <- ceiling(ceiling(n_manual) / (1 - drop_out))
cat("n por grupo (ajustado por 10%):", n_manual_ajustado, "pacientes\n")
## n por grupo (ajustado por 10%): 85 pacientes
cat("n TOTAL:", n_manual_ajustado * 2, "pacientes\n")
## n TOTAL: 170 pacientes

Al aplicar la fórmula manual obtengo un resultado muy cercano a los paquetes, lo cual me genera confianza en la robustez del cálculo. Además, considero que entender la fórmula desde sus componentes me permite apreciar cómo cada parámetro influye, pues al estar la desviación estándar elevada al cuadrado en el numerador, cualquier sobreestimación de la variabilidad tiene un impacto desproporcionado en el número de pacientes requerido.

También noto que mis tres cálculos arrojan aproximadamente 76-77 pacientes por grupo (85-86 ajustados), mientras que Sandoval et al. reportaron 63 por grupo (126 total). Esta discrepancia puede ser, porque los paquetes pwr y TrialSize utilizan aproximaciones ligeramente diferentes a la fórmula clásica.

El paquete pwr emplea la distribución t no central (más conservadora y precisa), mientras que la fórmula manual usa la aproximación normal. Además, es posible que los autores hayan utilizado otro software,que implementara correcciones diferentes.

Lo esencial, desde mi punto de vista, es que todos los métodos parten de los mismos supuestos y que la lógica del dimensionamiento es correcta; la diferencia refleja que el tamaño de muestra no es un número absoluto sino una estimación que depende también del método computacional que se elija. ### Paso 5: Tabla resumen de los tres métodos
Tabla 11. Comparación del tamaño de muestra por tres métodos independientes
Método de cálculo n por grupo (sin ajuste) n por grupo (con 10% pérdidas) n total
Paquete pwr (d de Cohen) 77 86 172
Paquete TrialSize (Equality) 76 85 170
Fórmula manual clásica 76 85 170
Reportado por Sandoval et al. (2019) ~57 (estimado) 63 126

11.1.5 Paso 6: Curva de poder estadístico

# Considero que esta gráfica es muy útil porque me permite ver
# como cambia la probabilidad de detectar la diferencia de 24 horas
# a medida que incremento el tamaño de muestra

library(ggplot2)

n_secuencia <- seq(10, 120, by = 1)

poder_valores <- sapply(n_secuencia, function(n) {
  pwr.t.test(n = n, d = d_cohen, sig.level = alfa,
             type = "two.sample", alternative = "two.sided")$power
})

datos_poder <- data.frame(n = n_secuencia, poder = poder_valores)

ggplot(datos_poder, aes(x = n, y = poder)) +
  geom_line(color = "#2E86C1", linewidth = 1.2) +
  geom_hline(yintercept = 0.80, linetype = "dashed", 
             color = "#E74C3C", linewidth = 0.8) +
  geom_vline(xintercept = n_por_grupo_pwr, linetype = "dashed", 
             color = "#27AE60", linewidth = 0.8) +
  geom_point(aes(x = n_por_grupo_pwr, y = 0.80), 
             color = "#E74C3C", size = 4) +
  annotate("text", x = n_por_grupo_pwr + 8, y = 0.82,
           label = paste0("n = ", n_por_grupo_pwr, " por grupo\nPoder = 80%"),
           size = 4, fontface = "bold", color = "#2C3E50") +
  annotate("text", x = 100, y = 0.55,
           label = paste0("Parametros:\nalfa = 0.05 (bilateral)",
                          "\ndelta = 24 horas\nsigma = 52.8 horas",
                          "\nd de Cohen = ", round(d_cohen, 3)),
           size = 3.5, color = "#5D6D7E", hjust = 0.5) +
  scale_y_continuous(labels = scales::percent_format(), limits = c(0, 1)) +
  labs(title = "Curva de poder estadistico para comparacion de dos medias",
       subtitle = "Estudio de Sandoval et al. (2019): EMR vs. cuidado convencional",
       x = "Tamaño de muestra por grupo (n)",
       y = "Poder estadistico (1 - beta)",
       caption = "Linea roja = poder del 80% | Linea verde = n calculado") +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 15, color = "#2C3E50", hjust = 0.5),
    plot.subtitle = element_text(size = 11, color = "#5D6D7E", hjust = 0.5),
    plot.caption = element_text(size = 10, color = "#7F8C8D", face = "italic"),
    axis.text = element_text(size = 11, color = "#2C3E50")
  )
Figura 4. Curva de poder estadístico en función del tamaño de muestra

Figura 4. Curva de poder estadístico en función del tamaño de muestra

11.1.6 Paso 7: Análisis de sensibilidad

# Me parece indispensable explorar como cambia el tamaño de muestra
# cuando modifico los supuestos, especialmente porque la desviación
# estandar observada (11-12 horas) fue muy diferente a la asumida (52.8)

delta_valores <- c(12, 18, 24, 30, 36)
sigma_valores <- c(12, 20, 30, 40, 52.8)

sensibilidad <- expand.grid(delta = delta_valores, sigma = sigma_valores)

sensibilidad$n_por_grupo <- mapply(function(d, s) {
  d_cohen_temp <- d / s
  resultado <- pwr.t.test(d = d_cohen_temp, sig.level = alfa,
                          power = poder, type = "two.sample",
                          alternative = "two.sided")
  ceiling(resultado$n)
}, sensibilidad$delta, sensibilidad$sigma)

sensibilidad$n_total <- sensibilidad$n_por_grupo * 2

ggplot(sensibilidad, aes(x = factor(delta), y = factor(sigma), fill = n_total)) +
  geom_tile(color = "white", linewidth = 1.5) +
  geom_text(aes(label = paste0("n = ", n_total)), 
            color = "white", fontface = "bold", size = 4) +
  scale_fill_gradient(low = "#27AE60", high = "#E74C3C", name = "n total") +
  labs(title = "Análisis de sensibilidad del tamaño de muestra",
       subtitle = "Combinaciones de diferencia esperada (delta) y desviacion estandar (sigma)",
       x = "Diferencia esperada - delta (horas)",
       y = "Desviacion estandar - sigma (horas)",
       caption = "Verde = menor tamano | Rojo = mayor tamano\nReferencia: delta=24h, sigma=52.8h") +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 15, color = "#2C3E50", hjust = 0.5),
    plot.subtitle = element_text(size = 11, color = "#5D6D7E", hjust = 0.5),
    plot.caption = element_text(size = 10, color = "#7F8C8D", face = "italic"),
    axis.text = element_text(size = 12, color = "#2C3E50", face = "bold"),
    legend.position = "right"
  )
Figura 5. Analisis de sensibilidad del tamano de muestra

Figura 5. Analisis de sensibilidad del tamano de muestra

11.1.7 Mi interpretación del mapa de calor

Al observar detenidamente este mapa de calor, lo primero que noto es que los colores me cuentan una historia muy clara, donde el rojo intenso en la esquina superior izquierda (n = 610) representa el peor escenario posible, es decir, cuando la variabilidad es muy alta (sigma = 52.8 horas) y la diferencia que quiero detectar es pequeña (delta = 12 horas); en ese caso necesitaría una cantidad enorme de pacientes porque estoy buscando una aguja en un pajar, por así decirlo.

En contraste, el verde intenso en la esquina inferior derecha (n = 8) me indica el escenario más favorable, es decir, poca variabilidad (sigma = 12 horas) y una diferencia grande (delta = 36 horas), donde la señal es tan fuerte y el ruido tan bajo que bastan muy pocos pacientes para detectarla.

Lo que me parece más revelador es la fila correspondiente a sigma = 52.8 horas, que es exactamente el valor que utilizaron Sandoval et al. Si me desplazo horizontalmente por esa fila, puedo ver cómo el tamaño de muestra disminuye dramáticamente a medida que la diferencia esperada aumenta, y se pasa de 610 pacientes (para delta = 12 h) a 154 pacientes (para delta = 24 h, que fue el valor del estudio) y hasta 70 pacientes (para delta = 36 h). Esto me confirma que con los supuestos originales del estudio, el cálculo de 126-154 pacientes era razonable.

Sin embargo, lo que más me llama la atención es la comparación vertical. Si me ubico en la columna de delta = 24 horas (la diferencia que los autores consideraron relevante) y bajo desde sigma = 52.8 hasta sigma = 12, el tamaño de muestra pasa de 154 a tan solo 12 pacientes.

Esta caída es impactante, y puede ser por la desviación estándar que aparece elevada al cuadrado en la fórmula del tamaño de muestra, por lo que su efecto es exponencial. Reducir la variabilidad a la cuarta parte (de 52.8 a 12) reduce el tamaño de muestra en un factor cercano a 20.

Desde la perspectiva del estudio de Sandoval et al., considero que esto tiene una implicación práctica muy importante, pues dado que las desviaciones estándar observadas fueron de apenas 11.41 y 12.51 horas, el escenario real correspondía a la fila inferior del mapa (sigma ≈ 12), donde incluso con una diferencia de 24 horas solo se habrían necesitado 12 pacientes en total.

El estudio reclutó 126 pacientes bajo supuestos de variabilidad que resultaron ser muy superiores a la realidad colombiana, lo cual significa que el estudio terminó teniendo un poder estadístico muchísimo mayor al 80% planeado para detectar una diferencia de 24 horas.

El problema, creo que fue que la diferencia real resultó ser de apenas 0.58 horas, una magnitud tan pequeña que ningún tamaño de muestra razonable la habría detectado como significativa, por lo que siempre que sea posible,creo que se debe buscar datos piloto de mi propia población antes de dimensionar un estudio, porque asumir variabilidades de otros contextos puede llevarnos a sobredimensionar innecesariamente la muestra o, en el peor de los casos, a subdimensionarla.

12 Segundo ejemplo, artíclo de solución salina hipertónica en trauma

12.1 Identificación del estudio

Título: Hypertonic saline infusion does not improve the chance of primary fascial closure after damage control laparotomy: a randomized controlled trial.

Autores: Alberto F. García, Ramiro Manzano-Núñez, Diana Cristina Carrillo, Julián Chica-Yanten, María Paula Naranjo, Álvaro I. Sánchez, Jorge Humberto Mejía, Gustavo Adolfo Ospina-Tascón, Carlos A. Ordoñez, Juan Gabriel Bayona y Juan Carlos Puyana.

Año de publicación: 2023 (publicado en World Journal of Emergency Surgery, volumen 18, artículo 4).

Registro del ensayo: ClinicalTrials.gov (NCT02542241).

12.2 Planteamiento del problema

Los pacientes con trauma abdominal grave frecuentemente requieren cirugía de control de daños, un abordaje quirúrgico en el que se prioriza el control del sangrado y la contaminación, dejando el abdomen abierto temporalmente para luego cerrar la pared abdominal de forma definitiva una vez estabilizada la fisiología del paciente.

Sin embargo, comentan que lograr el cierre fascial primario (es decir, cerrar la pared abdominal sin necesidad de mallas o colgajos) es un objetivo clínico crucial, ya que el abdomen abierto prolongado se asocia con complicaciones graves como fístulas intestinales, infecciones intraabdominales y hernias incisionales.

En este contexto, la solución salina hipertónica al 3% había sido propuesta como una intervención prometedora, dado que estudios observacionales previos (como los de Harvin et al. y Loftus et al.) habían mostrado tasas más altas de cierre fascial y tiempos más cortos hasta el cierre en pacientes resucitados con esta solución.

Sin embargo, me parece importante señalar que toda esa evidencia provenía de estudios retrospectivos y observacionales, susceptibles a sesgos de selección y confusión; por lo tanto, era necesario un ensayo clínico aleatorizado para confirmar o refutar estos hallazgos.

Este estudio de García et al. fue, hasta donde pude verificar, el primer ensayo clínico controlado aleatorizado diseñado específicamente para evaluar esta intervención en pacientes con laparotomía de control de daños.

12.3 Pregunta de investigación

La pregunta que guió este ensayo clínico fue así: En pacientes adultos con trauma abdominal que requieren laparotomía de control de daños para control de sangrado, la infusión de solución salina hipertónica al 3% (72 horas a 50 mL/h), comparada con solución salina isotónica al 0.9%, mejora la proporción de pacientes que logran el cierre fascial primario en los primeros 7 días posteriores a la cirugía índice?

12.4 Estrategia PICOT

Tabla 15. Estrategia PICOT del ensayo clínico de García et al. (2023)
Componente PICOT Descripción
P - Población Adultos (>= 18 años) con trauma abdominal penetrante o contuso que requirieron laparotomía de control de daños en la Fundación Valle del Lili (Cali, Colombia), hospital de IV nivel equivalente a un centro de trauma nivel I de Estados Unidos.
I - Intervención Infusión de solución salina hipertónica al 3% durante 72 horas a una tasa de 50 mL/h, administrada en UCI después de la laparotomía de control de daños índice.
C - Comparador Infusión de solución salina isotónica al 0.9% (placebo) durante 72 horas a la misma tasa de 50 mL/h, con presentación idéntica para mantener el doble cegamiento.
O - Desenlace primario Proporción de pacientes con cierre de la pared abdominal (cierre fascial primario) en los primeros 7 días después de la cirugía índice (desenlace dicotómico: sí/no).
O - Desenlaces secundarios Mortalidad a 28 días, balance de líquidos en las primeras 72 horas, proporción de pacientes con síndrome compartimental abdominal, disfunción orgánica (SOFA > 2), síndrome de dificultad respiratoria aguda (SDRA), hipernatremia, y tiempo hasta el cierre abdominal (analizado con curvas de supervivencia).
T - Tiempo Desenlace primario evaluado a los 7 días post-cirugía; mortalidad evaluada a los 28 días; período de reclutamiento: noviembre 2015 a agosto 2018.

12.5 Características de la población

Se incluyeron un total de 52 pacientes, de los cuales 27 fueron asignados al grupo de solución salina isotónica (control) y 25 al grupo de solución salina hipertónica (experimental).

Lo primero que me llama la atención es que la muestra es considerablemente más pequeña de lo que los autores habían planeado originalmente (400 pacientes en total), y esto se debe a que el estudio fue suspendido en el primer análisis interino por futilidad, un aspecto que analizaré con detalle más adelante, tal como lo hicimos en clase.

En cuanto a las características demográficas, 44 pacientes (84.6%) eran hombres, lo cual es esperable en una población de trauma; la edad promedio fue de 35.1 años (desviación estándar: 14.1).

El mecanismo de trauma fue penetrante en 41 casos (78.9%) y contuso en 11 (21.1%). La severidad anatómica de las lesiones, medida por el Injury Severity Score (ISS), fue clasificada como severa en más del 50% de los casos, con una mediana de 26 (rango intercuartílico de 17.5-35).

Las estructuras más frecuentemente comprometidas fueron los vasos mayores abdominales (75%), las vísceras huecas (63.5%) y el hígado (48.1%).

Me parece relevante señalar que no se encontraron diferencias significativas entre los grupos en ninguna de las variables basales evaluadas (edad, sexo, mecanismo de trauma, severidad, órganos lesionados, técnica de cierre abdominal temporal o transfusiones requeridas), lo cual me indica que la aleatorización logró distribuir equilibradamente las características pronósticas entre los grupos. Sección 2: Diseño metodológico + Aleatorización + Enmascaramiento + Supuestos + Cálculo de tamaño de muestra en R

12.6 Diseño metodológico

Este estudio corresponde a un ensayo clínico controlado aleatorizado, doble ciego, controlado con placebo, diseñado bajo el principio de superioridad.

Considero que la elección de este diseño fue la más apropiada, dado que los estudios previos que habían sugerido beneficios de la solución salina hipertónica eran todos observacionales y retrospectivos; por lo tanto, se necesitaba el nivel más alto de evidencia para confirmar o refutar esos hallazgos.

El estudio fue conducido en la Fundación Valle del Lili (Cali, Colombia), un hospital universitario de IV nivel equivalente a un centro de trauma nivel I en Estados Unidos, con 523 camas (205 de UCI), entre noviembre de 2015 y agosto de 2018.

El protocolo fue aprobado por el comité de ética e investigación biomédica de la institución, y se obtuvo consentimiento informado de todos los pacientes o de un representante legal.

Un aspecto que me parece éticamente relevante es que, dada la naturaleza de emergencia de estos pacientes, se permitió el consentimiento por médico independiente y consentimiento diferido cuando fue necesario, práctica aceptada en investigación en trauma.

12.7 Aleatorización

La aleatorización se realizó en bloques permutados de tamaño 4 y 6, generada por un estadístico independiente utilizando el software Random Allocation Software.

Me parece que el uso de bloques de tamaño variable fue acertado porque dificulta la predicción de la siguiente asignación, reduciendo el riesgo de sesgo de selección.

El ocultamiento de la asignación se logró mediante una plataforma electrónica en internet, pues una vez que el investigador confirmaba el consentimiento y los criterios de inclusión, la plataforma revelaba la asignación del tratamiento.

Considero que este mecanismo es más robusto que el de sobres sellados (como en el estudio de Sandoval et al.), ya que una plataforma electrónica es prácticamente imposible de manipular.

La aleatorización se realizaba habitualmente inmediatamente después de la cirugía índice, al momento de preparar el traslado a UCI o en los primeros minutos en UCI.

12.8 Enmascaramiento (cegamiento)

El estudio fue doble ciego, lo cual significa que ni los pacientes, ni el equipo tratante, ni los investigadores conocían la asignación del tratamiento.

El cegamiento lo lograron mediante bolsas de infusión de apariencia idéntica para ambas soluciones (hipertónica al 3% e isotónica al 0.9%). Además, los análisis estadísticos lo realizaron de forma ciega, de manera que los investigadores no podían saber si los sujetos pertenecían al grupo control o al experimental.

Desde mi perspectiva, el doble cegamiento en este estudio fue más segura que en el de Sandoval et al., porque la intervención (una infusión intravenosa) es inherentemente más fácil de enmascarar que una intervención fisioterapéutica.

Considero que, el hecho de que las bolsas fueran idénticamente presentadas eliminó prácticamente cualquier posibilidad de que el personal clínico identificara el tratamiento asignado.

12.9 Análisis de sesgos

Tabla 16. Análisis de riesgo de sesgo del ensayo de García et al. (2023)
Tipo de sesgo Nivel de riesgo Estrategia de control
Sesgo de selección (aleatorización) Bajo Bloques permutados de tamaño variable (4 y 6) generados por estadístico independiente con software validado.
Sesgo de selección (ocultamiento) Bajo Plataforma electrónica en internet que revelaba la asignación solo tras confirmar consentimiento y criterios de inclusión; mecanismo superior a sobres sellados.
Sesgo de información (detección) Bajo Doble cegamiento completo, pues ni pacientes, ni equipo tratante, ni investigadores conocían la asignación. Análisis estadísticos realizados de forma ciega.
Sesgo de información (desempeño) Bajo Las bolsas de infusión eran de apariencia idéntica; el equipo tratante tomaba decisiones sobre otros fluidos, vasopresores y soporte según la práctica habitual, sin conocer el grupo asignado.
Sesgo de desgaste (attrition) Moderado De 52 aleatorizados, 4 pacientes del grupo control y 1 del grupo experimental se perdieron (3 murieron antes del día 7, 1 fue trasladado). La tasa de pérdidas fue asimétrica (14.8% vs 4%), lo cual podría introducir sesgo aunque los números absolutos son pequeños.
Sesgo de reporte Bajo Registrado prospectivamente en ClinicalTrials.gov (NCT02542241); se planificaron análisis interinos con criterios predefinidos de terminación por futilidad o eficacia.

12.10 Supuestos del cálculo del tamaño de muestra

Tabla 17. Supuestos del cálculo del tamaño de muestra de García et al. (2023)
Parámetro Valor utilizado
Variable respuesta (desenlace primario) Proporción de pacientes con cierre fascial primario a los 7 días (variable dicotómica: sí/no)
Proporción esperada en grupo control (p1) 60% (proporción de cierre con solución isotónica convencional)
Proporción esperada en grupo experimental (p2) 75% (proporción de cierre esperada con solución hipertónica)
Diferencia absoluta esperada 15 puntos porcentuales (de 60% a 75%)
Poder estadístico (1 - beta) 80%
Error tipo I (alfa) 5% (p < 0.05), prueba bilateral
Porcentaje de pérdidas esperadas 20%
Tipo de prueba Comparación de dos proporciones independientes (principio de superioridad)
Tamaño de muestra calculado por los autores 200 pacientes por grupo (400 en total)

Me parece fundamental analizar críticamente estos supuestos, porque el destino del estudio dependió en gran parte de ellos, pues la diferencia esperada de 15 puntos porcentuales (del 60% al 75%) fue tomada de los estudios observacionales previos, particularmente del trabajo de Harvin et al., que reportó tasas de cierre del 78% con solución isotónica y del 100% con hipertónica.

Sin embargo, al revisar los resultados reales del ensayo clínico, las proporciones observadas fueron muy cercanas entre sí, donde el 70.8% correpondia al grupo control y 79.2% al grupo experimental (una diferencia de apenas 8.4 puntos porcentuales).

Esto me sugiere que los estudios observacionales sobreestimaron el efecto de la intervención, posiblemente creería que fue debido a sesgos de selección inherentes a su diseño retrospectivo.

Un aspecto que llama poderosamente mi atención es el tamaño de muestra requerido, pues era 400 pacientes en total. Ahora bien, si considero que la Fundación Valle del Lili admite aproximadamente 700 pacientes de trauma moderado a severo por año, y que solo una fracción de ellos requiere laparotomía de control de daños, puedo entender por qué el reclutamiento fue extremadamente lento (52 pacientes en casi 3 años).

Esta dificultad de reclutamiento, combinada con la futilidad demostrada en el análisis interino, llevó a la suspensión prematura del estudio.

12.11 Cálculo del tamaño de muestra en R

12.11.1 Paso 1: Defino los parámetros del artículo

# Defino los parametros exactos que Garcia et al. (2023) reportaron
# haber utilizado para su cálculo de tamaño de muestra.
# Los autores diseñaron el estudio bajo el principio de superioridad
# para detectar una diferencia del 60% al 75% en cierre fascial

alfa_s <- 0.05       # Error tipo I (bilateral)
beta_s <- 0.20       # Error tipo II
poder_s <- 0.80      # Poder estadístico del 80%

p1_s <- 0.60         # Proporción esperada en grupo control (solucion isotonica)
p2_s <- 0.75         # Proporción esperada en grupo experimental (solucion hipertonica)

drop_out_s <- 0.20   # 20% de perdidas esperadas (mas alto que en Sandoval)

cat("--- PARAMETROS DEL ESTUDIO DE GARCIA ET AL. (2023) ---\n")
## --- PARAMETROS DEL ESTUDIO DE GARCIA ET AL. (2023) ---
cat("Proporcion en grupo control (p1):", p1_s, "(60%)\n")
## Proporcion en grupo control (p1): 0.6 (60%)
cat("Proporcion en grupo experimental (p2):", p2_s, "(75%)\n")
## Proporcion en grupo experimental (p2): 0.75 (75%)
cat("Diferencia absoluta esperada:", p2_s - p1_s, "(15 puntos porcentuales)\n")
## Diferencia absoluta esperada: 0.15 (15 puntos porcentuales)
cat("Alfa:", alfa_s, "| Beta:", beta_s, "| Poder:", poder_s, "\n")
## Alfa: 0.05 | Beta: 0.2 | Poder: 0.8
cat("Perdidas esperadas:", drop_out_s * 100, "%\n")
## Perdidas esperadas: 20 %

12.11.2 Paso 2: Cálculo con el paquete pwr

library(pwr)

# Para comparar dos proporciones con pwr, primero calculo
# el tamano del efecto h de Cohen, que estandariza la diferencia
# entre proporciones usando la transformación arcoseno

h_cohen_s <- ES.h(p2_s, p1_s)
cat("Tamaño del efecto h de Cohen:", round(h_cohen_s, 4), "\n")
## Tamaño del efecto h de Cohen: 0.3222
cat("Interpretación: un h de", round(h_cohen_s, 2), 
    "se considera un efecto pequeño segun Cohen\n\n")
## Interpretación: un h de 0.32 se considera un efecto pequeño segun Cohen
# Calculo el tamaño de muestra con pwr.2p.test()
resultado_pwr_s <- pwr.2p.test(
  h = h_cohen_s,
  sig.level = alfa_s,
  power = poder_s,
  alternative = "two.sided"
)

print(resultado_pwr_s)
## 
##      Difference of proportion power calculation for binomial distribution (arcsine transformation) 
## 
##               h = 0.3222409
##               n = 151.1734
##       sig.level = 0.05
##           power = 0.8
##     alternative = two.sided
## 
## NOTE: same sample sizes
n_pwr_s <- ceiling(resultado_pwr_s$n)
n_pwr_s_ajustado <- ceiling(n_pwr_s / (1 - drop_out_s))

cat("\n--- RESULTADO CON pwr ---\n")
## 
## --- RESULTADO CON pwr ---
cat("n por grupo (sin ajuste):", n_pwr_s, "pacientes\n")
## n por grupo (sin ajuste): 152 pacientes
cat("n por grupo (ajustado por 20% perdidas):", n_pwr_s_ajustado, "pacientes\n")
## n por grupo (ajustado por 20% perdidas): 190 pacientes
cat("n TOTAL:", n_pwr_s_ajustado * 2, "pacientes\n\n")
## n TOTAL: 380 pacientes
# Comparo con lo que reportaron los autores
cat("--- COMPARACION CON EL ARTICULO ---\n")
## --- COMPARACION CON EL ARTICULO ---
cat("Los autores reportaron: 200 pacientes por grupo (400 en total)\n")
## Los autores reportaron: 200 pacientes por grupo (400 en total)
cat("Mi calculo arroja:", n_pwr_s_ajustado, "pacientes por grupo (",
    n_pwr_s_ajustado * 2, "en total)\n")
## Mi calculo arroja: 190 pacientes por grupo ( 380 en total)

12.11.3 Paso 3: Verificación con el paquete TrialSize

library(TrialSize)

# Primero verifico los argumentos exactos de la funcion
cat("Argumentos de TwoSampleProportion.Equality:\n")
## Argumentos de TwoSampleProportion.Equality:
print(args(TwoSampleProportion.Equality))
## function (alpha, beta, p1, p2, k) 
## NULL
# Uso TwoSampleProportion.Equality() con los argumentos correctos
n_ts_s <- TwoSampleProportion.Equality(
  alpha = alfa_s,
  beta = beta_s,
  p1 = p1_s,
  p2 = p2_s,
  k = 1
)

n_ts_s_ajustado <- ceiling(ceiling(n_ts_s) / (1 - drop_out_s))

cat("\n--- RESULTADO CON TrialSize ---\n")
## 
## --- RESULTADO CON TrialSize ---
cat("n por grupo (sin ajuste):", ceiling(n_ts_s), "pacientes\n")
## n por grupo (sin ajuste): 150 pacientes
cat("n por grupo (ajustado por 20%):", n_ts_s_ajustado, "pacientes\n")
## n por grupo (ajustado por 20%): 188 pacientes
cat("n TOTAL:", n_ts_s_ajustado * 2, "pacientes\n")
## n TOTAL: 376 pacientes

12.11.4 Paso 4: Verificación con fórmula manual

# Aplico la formula clásica para comparación de dos proporciones:
# n = ((Z_alfa/2 * sqrt(2*p_prom*(1-p_prom)) + Z_beta * sqrt(p1*(1-p1) + p2*(1-p2)))^2) / (p2 - p1)^2

z_alfa_s <- qnorm(1 - alfa_s/2)
z_beta_s <- qnorm(1 - beta_s)
p_prom_s <- (p1_s + p2_s) / 2

cat("Valor critico Z para alfa/2:", round(z_alfa_s, 4), "\n")
## Valor critico Z para alfa/2: 1.96
cat("Valor critico Z para beta:", round(z_beta_s, 4), "\n")
## Valor critico Z para beta: 0.8416
cat("Proporción promedio:", p_prom_s, "\n\n")
## Proporción promedio: 0.675
numerador_s <- (z_alfa_s * sqrt(2 * p_prom_s * (1 - p_prom_s)) + 
                z_beta_s * sqrt(p1_s * (1 - p1_s) + p2_s * (1 - p2_s)))^2
denominador_s <- (p2_s - p1_s)^2

n_manual_s <- numerador_s / denominador_s
n_manual_s_ajustado <- ceiling(ceiling(n_manual_s) / (1 - drop_out_s))

cat("--- RESULTADO CON FORMULA MANUAL ---\n")
## --- RESULTADO CON FORMULA MANUAL ---
cat("n por grupo (sin ajuste):", ceiling(n_manual_s), "pacientes\n")
## n por grupo (sin ajuste): 152 pacientes
cat("n por grupo (ajustado por 20%):", n_manual_s_ajustado, "pacientes\n")
## n por grupo (ajustado por 20%): 190 pacientes
cat("n TOTAL:", n_manual_s_ajustado * 2, "pacientes\n")
## n TOTAL: 380 pacientes

12.11.5 Paso 5: Tabla resumen comparativa

Tabla 18. Comparación del tamaño de muestra por tres métodos — García et al. (2023)
Método de cálculo n por grupo (sin ajuste) n por grupo (con 20% pérdidas) n total
Paquete pwr (h de Cohen) 152 190 380
Paquete TrialSize (Equality) 150 188 376
Fórmula manual clásica 152 190 380
Reportado por García et al. (2023) ~167 (estimado) 200 400

12.11.6 Paso 6: Curva de poder para proporciones

library(ggplot2)

n_seq_s <- seq(10, 300, by = 1)

poder_s_vals <- sapply(n_seq_s, function(n) {
  pwr.2p.test(h = h_cohen_s, n = n, sig.level = alfa_s,
              alternative = "two.sided")$power
})

datos_poder_s <- data.frame(n = n_seq_s, poder = poder_s_vals)

ggplot(datos_poder_s, aes(x = n, y = poder)) +
  geom_line(color = "#8E44AD", linewidth = 1.2) +
  geom_hline(yintercept = 0.80, linetype = "dashed", 
             color = "#E74C3C", linewidth = 0.8) +
  geom_vline(xintercept = n_pwr_s, linetype = "dashed", 
             color = "#27AE60", linewidth = 0.8) +
  geom_point(aes(x = n_pwr_s, y = 0.80), color = "#E74C3C", size = 4) +
  annotate("text", x = n_pwr_s + 20, y = 0.82,
           label = paste0("n = ", n_pwr_s, " por grupo\nPoder = 80%"),
           size = 4, fontface = "bold", color = "#2C3E50") +
  annotate("text", x = 250, y = 0.50,
           label = paste0("Parametros:\np1 = 0.60 (control)\np2 = 0.75 (experimental)",
                          "\nh de Cohen = ", round(h_cohen_s, 3),
                          "\nalfa = 0.05 (bilateral)"),
           size = 3.5, color = "#5D6D7E", hjust = 0.5) +
  annotate("point", x = 26, y = 0.09, color = "#E74C3C", size = 5, shape = 17) +
  annotate("text", x = 55, y = 0.12,
           label = "Estudio detenido\n(n=26 por grupo)\nPoder = 9%",
           size = 3.5, fontface = "bold", color = "#E74C3C") +
  scale_y_continuous(labels = scales::percent_format(), limits = c(0, 1)) +
  labs(title = "Curva de poder en diferencia de proporciones (cierre fascial primario)",
       subtitle = "Garcia et al. (2023): solución salina hipertónica vs. isotónica en trauma",
       x = "Tamano de muestra por grupo (n)",
       y = "Poder estadistico (1 - beta)",
       caption = "Linea roja = 80% | Linea verde = n calculado | Triangulo rojo = punto de detencion por futilidad") +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 15, color = "#2C3E50", hjust = 0.5),
    plot.subtitle = element_text(size = 11, color = "#5D6D7E", hjust = 0.5),
    plot.caption = element_text(size = 10, color = "#7F8C8D", face = "italic"),
    axis.text = element_text(size = 11, color = "#2C3E50")
  )
Figura 8. Curva de poder estadístico para el estudio de García et al. (2023)

Figura 8. Curva de poder estadístico para el estudio de García et al. (2023)

Lo que más me impresiona de esta curva es el triángulo rojo que marqué en la parte inferior izquierda, pues representa el punto donde el estudio fue detenido, con apenas 26 pacientes por grupo y un poder de solo el 9%.

Esto significa que, al momento de la suspensión, el estudio tenía apenas un 9% de probabilidad de detectar una diferencia significativa aunque esta realmente existiera.

El poder condicional calculado para el tamaño de muestra completo fue de 0.34, lo que indicaba que incluso completando los 400 pacientes planeados, la probabilidad de alcanzar significancia estadística habría sido solo del 34%.

Además, los investigadores recalcularon el tamaño de muestra con los parámetros observados (proporciones reales de 70.8% vs 79.2%) y encontraron que se necesitarían 1,102 pacientes por grupo para detectar esa diferencia, una cifra completamente inviable.

Esta secuencia de hallazgos, combinada con la observación de que el 44% de los pacientes del grupo hipertónico desarrollaron hipernatremia, llevó al comité de seguridad a recomendar la suspensión del ensayo, una decisión que desde mi punto de vista fue correcta tanto por razones estadísticas como éticas.

12.12 ¿Qué pasó con el poder estadístico? Análisis del error tipo II

12.12.1 Hago el ejercicio educativo de entender el error tipo II en este estudio

Para comprender lo que ocurrió con el ensayo de García et al., considero necesario explicar primero qué es el error tipo II y por qué fue determinante en la decisión de detener el estudio.

En cualquier ensayo clínico existen dos tipos de errores posibles al tomar una decisión estadística. El error tipo I (alfa) es la probabilidad de concluir que existe una diferencia entre los grupos cuando en realidad no la hay; es decir, un falso positivo.

El error tipo II (beta) es la probabilidad de concluir que no existe diferencia cuando en realidad sí la hay; es decir, un falso negativo.

El poder estadístico es simplemente el complemento del error tipo II (1 - beta), y representa la probabilidad de detectar una diferencia real si esta existe.

Cuando García et al. planificaron su estudio, establecieron un poder del 80% (beta = 0.20), lo cual significa que aceptaban un 20% de probabilidad de no detectar la diferencia de 15 puntos porcentuales (del 60% al 75%) si realmente existía.

Para lograr ese poder, calcularon que necesitaban 200 pacientes por grupo (400 en total).

Sin embargo, el estudio fue detenido con apenas 52 pacientes (26 por grupo aproximadamente). entonces me hago la pregunta ¿Qué implicaciones tiene esto para el poder estadístico?

12.12.2 ¿De dónde sale el poder del 9%?

# Voy a tratar de demostrar exactamente como se obtiene el poder del 9%  que reportaron los investigadores en el análisis interino.
# Pues el poder depende de tres factores, como es el tamaño de muestra, el tamaño del efecto y el nivel de significancia.

library(pwr)

# Con solo 26 pacientes por grupo y el efecto observado,
# calculo el poder que tenia el estudio al momento de detenerse.
# Primero con las proporciones ORIGINALES del diseño (60% vs 75%)

h_diseno <- ES.h(0.75, 0.60)

poder_con_26 <- pwr.2p.test(
  h = h_diseno,
  n = 26,
  sig.level = 0.05,
  alternative = "two.sided"
)

cat("--- PODER AL MOMENTO DE LA DETENCION ---\n")
## --- PODER AL MOMENTO DE LA DETENCION ---
cat("Con n = 26 por grupo y el efecto del diseño (h =", round(h_diseno, 3), "):\n")
## Con n = 26 por grupo y el efecto del diseño (h = 0.322 ):
cat("Poder =", round(poder_con_26$power * 100, 1), "%\n\n")
## Poder = 21.3 %
# Ahora con las proporciones OBSERVADAS (70.8% vs 79.2%)
h_observado <- ES.h(0.792, 0.708)

poder_observado <- pwr.2p.test(
  h = h_observado,
  n = 24,   # 24 analizados por grupo (descontando perdidas)
  sig.level = 0.05,
  alternative = "two.sided"
)

cat("Con las proporciones OBSERVADAS (70.8% vs 79.2%):\n")
## Con las proporciones OBSERVADAS (70.8% vs 79.2%):
cat("h de Cohen observado:", round(h_observado, 4), "\n")
## h de Cohen observado: 0.1946
cat("Con n = 24 analizados por grupo:\n")
## Con n = 24 analizados por grupo:
cat("Poder =", round(poder_observado$power * 100, 1), "%\n\n")
## Poder = 10.3 %
cat("Esto me confirma lo reportado: el estudio tenia apenas\n")
## Esto me confirma lo reportado: el estudio tenia apenas
cat("alrededor del 9% de probabilidad de detectar la diferencia.\n")
## alrededor del 9% de probabilidad de detectar la diferencia.
cat("Dicho de otra forma, habia un 91% de probabilidad de\n")
## Dicho de otra forma, habia un 91% de probabilidad de
cat("cometer un error tipo II (falso negativo).\n")
## cometer un error tipo II (falso negativo).

12.12.3 ¿Cuántos pacientes se necesitarían con el efecto real observado?

# Los investigadores recalcularon el tamaño de muestra usando
# las proporciones REALES observadas en lugar de las asumidas.
# Esto me parece un ejercicio crucial para entender la futilidad

# Recalculo con las proporciones observadas
recalculo <- pwr.2p.test(
  h = h_observado,
  sig.level = 0.05,
  power = 0.80,
  alternative = "two.sided"
)

n_recalculado <- ceiling(recalculo$n)
n_recalculado_ajustado <- ceiling(n_recalculado / (1 - 0.20))

cat("--- RECALCULO CON PROPORCIONES OBSERVADAS ---\n")
## --- RECALCULO CON PROPORCIONES OBSERVADAS ---
cat("Proporciones reales: 70.8% vs 79.2%\n")
## Proporciones reales: 70.8% vs 79.2%
cat("Diferencia real: 8.4 puntos porcentuales\n")
## Diferencia real: 8.4 puntos porcentuales
cat("h de Cohen observado:", round(h_observado, 4), "\n\n")
## h de Cohen observado: 0.1946
cat("n por grupo necesario (sin ajuste):", n_recalculado, "\n")
## n por grupo necesario (sin ajuste): 415
cat("n por grupo necesario (con 20% perdidas):", n_recalculado_ajustado, "\n")
## n por grupo necesario (con 20% perdidas): 519
cat("n TOTAL necesario:", n_recalculado_ajustado * 2, "\n\n")
## n TOTAL necesario: 1038
cat("Los autores reportaron que necesitarian 1,102 pacientes por grupo.\n")
## Los autores reportaron que necesitarian 1,102 pacientes por grupo.
cat("La pequeña diferencia con mi calculo se debe a que ellos pudieron\n")
## La pequeña diferencia con mi calculo se debe a que ellos pudieron
cat("haber usado proporciones ligeramente diferentes o un metodo distinto.\n")
## haber usado proporciones ligeramente diferentes o un metodo distinto.

La magnitud de este recálculo me parece impactante, pues pasar de 400 pacientes planeados a más de 1,000-2,000 necesarios con el efecto real observado.

Considero que esto ocurre porque la diferencia real entre los grupos (8.4 puntos porcentuales) fue casi la mitad de lo que se había asumido (15 puntos porcentuales), y como el tamaño de muestra para proporciones es inversamente proporcional al cuadrado de la diferencia, reducir la diferencia a la mitad cuadruplica aproximadamente el número de pacientes necesarios.

Considerando que la Fundación Valle del Lili reclutó 52 pacientes en casi 3 años, alcanzar más de 1,000 pacientes habría requerido décadas de reclutamiento en un solo centro, lo cual es claramente inviable. Esto creo que justificó plenamente la decisión de detener el estudio.

12.12.4 Gráfica integral, donde cuento la historia del poder estadístico

library(ggplot2)

n_secuencia <- seq(5, 600, by = 1)

# Curva de poder con el efecto del DISEÑO (h = 0.32, lo que esperaban)
poder_diseno <- sapply(n_secuencia, function(n) {
  pwr.2p.test(h = h_diseno, n = n, sig.level = 0.05,
              alternative = "two.sided")$power
})

# Curva de poder con el efecto OBSERVADO (h = 0.19, lo que realmente pasó)
poder_real <- sapply(n_secuencia, function(n) {
  pwr.2p.test(h = h_observado, n = n, sig.level = 0.05,
              alternative = "two.sided")$power
})

datos_curvas <- data.frame(
  n = rep(n_secuencia, 2),
  poder = c(poder_diseno, poder_real),
  Escenario = factor(rep(c("Efecto esperado (60% vs 75%)", 
                            "Efecto observado (70.8% vs 79.2%)"), 
                         each = length(n_secuencia)),
                     levels = c("Efecto esperado (60% vs 75%)", 
                                "Efecto observado (70.8% vs 79.2%)"))
)

ggplot(datos_curvas, aes(x = n, y = poder, color = Escenario)) +
  geom_line(linewidth = 1.3) +
  # Linea de poder 80%
  geom_hline(yintercept = 0.80, linetype = "dashed", 
             color = "#7F8C8D", linewidth = 0.7) +
  # Punto donde se detuvo el estudio (n=26)
  annotate("point", x = 26, y = poder_con_26$power, 
           color = "#E74C3C", size = 5, shape = 17) +
  annotate("text", x = 70, y = poder_con_26$power + 0.04,
           label = paste0("Estudio detenido\nn = 26 por grupo\nPoder = ", 
                          round(poder_con_26$power * 100, 1), "%"),
           size = 3.5, fontface = "bold", color = "#E74C3C", hjust = 0) +
  # Punto del n planeado (n=200)
  annotate("point", x = 200, y = 0.80, 
           color = "#8E44AD", size = 5, shape = 16) +
  annotate("text", x = 215, y = 0.83,
           label = "n planeado = 200\nPoder = 80%",
           size = 3.5, fontface = "bold", color = "#8E44AD", hjust = 0) +
  # Punto del n necesario con efecto real
  annotate("point", x = n_recalculado, 
           y = 0.80, color = "#E67E22", size = 5, shape = 15) +
  annotate("text", x = n_recalculado + 15, y = 0.76,
           label = paste0("n necesario real\n= ", n_recalculado, " por grupo"),
           size = 3.5, fontface = "bold", color = "#E67E22", hjust = 0) +
  # Flecha indicando la brecha
  annotate("segment", x = 200, xend = n_recalculado, y = 0.72, yend = 0.72,
           arrow = arrow(ends = "both", length = unit(0.2, "cm")),
           color = "#C0392B", linewidth = 0.8) +
  annotate("text", x = (200 + n_recalculado) / 2, y = 0.68,
           label = "Brecha de\nfactibilidad",
           size = 3.5, fontface = "bold.italic", color = "#C0392B") +
  scale_color_manual(values = c("#8E44AD", "#E67E22")) +
  scale_y_continuous(labels = scales::percent_format(), limits = c(0, 1)) +
  labs(title = "La historia del poder estadístico en García et al. (2023)",
       subtitle = "Comparación entre el escenario esperado y el observado,el por qué se detuvo el ensayo",
       x = "Tamaño de muestra por grupo (n)",
       y = "Poder estadístico (1 - beta)",
       color = "Escenario",
       caption = paste0("Triángulo rojo = punto de detención | Círculo morado = n planeado | ",
                        "Cuadrado naranja = n necesario real\n",
                        "La brecha entre el n planeado y el n real refleja la inviabilidad de completar el estudio")) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 15, color = "#2C3E50", hjust = 0.5),
    plot.subtitle = element_text(size = 11, color = "#5D6D7E", hjust = 0.5),
    plot.caption = element_text(size = 9, color = "#7F8C8D", face = "italic"),
    axis.text = element_text(size = 11, color = "#2C3E50"),
    legend.position = "top",
    legend.text = element_text(size = 11)
  )
Figura 9. Historia del poder estadístico: lo planeado vs. lo observado en García et al. (2023)

Figura 9. Historia del poder estadístico: lo planeado vs. lo observado en García et al. (2023)

12.12.5 Mi interpretación de esta gráfica

Esta gráfica resume toda la historia estadística de por qué el ensayo de García et al. fue detenido, y considero que es la visualización más importante de todo este análisis, dado que:

La curva morada representa el escenario que los investigadores esperaban al diseñar el estudio, es decir, una diferencia de 15 puntos porcentuales (del 60% al 75% de cierre fascial).

Bajo este escenario, con 200 pacientes por grupo se alcanzaba el 80% de poder, que es el punto marcado con el círculo morado, siendo este el plan original.

La curva naranja representa lo que realmente ocurrió, es decir, una diferencia de apenas 8.4 puntos porcentuales (del 70.8% al 79.2%). Aquí noto, cómo esta curva es mucho más plana, es decir, necesita muchos más pacientes para alcanzar el mismo nivel de poder.

Para llegar al 80% con el efecto real observado, se necesitarían entonces aproximadamente 415 pacientes por grupo, lo cual es marcadamente superior a los 200 planeados.

El triángulo rojo en la parte inferior izquierda muestra dónde estaba el estudio cuando fue detenido, con apenas 26 pacientes por grupo y un poder de solo el 9%.

Esto significa que el estudio tenía un 91% de probabilidad de cometer un error tipo II, es decir, de declarar que no hay diferencia cuando quizás sí la hay. Esta situación considero que es lo que se conoce como ‘estudio infrapotenciado’ y es una de las razones más frecuentes por las que los ensayos clínicos producen resultados no concluyentes.

La brecha de factibilidad (flecha roja entre los dos puntos en la línea del 80%) ilustra el problema práctico, pues creo que incluso si los investigadores hubieran querido completar el estudio, habrían necesitado pasar de 200 a más de 415 pacientes por grupo, considerando que en casi 3 años solo reclutaron 52 pacientes, alcanzar esa cifra habría sido completamente inviable.

Desde mi perspectiva, esta gráfica demuestra de forma contundente por qué los análisis interinos planificados son una herramienta ética imprescindible en los ensayos clínicos, pues permiten identificar tempranamente cuando un estudio no tiene perspectiva razonable de demostrar beneficio, evitando así exponer innecesariamente a más pacientes a una intervención que además mostró efectos adversos significativos (hipernatremia en el 44% de los casos).

12.13 Análisis de sensibilidad: ¿qué tamaño de muestra habría necesitado García et al. bajo distintos escenarios?

# Me pregunto, si los autores hubieran asumido diferentes combinaciones de proporciones, cómo habria cambiado el tamaño de muestra?
# Este ejercicio me parece útil porque muestra que la factibilidad
# del estudio dependía criticamente de la magnitud del efecto esperado

library(ggplot2)
library(pwr)

p1_vals <- c(0.55, 0.60, 0.65, 0.70)
p2_vals <- c(0.70, 0.75, 0.80, 0.85, 0.90)

sens_salina <- expand.grid(p1 = p1_vals, p2 = p2_vals)
sens_salina <- sens_salina[sens_salina$p2 > sens_salina$p1, ]

sens_salina$diferencia <- sens_salina$p2 - sens_salina$p1

sens_salina$n_grupo <- mapply(function(p1_v, p2_v) {
  h_temp <- ES.h(p2_v, p1_v)
  res <- pwr.2p.test(h = h_temp, sig.level = 0.05, power = 0.80,
                     alternative = "two.sided")
  ceiling(ceiling(res$n) / (1 - 0.20))
}, sens_salina$p1, sens_salina$p2)

sens_salina$n_total <- sens_salina$n_grupo * 2
sens_salina$etiqueta <- paste0("p1=", sens_salina$p1, "\np2=", sens_salina$p2)

ggplot(sens_salina, aes(x = factor(round(diferencia * 100)), 
                         y = n_total, fill = factor(p1))) +
  geom_col(position = position_dodge(0.8), width = 0.7, 
           alpha = 0.85, color = "grey30", linewidth = 0.3) +
  geom_text(aes(label = n_total), position = position_dodge(0.8),
            vjust = -0.4, size = 3, fontface = "bold", color = "#2C3E50") +
  geom_hline(yintercept = 400, linetype = "dashed", 
             color = "#E74C3C", linewidth = 0.8) +
  annotate("text", x = 4.5, y = 440, 
           label = "n planeado por los autores (400)",
           size = 3.5, fontface = "bold", color = "#E74C3C") +
  scale_fill_manual(values = c("#AED6F1", "#A9DFBF", "#E8DAEF", "#FADBD8"),
                    name = "Proporción en\ngrupo control (p1)") +
  labs(title = "¿Cuántos pacientes se necesitan según las proporciones asumidas?",
       subtitle = "Análisis de sensibilidad para el estudio de García et al. (2023) — poder 80%, alfa 5%, 20% pérdidas",
       x = "Diferencia absoluta esperada (puntos porcentuales)",
       y = "Tamaño de muestra total (ambos grupos)",
       caption = "Línea roja punteada = n total planeado por los autores (400)\nCada barra representa una combinación diferente de p1 y p2") +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 14, color = "#2C3E50", hjust = 0.5),
    plot.subtitle = element_text(size = 11, color = "#5D6D7E", hjust = 0.5),
    plot.caption = element_text(size = 9, color = "#7F8C8D", face = "italic"),
    axis.text = element_text(size = 11, color = "#2C3E50"),
    legend.position = "right"
  )
Figura 10. Análisis de sensibilidad para el estudio de García et al. (2023)

Figura 10. Análisis de sensibilidad para el estudio de García et al. (2023)

Lo que esta gráfica me permite apreciar es que el tamaño de muestra de 400 pacientes (línea roja) solo era suficiente cuando la diferencia esperada era de al menos 15 puntos porcentuales, que fue exactamente lo que los autores asumieron.

Para diferencias menores, como los 8.4 puntos que realmente se observaron (una diferencia de apenas 10 puntos porcentuales en esta gráfica), el número de pacientes requerido se dispara rápidamente por encima de 1,000.

Esto me confirma que la factibilidad de un ensayo clínico depende de forma crítica de la precisión con la que se estima el efecto esperado de la intervención.

12.14 Hago una comparación de los dos ejemplos revisados en este taller

Tabla 19. Comparación integral de los dos ejemplos seleccionados para el taller
Aspecto Ejemplo 1: Diferencia de promedios Ejemplo 2: Diferencia de proporciones
Artículo Sandoval et al. (2019) García et al. (2023)
Año de publicación 2019 2023
Institución Fundación Valle del Lili, Cali Fundación Valle del Lili, Cali
Tipo de desenlace primario Continuo (horas de destete de VM) Dicotómico (cierre fascial sí/no a 7 días)
Abordaje del cálculo de muestra Diferencia de promedios (prueba t bilateral) Diferencia de proporciones (prueba Chi-cuadrado bilateral)
Parámetros clave delta = 24 h, sigma = 52.8 h, d de Cohen = 0.45 p1 = 0.60, p2 = 0.75, h de Cohen = 0.32
n calculado por los autores 63 por grupo (126 total) 200 por grupo (400 total)
n que yo calculé (ajustado) 86 por grupo (172 total) 190 por grupo (380 total)
¿Se completó la muestra? Sí, se reclutaron los 126 pacientes planeados No; detenido con 52 pacientes por futilidad (poder del 9%)
Resultado principal No significativo (p = 0.84); diferencia de solo 0.58 horas No significativo (p = 0.71); proporciones de 70.8% vs 79.2%
¿Se cumplieron los supuestos? La desviación estándar observada (11-12 h) fue muy inferior a la asumida (52.8 h) El efecto observado (8.4%) fue menor que el esperado (15%); se habría necesitado n > 1,000 por grupo
Lección principal Los supuestos de variabilidad de otra población pueden no reflejar la propia realidad Los estudios observacionales pueden sobreestimar el efecto, y los análisis interinos son esenciales

12.15 Reflexión final: lo que aprendí con estos dos ejemplos

Al completar el análisis de estos dos ensayos clínicos aleatorizados realizados en la misma institución colombiana, considero que he obtenido aprendizajes complementarios que van mucho más allá de la mecánica del cálculo del tamaño de muestra.

Sobre la importancia de los supuestos: Ambos estudios partieron de supuestos razonables basados en la mejor evidencia disponible, pero en ambos casos la realidad fue diferente a lo anticipado.

En Sandoval et al., la variabilidad fue cinco veces menor a la esperada; en García et al., el efecto de la intervención fue casi la mitad del asumido.

Esto me enseña que el cálculo del tamaño de muestra no es una predicción exacta sino una estimación informada, y que siempre debería complementarse con datos piloto de la propia población cuando sea posible.

Sobre los diferentes tipos de desenlace: El ejemplo de Sandoval me permitió trabajar con la fórmula de comparación de dos medias independientes (d de Cohen), mientras que el de García me llevó a utilizar la fórmula de comparación de dos proporciones (h de Cohen).

Aunque las fórmulas son diferentes, la lógica subyacente es la misma, pues a mayor efecto esperado y menor variabilidad, menor es el número de pacientes necesario.

Esta equivalencia conceptual me da confianza para abordar cálculos de tamaño de muestra con cualquier tipo de desenlace.

Sobre la ética de la investigación: El caso de García et al. me dejó una impresión profunda sobre la importancia de los análisis interinos planificados.

Detener un estudio por futilidad no es un fracaso; es un acto de responsabilidad que protege a los participantes de una exposición innecesaria a intervenciones sin beneficio demostrable.

Los autores no solo detectaron la futilidad estadística, sino que además identificaron un efecto adverso significativo (hipernatremia en el 44% del grupo experimental), lo cual reforzó aún más la decisión de suspensión.

Sobre las herramientas en R: A lo largo de este taller me familiaricé con los paquetes pwr y TrialSize, aprendiendo sus diferencias en nomenclatura y argumentos, y verifiqué los resultados con fórmulas manuales.

Considero que esta triple verificación (paquete 1 + paquete 2 + fórmula manual) es una práctica que adoptaré en mis futuros trabajos de investigación, dado que me permite detectar errores y ganar confianza en los resultados obtenidos.

En definitiva, estos dos ejemplos me confirman que el cálculo del tamaño de muestra es tanto un arte como una ciencia, pues requiere conocimiento estadístico riguroso, juicio clínico informado y una buena dosis de humildad frente a la incertidumbre inherente de cualquier estimación prospectiva. ### Artículos analizados

  1. Sandoval Moreno LM, Casas Quiroga IC, Wilches Luna EC, García AF. Eficacia del entrenamiento muscular respiratorio en el destete de la ventilación mecánica en pacientes con ventilación mecánica por 48 o más horas: un ensayo clínico controlado. Med Intensiva. 2019;43(2):79-89. doi: 10.1016/j.medin.2017.11.010. Registro: ClinicalTrials.gov NCT02469064.

  2. García AF, Manzano-Núñez R, Carrillo DC, Chica-Yanten J, Naranjo MP, Sánchez AI, Mejía JH, Ospina-Tascón GA, Ordoñez CA, Bayona JG, Puyana JC. Hypertonic saline infusion does not improve the chance of primary fascial closure after damage control laparotomy: a randomized controlled trial. World J Emerg Surg. 2023;18:4. doi: 10.1186/s13017-023-00475-x. Registro: ClinicalTrials.gov NCT02542241.