← Índice de Bioestadística abierta
Cálculo instantáneo en el navegador · verificable con R Activa

Entradas

La diferencia más pequeña entre las medias de los dos grupos que cambiaría una decisión clínica, en las unidades del desenlace. El signo no cambia el resultado.

Desviación estándar del desenlace, supuesta igual en los dos grupos. Tómala de un estudio previo o de un piloto y declara de dónde salió.

Probabilidad de concluir que hay diferencia cuando no la hay. Convencionalmente 0.05; admite de 0.001 a 0.20.

Bilateral detecta diferencias en cualquier dirección y es lo habitual. Unilateral solo tiene sentido si una sola dirección es de interés y se decidió antes de ver los datos.

Probabilidad de detectar la diferencia si realmente existe. Convencionalmente 0.80 o 0.90; admite de 0.50 a 0.99.

Cuántos participantes del grupo 2 por cada uno del grupo 1. Con 1 los grupos son iguales, que es lo más eficiente; con 2 hay el doble en el grupo 2.

Proporción de participantes que se espera perder durante el seguimiento. El total se divide entre (1 − pérdidas). Déjalo vacío si no quieres ajustar.

Opcional. Si ya sabes cuántos participantes puedes reclutar en el grupo 1, escríbelo aquí y la calculadora te dirá qué poder alcanzarías. Déjalo vacío (o en 0) para el cálculo normal.

Ejemplo cargado

Ejemplo ilustrativo: detectar una diferencia de 1 día en la estancia hospitalaria media entre dos tratamientos, con una desviación estándar de 3 días, α = 0.05 bilateral, poder 0.80 y 10 % de pérdidas previstas (datos ficticios).

Datos ilustrativos, no reales.

Resultados

z del nivel de significación

1.960

z del poder

0.842

d de Cohen (Δ/σ)

0.333

n del grupo 1

143

t no central · sin redondear: 142.25

n del grupo 2

143

t no central · sin redondear: 142.25

Total

286

sin redondear: 284.49

Total por grupo según power.t.test

143

sin redondear: 142.25

n del grupo 1 (aproximación normal)

143

normal con corrección de Guenther · sin redondear: 142.24

n del grupo 2 (aproximación normal)

143

normal con corrección de Guenther · sin redondear: 142.24

Total ajustado por pérdidas

318

10 % · sin redondear: 316.10

Poder con el n disponible

no aplica

Poder con el n disponible (aproximación normal)

no aplica

Interpretación

Para detectar una diferencia de medias de 1 (en las unidades del desenlace; d de Cohen = 0.333) con poder 80 % y α = 0.050 (Bilateral) se requieren 143 participantes en el grupo 1 y 143 en el grupo 2, es decir 286 en total.

La fórmula normal con la corrección de Guenther da 143 por grupo; se reporta la solución exacta de la t no central, que es la que sostiene el cálculo.

Con grupos iguales el resultado coincide con power.t.test(delta = 1, sd = 3, sig.level = 0.050, power = 0.80, type = "two.sample") de R, que devuelve 143 por grupo.

Previendo 10 % de pérdidas, el objetivo de reclutamiento sube a 318 participantes en total, 159 y 159 por grupo, para terminar el estudio con los 286 que exige el cálculo.

Si ya sabes cuántos participantes puedes reclutar, escríbelo en «modo inverso» y verás qué poder alcanzarías con esa cifra.

  • Las cifras dependen por completo de los supuestos que capturaste (la diferencia que importa y la desviación estándar): tómalos de estudios previos o de un piloto y declara su origen en el protocolo.
Poder frente al tamaño del grupo 1Participantes en el grupo 1: 143; Poder: 80 %.PoderPoder exacto (t no central)0 %25 %50 %75 %100 %50100150200250Participantes en el grupo 1Poder objetivo: 80 %n elegido: 143
Poder frente al tamaño del grupo 1

Explicación

Planear el tamaño de muestra de un estudio que compara dos medias es responder a una pregunta concreta: si en la población existiera una diferencia de al menos Δ unidades, ¿cuántos participantes necesito para que mi prueba la detecte con una probabilidad razonable? Esa probabilidad es el poder. Lo habitual es pedir 80 % o 90 %, y fijar α en 0.05.

