ab_test.R en R
Simular una prueba A/B y reportar el efecto con una prueba t.
#!/usr/bin/env Rscript
# Simula una prueba A/B y reporta el efecto con una prueba t.
set.seed(2026)
simulate <- function(n, mean_a, mean_b, sd = 15) {
list(
control = rnorm(n, mean = mean_a, sd = sd),
variant = rnorm(n, mean = mean_b, sd = sd)
)
}
report <- function(groups) {
test <- t.test(groups$variant, groups$control)
lift <- mean(groups$variant) - mean(groups$control)
cat("control mean:", round(mean(groups$control), 2), "\n")
cat("variant mean:", round(mean(groups$variant), 2), "\n")
cat("lift: ", round(lift, 2), "\n")
cat("95% CI: ", round(test$conf.int, 2), "\n")
cat("p-value: ", format.pval(test$p.value, digits = 3), "\n")
if (test$p.value < 0.05) {
cat("verdict: significant at alpha = 0.05\n")
} else {
cat("verdict: not significant\n")
}
}
args <- commandArgs(trailingOnly = TRUE)
n <- if (length(args) > 0) as.integer(args[1]) else 200
report(simulate(n, mean_a = 100, mean_b = 106))
Cómo funciona
rnormgenera las muestras de control y variante.t.testda el intervalo y el valor p.- El veredicto se imprime contra alfa = 0.05.
Palabras clave y builtins usados aquí
elsefunctionif
El intento, en números
- Líneas
- 30
- Caracteres a escribir
- 923
- Tokens
- 246
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 141 segundos.
Paso 2 de 2 en Bis; paso 11 de 11 en Estadística.