Módulo 6: Statistical Significance
¿Podría el lift ser pura casualidad?
Descripción
Antes de tocar una sola fórmula de estadística formal, esta lección hace algo más simple y, en el fondo, más convincente: mirar el propio grupo control de Mercado, día por día, sin que exista todavía ningún experimento. Si la tasa de conversión de un grupo al que nadie le cambió nada ya rebota de un día a otro solo por el azar de qué usuarios entraron ese día, entonces una diferencia entre dos grupos distintos (control contra variant) tiene que superar ese ruido de fondo antes de poder llamarse "efecto real". Esta lección mide exactamente ese ruido de fondo, con los números reales de la semana de Mercado.
Conexión con el módulo. La lección 1 dejó planteada la pregunta central del módulo: ¿el +18.75% de lift es real o es azar? Esta lección no la responde todavía —eso empieza en la lección 3, con la hipótesis nula y el p-value—, pero construye la intuición que hace que esa respuesta tenga sentido: vas a ver, con aritmética simple, que el ruido de muestreo por sí solo ya produce swings del tamaño del lift que tanto entusiasmó al equipo. Sin esta lección, el p-value de la lección 3 sería solo una fórmula memorizada; con ella, es la respuesta natural a algo que ya viste con tus propios ojos.
Una analogía cotidiana: la fiesta que se llena distinto cada semana
Imagina un bar que, todos los viernes, hace exactamente la misma promoción: dos tragos por el precio de uno, de 8 a 10 de la noche. El dueño no cambia nada de un viernes al otro — mismo horario, mismo precio, mismo letrero en la puerta. Y sin embargo, un viernes entran 140 personas, el siguiente 165, el siguiente 148, el siguiente 190. El dueño no hizo nada distinto: lo que cambió fue quién decidió salir esa noche en particular — el clima, si había otro evento en la ciudad, si a la gente le tocó pagar el viernes o el lunes. Ese vaivén, viernes a viernes, no dice nada sobre si la promoción "mejoró" o "empeoró" — es simplemente la variación natural de contar personas en una muestra chica de la población total de la ciudad.
Ahora imagina que, un viernes cualquiera, el dueño agrega un DJ nuevo y entran 190 personas — un salto grande comparado con el viernes anterior (148). ¿El DJ funcionó, o fue un viernes con buen clima y nada más? No se puede saber solo con ese número — hace falta comparar ese salto contra cuánto rebota la asistencia normalmente, sin ningún cambio. Si el bar de por sí rebota entre 140 y 190 sin tocar nada, un salto a 190 con DJ nuevo no prueba mucho. Si el bar normalmente se mueve entre 145 y 155, un salto a 190 sí llama la atención. El grupo control de Mercado es ese bar sin DJ: midiendo cuánto rebota solo, aprendes cuánto "salto" hace falta para que algo deje de ser ruido y empiece a parecer una señal real.
Ejemplo trabajado: la conversión de control, día por día, sin ningún experimento
El módulo 5 reportó el agregado semanal de control: 384 conversiones de 12,000 visitas, 3.2%. Ese número es un promedio de siete días. Repartido día por día —la misma gente, el mismo checkout, absolutamente nada distinto entre lunes y domingo—, así se ve:
// Variacion dia a dia DENTRO del mismo grupo de control -- sin ningun cambio real -- para
// mostrar que el ruido de muestreo por si solo ya produce swings grandes. Los 7 dias son
// una particion real de los mismos 384/12000 del modulo 5 (nada inventado en el agregado
// semanal), solo repartidos dia a dia para ver la variacion.
const weeklyRate = 384 / 12000; // 3.2%, el mismo agregado del modulo 5
const days = [
{ day: 'lun', n: 1716, conv: 48 },
{ day: 'mar', n: 1714, conv: 60 },
{ day: 'mie', n: 1714, conv: 50 },
{ day: 'jue', n: 1714, conv: 54 },
{ day: 'vie', n: 1714, conv: 58 },
{ day: 'sab', n: 1714, conv: 66 },
{ day: 'dom', n: 1714, conv: 48 },
];
console.log('=== Variacion dia a dia dentro del MISMO control (nada cambio) ===\n');
let totalN = 0, totalConv = 0;
days.forEach((d) => {
const rate = d.conv / d.n;
const liftVsWeekly = (rate - weeklyRate) / weeklyRate;
totalN += d.n;
totalConv += d.conv;
console.log(
' ' + d.day + ' n=' + d.n + ' conv=' + String(d.conv).padStart(2) +
' rate=' + (rate * 100).toFixed(2) + '%' +
' vs promedio semanal: ' + (liftVsWeekly >= 0 ? '+' : '') + (liftVsWeekly * 100).toFixed(1) + '%'
);
});
console.log('\nTotal semana: ' + totalConv + '/' + totalN + ' = ' + ((totalConv / totalN) * 100).toFixed(2) + '% (coincide con el 3.2% del modulo 5)');
Qué esperar. Al correr el archivo con Node, la salida es exactamente esta:
=== Variacion dia a dia dentro del MISMO control (nada cambio) ===
lun n=1716 conv=48 rate=2.80% vs promedio semanal: -12.6%
mar n=1714 conv=60 rate=3.50% vs promedio semanal: +9.4%
mie n=1714 conv=50 rate=2.92% vs promedio semanal: -8.8%
jue n=1714 conv=54 rate=3.15% vs promedio semanal: -1.5%
vie n=1714 conv=58 rate=3.38% vs promedio semanal: +5.7%
sab n=1714 conv=66 rate=3.85% vs promedio semanal: +20.3%
dom n=1714 conv=48 rate=2.80% vs promedio semanal: -12.5%
Total semana: 384/12000 = 3.20% (coincide con el 3.2% del modulo 5)
Mira el sábado con atención: +20.3% respecto al promedio semanal. Más grande que el +18.75% de lift que el equipo vio entre control y variant en el módulo 5 — y ese +20.3% del sábado ocurrió sin ningún experimento, sin ningún cambio, sin ninguna recomendación nueva. Fue, únicamente, el bar sin DJ, un viernes con más gente de la que suele entrar. Si el propio control, solo, ya puede saltar un 20.3% de un día para otro sin ninguna causa real, la pregunta incómoda se vuelve inevitable: ¿el +18.75% entre control y variant es de verdad el efecto de recommendations, o es el mismo tipo de rebote que acabas de ver el sábado, solo que repartido entre dos grupos distintos en vez de entre dos días distintos?
Por qué la muestra chica rebota más
El rebote que acabas de ver no es un defecto de los datos de Mercado — es una propiedad matemática de contar sobre una muestra en vez de sobre toda la población. Cuanta menos gente entra en el cálculo de una tasa, más pesa cada persona individual sobre el resultado final. Con ~1,714 visitas por día, una diferencia de apenas 10 o 12 personas que decidieron comprar (o no) mueve la tasa observada varios décimos de punto porcentual — y esos décimos, sobre una base de 3.2%, ya representan un salto relativo de doble dígito. Si en cambio se midiera con un millón de visitas por día, esa misma variación individual de "10 o 12 personas" quedaría diluida a algo casi invisible, porque hay muchísimas más personas cuyas decisiones se promedian entre sí.
Esta es la razón profunda detrás de una frase que vas a escuchar seguido en experimentación: "con poca muestra, cualquier cosa puede parecer un efecto". No es que la matemática esté mal — es que el ruido de muestreo, con poca muestra, es simplemente más grande, y hace falta una diferencia más grande todavía para distinguirla del ruido. Esa idea —cuánta muestra hace falta para "ver a través" del ruido— es exactamente el tema del módulo 7 (sampleSize); por ahora, lo único que necesitas es la intuición de que el ruido existe, es real, y ya lo viste con tus propios números.
Errores comunes
Concluir "el control es inestable, algo anda mal con los datos". Qué pasa: alguien ve la tabla día a día y asume que hay un bug en la instrumentación, porque "la conversión no debería moverse tanto sin razón". Por qué pasa: la intuición espera que una tasa "de verdad" sea un número fijo, y cualquier movimiento se interpreta como error, no como variación esperada. Cómo detectarlo: si la explicación que se ofrece es "hay que revisar el tracking" en vez de "esto es ruido de muestreo normal", la variación se está malinterpretando como un problema técnico. Cómo corregirlo: una tasa calculada sobre una muestra siempre tiene variación — no es un bug, es la naturaleza de contar sobre un subconjunto. La pregunta correcta no es "¿por qué se mueve?", sino "¿se mueve más de lo que el azar explicaría?" — y esa pregunta formal es, precisamente, la de las lecciones 3 y 6.
Usar el rebote del día más extremo para descartar CUALQUIER lift futuro. Qué pasa: alguien ve el +20.3% del sábado y concluye "entonces ningún lift menor al 20% significa nada, nunca", aplicando esa cifra como un umbral universal. Por qué pasa: un solo número dramático se queda grabado y se generaliza de más, como si fuera una regla fija en vez de una observación puntual de una semana específica. Cómo detectarlo: si alguien cita "20%" como un umbral de significancia sin haber corrido ningún cálculo formal, está usando una anécdota como si fuera una fórmula. Cómo corregirlo: el rebote del sábado ilustra que el ruido puede llegar a ese tamaño, no que siempre lo hace, ni que ese es el umbral correcto para decidir significancia — el umbral correcto depende del tamaño de la muestra y se calcula con el z-test de las lecciones 3 y 6, no se estima a ojo mirando un solo día extremo.
Ejercicios
Ejercicio 1 — Encuentra el día más parecido al lift observado. De los siete días de control, ¿cuál es el que más se acerca, en magnitud, al +18.75% de lift que se observó entre control y variant en el módulo 5? ¿Qué implica eso para la pregunta de si ese lift es "grande" o no?
Ver solución
El sábado, con +20.3% respecto al promedio semanal, es el que más se acerca — de hecho, lo supera. Eso implica que, solo con el ruido natural del grupo control, ya es posible observar un salto del tamaño (o mayor) que el lift completo entre control y variant. Esto no prueba que el +18.75% sea puro azar —para eso hace falta el cálculo formal de las lecciones 3 y 6—, pero sí muestra que "se ve grande" no es, por sí solo, un argumento suficiente: el ruido de fondo también puede verse grande.
Ejercicio 2 — Calcula el rango del rebote. Mirando la columna "vs promedio semanal" de los siete días, ¿cuál es el rango completo de variación que tuvo el grupo control durante la semana (del valor más bajo al más alto)?
Ver solución
El valor más bajo es -12.6% (lunes) y el más alto es +20.3% (sábado) — un rango total de 32.9 puntos porcentuales de variación relativa, dentro del mismo grupo, sin ningún cambio de por medio. Ese rango completo es la evidencia más directa de esta lección: el ruido de muestreo, con ~1,700 visitas por día, no es un efecto marginal — es lo suficientemente grande como para que cualquier comparación entre dos grupos necesite un criterio más riguroso que "se ve distinto".
Ejercicio 3 — Predicción con criterio. Si Mercado hubiera medido control con 170,000 visitas por día en vez de ~1,700 (cien veces más muestra), ¿esperarías que el rango de variación día a día fuera más grande, más chico, o igual? Justifica en una frase, sin calcular todavía la fórmula exacta (eso llega en el módulo 7).
Ver solución
Más chico — mucho más chico. La razón, adelantada en la sección "Por qué la muestra chica rebota más" de esta lección: con más gente en el cálculo, las decisiones individuales de comprar o no comprar se promedian entre muchas más personas, y las fluctuaciones de unos pocos usuarios pesan proporcionalmente menos sobre la tasa final. El módulo 7 va a formalizar esta intuición con una fórmula exacta —el error estándar de una proporción se reduce con la raíz cuadrada del tamaño de la muestra—, pero la dirección del efecto (más muestra, menos ruido relativo) ya se puede predecir solo con el razonamiento de esta lección.
Resumen y siguiente paso
En esta lección viste, con los números reales de la semana de control de Mercado, que el ruido de muestreo por sí solo produce variación del tamaño (o mayor) que el lift de +18.75% observado entre control y variant: el sábado, sin ningún experimento corriendo, la conversión ya saltó un +20.3% respecto al promedio semanal. Entendiste, en términos generales, por qué una muestra chica rebota más que una grande, y por qué "se ve grande" no alcanza como criterio para distinguir un efecto real de una casualidad de muestreo.
Antes de avanzar deberías poder: explicar, con tus propias palabras, por qué el grupo control de Mercado rebota día a día sin que nadie cambie nada; y anticipar, aunque sea de forma intuitiva, que hace falta un criterio más riguroso que "el lift se ve grande" para decidir si recommendations funciona de verdad.
La lección 3 convierte esa intuición en matemática formal: la hipótesis nula (la versión precisa de "el control y el variant vienen de la misma tasa verdadera") y el p-value (la probabilidad exacta de ver un lift tan grande, o mayor, si esa hipótesis fuera cierta) — calculados, por primera vez en el módulo, sobre los propios números de Mercado.
Recursos
- Ron Kohavi, Diane Tang y Ya Xu, Trustworthy Online Controlled Experiments — experimentguide.com. Su capítulo introductorio sobre variación estadística explica, con más ejemplos de la industria, por qué la varianza de muestreo es inevitable en cualquier experimento online. En inglés.
- Wikipedia, "Sampling error" — en.wikipedia.org/wiki/Sampling_error. La definición formal del fenómeno que esta lección mostró con los datos de Mercado: la diferencia entre un estadístico calculado sobre una muestra y el valor real de la población. En inglés.
- Evan Miller, "How Not To Run An A/B Test" — evanmiller.org/how-not-to-run-an-ab-test.html. Retoma esta misma idea —cuánto rebota un resultado por puro azar— para explicar por qué mirar un experimento demasiado seguido multiplica las falsas alarmas; el módulo 7 profundiza en esto. En inglés.