La cuenta necesita tres supuestos que no salen de esta calculadora, sino de la literatura o de un estudio piloto: la diferencia mínima que importa clínicamente, la desviación estándar del desenlace y la forma del contraste (bilateral o unilateral). La diferencia mínima no es la que uno espera encontrar, sino la más pequeña que cambiaría una decisión clínica; pedirle al estudio que detecte diferencias más chicas que eso encarece el reclutamiento sin ganar nada.

La fórmula clásica de los libros usa la distribución normal y subestima un poco, porque olvida que la desviación estándar también se estima a partir de los datos. La solución exacta reconoce ese detalle: bajo la hipótesis alternativa el estadístico t sigue una distribución t NO central, y el tamaño de muestra es el menor n que deja por encima del valor crítico la fracción de masa que pide el poder. Es exactamente lo que hace power.t.test en R, y es lo que esta calculadora reporta como resultado principal; la aproximación normal con la corrección de Guenther (1981) aparece al lado, como fila didáctica, y suele quedarse una o dos unidades por debajo.

La razón de asignación r = n₂/n₁ sirve cuando los grupos no van a ser del mismo tamaño: r = 2 significa dos controles por cada caso. Repartir desigualmente cuesta participantes en total (el total mínimo se consigue siempre con grupos iguales), pero a veces es lo único posible. Y como en cualquier estudio real habrá abandonos, el ajuste por pérdidas divide el total entre (1 − L): pedir 10 % de pérdidas no es pesimismo, es planeación.

Ecuaciones

