Herramientas · Bioestadística abierta
Tamaño de muestra para comparar dos medias independientes
Indica la diferencia de medias que quieres poder detectar, la desviación estándar esperada, el nivel de significación y el poder, y obtén cuántos participantes hacen falta en cada grupo, con la curva de poder, la interpretación en lenguaje llano y el código de R equivalente.
https://udgca1190.com.mx/herramientas/bioestadistica/muestra-dos-medias
Este enlace no incluye los datos pegados: son demasiado largos para una URL.
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.
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
- diferencia de medias que se quiere detectar
- desviación estándar común del desenlace
- grados de libertad de la prueba t
- parámetro de no centralidad
- distribución t no central
- poder que se exige al estudio
- 2 si el contraste es bilateral, 1 si es unilateral
- razón de asignación n₂/n₁
- cuantil normal del nivel de significación
- cuantil normal del poder
- 2 si el contraste es bilateral, 1 si es unilateral
- función de distribución normal estándar
- proporción de pérdidas previstas
- tamaño ajustado por pérdidas
- 2 si el contraste es bilateral, 1 si es unilateral
- techo: el redondeo hacia arriba se aplica una sola vez, al final
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
- 01 Student. The probable error of a mean. Biometrika. 1908;6(1):1–25. doi:10.1093/biomet/6.1.1 Fuente original
- 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
- 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
- 04 Cohen J. Statistical Power Analysis for the Behavioral Sciences. 2.ª ed. Hillsdale, NJ: Lawrence Erlbaum Associates; 1988. Complementaria
- 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
- 06 Altman DG. Practical Statistics for Medical Research. London: Chapman & Hall; 1991. Lectura didáctica
- 07 Hulley SB, Cummings SR, Browner WS, Grady DG, Newman TB. Designing Clinical Research. 4.ª ed. Philadelphia: Lippincott Williams & Wilkins; 2013. Lectura didáctica
- 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