🧮 Computational Mathematics

Inicio · Parte 10 — Estadística e inferencia

219 — A/B testing y diseño experimental

universitario-avanzado clase 19 de 20 4 horas demostración ab_testing

Un A/B test se diseña antes de recogerlo: tamaño muestral, métrica y criterio de parada.

Fórmulas

z = (p̂_B − p̂_A) / √(p̂(1−p̂)(1/n_A + 1/n_B))
lift relativo = (p_B − p_A) / p_A
n por grupo ≈ 16·p(1−p) / Δ²  para 80 % de potencia

Desarrollo

Un A/B test es un ensayo controlado aleatorizado aplicado a producto. La aleatorización es lo que le da valor causal: si la asignación al grupo es al azar, las diferencias observadas se atribuyen al cambio y no a características previas de los usuarios. Sin aleatorización es un estudio observacional con todos los confusores de la clase 213.

Tres decisiones deben tomarse antes de recoger datos: la métrica principal, el tamaño del efecto mínimo relevante, y el tamaño muestral que da potencia suficiente para detectarlo. Sin esas tres, el experimento no puede concluir nada aunque se ejecute perfectamente.

El error operativo más destructivo es el peeking: mirar el resultado a diario y parar cuando aparece p < 0,05. Ese procedimiento multiplica la tasa de falsos positivos por tres o más, porque da múltiples oportunidades de cruzar el umbral por azar. Las soluciones son fijar la duración de antemano o usar métodos de parada secuencial diseñados para ello.

Y hay que separar significancia de relevancia. Un lift del 17 % con p = 0,0098 es un resultado sólido; el mismo p con un lift del 0,3 % puede no justificar el coste del cambio. Lo que se decide no es si el efecto es distinto de cero, sino si merece la pena, y para eso hace falta el intervalo del efecto, no el p-value.

Ejemplo trabajado

Experimento de conversión con 4 000 usuarios por grupo.

grupo A (control):    conversión 0,10350
grupo B (variante):   conversión 0,12175
diferencia absoluta:  0,01825
lift relativo:        17,63 %

n por grupo = 4 000
proporción combinada p̂ = 0,112625
SE = √(0,112625 · 0,887375 · (1/4000 + 1/4000)) = 0,007070

z = 0,01825 / 0,007070 = 2,5817
p = 0,00983     →  significativo al 5 %

IC 95 % de la diferencia:
  0,01825 ± 1,96 × 0,007070 = (0,00439 , 0,03211)
  lift entre 4,2 % y 31,0 %

Peeking diario durante 14 días sin corrección:
  tasa real de falsos positivos ≈ 20 %, no 5 %.

Qué calcula el laboratorio

A/B test de proporciones con tamaño muestral y significancia.

python classes/part-10-estadistica-e-inferencia/219-a-b-testing-y-diseno-experimental/lab.py
compmath run 219

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "conversion_A": 0.1035,
  "conversion_B": 0.12175,
  "lift_relativo_%": 17.6329,
  "n_por_grupo": 4000,
  "estadistico_z": 2.5817,
  "p_value": 0.009831
}

Errores comunes

Dónde se usa

Experimentación de producto, comparación de modelos en producción, optimización de conversión y despliegues progresivos.

Idea rectora de la parte

Correlación no implica causalidad, pero causalidad sí restringe la correlación.

Error a evitar

p-hacking por comparaciones múltiples sin corrección.

Conexión con IA

Evaluar un modelo es inferencia estadística: métricas con intervalo, comparaciones múltiples corregidas y detección de leakage.

Bibliografía de la clase

Archivos de la clase