1−β  =  P ⁣(Tν,λ′>tν,  1−α/k),ν=n1+n2−2,λ=∣δ∣σ1n1+1n21-\beta \;=\; P\!\left(T'_{\nu,\lambda} > t_{\nu,\;1-\alpha/k}\right), \qquad \nu = n_1 + n_2 - 2, \qquad \lambda = \frac{|\delta|}{\sigma\sqrt{\dfrac{1}{n_1}+\dfrac{1}{n_2}}}
δ\delta
diferencia de medias que se quiere detectar
σ\sigma
desviación estándar común del desenlace
ν\nu
grados de libertad de la prueba t
λ\lambda
parámetro de no centralidad
Tν,λ′T'_{\nu,\lambda}
distribución t no central
1−β1-\beta
poder que se exige al estudio
kk
2 si el contraste es bilateral, 1 si es unilateral
Solución exacta: n₁ es el menor valor que cumple la igualdad, resuelto por búsqueda de raíces sobre la t no central. Con grupos iguales (r = 1) coincide con power.t.test(type = "two.sample") de R; con r ≠ 1 se resuelve la misma ecuación fijando n₂ = r·n₁.
n1  =  (1+1r)(z1−α/k+z1−β)2σ2δ2  +  z1−α/k24,n2=r n1n_1 \;=\; \frac{\left(1+\dfrac{1}{r}\right)\left(z_{1-\alpha/k}+z_{1-\beta}\right)^2\sigma^2}{\delta^2} \;+\; \frac{z_{1-\alpha/k}^2}{4}, \qquad n_2 = r\,n_1
rr
razón de asignación n₂/n₁
z1−α/kz_{1-\alpha/k}
cuantil normal del nivel de significación
z1−βz_{1-\beta}
cuantil normal del poder
kk
2 si el contraste es bilateral, 1 si es unilateral
Aproximación normal clásica. El término final es la corrección de Guenther (1981), que compensa el haber tratado la desviación estándar como conocida; sin ella la fórmula se queda todavía más corta.
1−β  ≈  Φ ⁣(∣δ∣σ1n1+1n2−z1−α/k),naj=⌈n11−L⌉+⌈n21−L⌉1-\beta \;\approx\; \Phi\!\left(\frac{|\delta|}{\sigma\sqrt{\dfrac{1}{n_1}+\dfrac{1}{n_2}}} - z_{1-\alpha/k}\right), \qquad n_{aj} = \left\lceil\dfrac{n_1}{1-L}\right\rceil + \left\lceil\dfrac{n_2}{1-L}\right\rceil
Φ\Phi
función de distribución normal estándar
LL
proporción de pérdidas previstas
najn_{aj}
tamaño ajustado por pérdidas
kk
2 si el contraste es bilateral, 1 si es unilateral
⌈  ⌉\lceil\;\rceil
techo: el redondeo hacia arriba se aplica una sola vez, al final
Modo inverso: el poder que alcanzaría un tamaño ya disponible. La calculadora reporta también el poder exacto por la t no central, que es el que debe citarse. El ajuste por pérdidas es el de Lwanga y Lemeshow (1991) y se redondea POR GRUPO, igual que el tamaño: el titular suma los dos techos y el valor sin redondear queda en el detalle de la celda.

Código R

# Sample size for two independent means, exact non-central t - Bioestadistica abierta, UDG-CA-1190
# Runs as is in R, RStudio or webR; prints the results as JSON at the end.
library(jsonlite)

delta       <- 1         # smallest difference between means that matters
sigma       <- 3         # common standard deviation of the outcome
alfa        <- 0.05
lateralidad <- "bilateral"   # "bilateral" or "unilateral"
poder       <- 0.8         # target power (1 - beta)
r           <- 1             # allocation ratio n2/n1
perdidas    <- 0.1      # expected losses, 0 to 0.5
n_dado      <- 0        # inverse mode: n1 already available; 0 = not given

tside   <- if (lateralidad == "bilateral") 2 else 1
z_alfa  <- qnorm(alfa/tside, lower.tail = FALSE)
z_beta  <- qnorm(poder)
d_cohen <- abs(delta)/sigma

# Exact power of Student's two-sample t test: under the alternative the statistic
# follows a NON-CENTRAL t with nu = n1 + n2 - 2 and ncp = |delta| / (sigma * sqrt(1/n1 + 1/n2)).
# This is the same function power.t.test evaluates, written for any allocation ratio r.
poder_de <- function(n1) {
  nu  <- pmax(1e-07, n1 * (1 + r) - 2)
  ncp <- abs(delta) / (sigma * sqrt(1/n1 + 1/(r * n1)))
  pt(qt(alfa/tside, nu, lower.tail = FALSE), nu, ncp = ncp, lower.tail = FALSE)
}

# Smallest n1 reaching the target power, with the bracket and the tolerance of power.t.test.
# Two guards: fewer than 2 per group is not a sample size, and an effect so small that
# even 1e7 per group falls short is reported as "not defined" instead of a made-up number.
n1 <- if (poder_de(2) >= poder) 2 else
      if (poder_de(1e7) < poder) NA_real_ else
      uniroot(function(n1) poder_de(n1) - poder, c(2, 1e7), tol = 1e-10)$root
n2      <- r * n1
n_total <- n1 + n2

# power.t.test only covers equal groups; with r != 1 it does not apply and the equation above is the answer.
# It needs the SAME two guards as n1: power.t.test extends the bracket (extendInt = "upX") and
# would answer with a sample size below 2, or beyond the 1e7 where the equation above stops.
n_ptt <- if (r != 1) NA_real_ else
         if (poder_de(2) >= poder) 2 else
         if (poder_de(1e7) < poder) NA_real_ else
         power.t.test(delta = abs(delta), sd = sigma, sig.level = alfa, power = poder,
                      type = "two.sample",
                      alternative = if (tside == 2) "two.sided" else "one.sided",
                      tol = 1e-10)$n

# Classical normal approximation with Guenther's (1981) correction, shown as a teaching row
n1_normal <- (1 + 1/r) * (z_alfa + z_beta)^2 * sigma^2 / delta^2 + z_alfa^2/4
n2_normal <- r * n1_normal

n_ajustado <- n_total / (1 - perdidas)   # Lwanga & Lemeshow 1991; the interface takes the ceiling

# Inverse mode: power actually reached with n1 = n_dado and n2 = r * n_dado
poder_dado <- if (n_dado >= 2) poder_de(n_dado) else NA_real_
poder_dado_normal <- if (n_dado >= 2)
  pnorm(abs(delta) / (sigma * sqrt(1/n_dado + 1/(r * n_dado))) - z_alfa) else NA_real_

res <- list(z_alfa = z_alfa, z_beta = z_beta, d_cohen = d_cohen,
            n1 = n1, n2 = n2, n_total = n_total, n_ptt = n_ptt,
            n1_normal = n1_normal, n2_normal = n2_normal, n_ajustado = n_ajustado,
            poder_dado = poder_dado, poder_dado_normal = poder_dado_normal)
cat(toJSON(res, auto_unbox = TRUE, digits = NA))

# Equivalent in RStudio (not run here): pwr::pwr.t.test(d = d_cohen, power = poder, type = "two.sample")
# and, for unequal groups, pwr::pwr.t2n.test(n1 = ..., n2 = ..., d = d_cohen)

Este es el mismo código que valida la calculadora: cópialo y ejecútalo en R o RStudio para reproducir el resultado.

La verificación con R dentro del navegador llegará en una próxima versión; mientras tanto, copia el código y ejecútalo en RStudio.

Métodos para manuscrito

El tamaño de muestra se calculó para comparar las medias de dos grupos independientes, suponiendo una diferencia mínima de interés de 1 en las unidades del desenlace y una desviación estándar común de 3 (d de Cohen = 0.333), con α = 0.050 (Bilateral) y un poder de 80 % [3], mediante la solución exacta basada en la distribución t no central [1], equivalente a power.t.test de R; la aproximación normal con la corrección de Guenther [2] se reporta como comparación y la convención de tamaños del efecto sigue a Cohen [4, 5]. Se requieren 143 y 143 participantes por grupo (286 en total). Se añadió 10 % por pérdidas previstas, de modo que el total a reclutar asciende a 318. El procedimiento sigue las recomendaciones habituales de diseño [6, 7, 8]. Los cálculos se realizaron con la calculadora «Muestra para dos medias» de Bioestadística abierta (Cuerpo Académico UDG-CA-1190, https://udgca1190.com.mx/herramientas/bioestadistica/muestra-dos-medias), verificada contra R.

Párrafo listo para la sección de Métodos; los números entre corchetes remiten a la lista de referencias.

Referencias

  1. 01 Student. The probable error of a mean. Biometrika. 1908;6(1):1–25. doi:10.1093/biomet/6.1.1 Fuente original
  2. 02 Guenther WC. Sample size formulas for normal theory T tests. The American Statistician. 1981;35(4):243–244. doi:10.1080/00031305.1981.10479363 Fuente original
  3. 03 Neyman J, Pearson ES. On the problem of the most efficient tests of statistical hypotheses. Philosophical Transactions of the Royal Society of London. Series A, Containing Papers of a Mathematical or Physical Character. 1933;231:289–337. doi:10.1098/rsta.1933.0009 Complementaria
  4. 04 Cohen J. Statistical Power Analysis for the Behavioral Sciences. 2.ª ed. Hillsdale, NJ: Lawrence Erlbaum Associates; 1988. Complementaria
  5. 05 Lachin JM. Introduction to sample size determination and power analysis for clinical trials. Controlled Clinical Trials. 1981;2(2):93–113. doi:10.1016/0197-2456(81)90001-5 PMID: 7273794 Complementaria
  6. 06 Altman DG. Practical Statistics for Medical Research. London: Chapman & Hall; 1991. Lectura didáctica
  7. 07 Hulley SB, Cummings SR, Browner WS, Grady DG, Newman TB. Designing Clinical Research. 4.ª ed. Philadelphia: Lippincott Williams & Wilkins; 2013. Lectura didáctica
  8. 08 Chow SC, Shao J, Wang H, Lokhnygina Y. Sample Size Calculations in Clinical Research. 3.ª ed. Boca Raton: Chapman & Hall/CRC; 2017. doi:10.1201/9781315183084 Complementaria