CUPAC: reducción de varianza con predicción de modelo
CUPAC usa la predicción de un modelo como covariable y recorta la varianza del test A/B. La cuenta de theta, 51,70% de reducción y el error que sesga todo.

📚 Este artículo es parte de la guía Significancia Estadística en Tests A/B: La Guía.
La forma más barata de duplicar la sensibilidad de un test A/B no es comprar tráfico, es aprovechar mejor lo que usted ya sabe sobre cada usuario antes de que entre al test. CUPED lo hace con una métrica del período preexperimento. CUPAC hace lo mismo con la predicción de un modelo entrenado con varias features del período preexperimento, y recorta más. En la simulación trabajada de esta guía, la métrica del período preexperimento sola recorta 26,85 por ciento de la varianza y la predicción del modelo recorta 51,70 por ciento, lo que baja el requisito de muestra de 31.234 a 15.088 visitantes por variación y la duración de 22 a 11 días. Esta guía muestra la cuenta de theta, la equivalencia entre reducción de varianza y muestra efectiva en la calculadora, el ejemplo en el que un test sin significancia pasa a tenerla, y la simulación que mide el sesgo de menos 6,5 del error más común al construir la covariable. Forma parte de nuestra guía completa de test A/B y es la continuación directa de qué es CUPED.
El problema: varianza que no tiene nada que ver con el test
La conversión o el ingreso de un usuario dependen de mil cosas que existían antes de que usted cambiara cualquier botón: si es cliente antiguo o nuevo, si vino del email o de la búsqueda, si ya había comprado tres veces, si está en el escritorio, si entró a las 9 de la mañana de un martes. Nada de eso es efecto de su test, y todo eso engorda la varianza de la métrica.
La reducción de varianza es la familia de técnicas que quita esa parte previsible antes de comparar los grupos. Como lo plantea DoorDash, la estratificación, la postestratificación y el control por covariable son los tres enfoques comunes, y CUPAC pertenece al tercero.
La cuenta de CUPAC, en cuatro líneas
La formulación de variables de control del artículo original de CUPED es lo bastante simple para caber aquí. Dada la métrica Y y una covariable X, la métrica ajustada es:
Y_ajustado = Y − theta × (X − media de X)
La varianza de eso se minimiza cuando theta = cov(Y, X) / var(X), y con ese theta óptimo la varianza queda en var(Y) × (1 − rho²), donde rho es la correlación entre Y y X. Deng, Xu, Kohavi y Walker escriben exactamente eso: “la varianza se reduce por un factor de rho al cuadrado. Cuanto mayor es rho, mejor es la reducción de varianza.”
Es la frase más importante del tema. Toda la ingeniería de reducción de varianza es ingeniería de correlación. Si usted aumenta la correlación entre la covariable y el resultado, gana sensibilidad gratis.
El CUPED clásico responde a esto de la forma más simple: usa como X la MISMA métrica medida en el período preexperimento. CUPAC responde de otra forma: usa como X la predicción de un modelo entrenado con varias features del período preexperimento, optimizado para correlacionar con Y.
La simulación: cuánto rinde cada covariable
Para medir esto con números propios, armamos una simulación de 60.000 usuarios con ocho features anteriores al test (antigüedad del registro, sesiones en el período preexperimento, ingreso en el período preexperimento, dispositivo, tasa de apertura de email, artículos en el carrito en el período preexperimento, páginas por sesión y origen pago) y un resultado de ingreso en el período del test que depende de esas features de forma no lineal, más ruido. La predicción de CUPAC salió de una regresión penalizada sobre un diseño de 14 términos, estimada con cross-fitting de 5 pliegues (cada usuario recibe la predicción de un modelo que no lo vio en el entrenamiento).
| covariable | correlación con el resultado | theta | varianza | reducción |
|---|---|---|---|---|
| ninguna (bruto) | n/d | n/d | 996,57 | n/d |
| solo antigüedad del registro | 0,1627 | n/d | 970,17 | 2,65% |
| ingreso del período preexperimento (CUPED) | 0,5182 | 0,5536 | 728,99 | 26,85% |
| predicción del modelo (CUPAC) | 0,7190 | 1,0048 | 481,36 | 51,70% |
Tres cosas para observar en esa tabla.
Primero, el theta de CUPAC dio 1,0048, prácticamente uno. No es coincidencia: cuando la covariable es una predicción bien calibrada del propio resultado, el theta óptimo tiende a 1, y el ajuste se vuelve literalmente “reste lo que el modelo ya esperaba”. La métrica ajustada pasa a ser el residuo del modelo.
Segundo, la covariable débil no estropea nada. Rinde 2,65 por ciento, que es casi cero, pero no es negativo. Guo, Coey, Konutgan, Li, Schoener y Goldman prueban esa propiedad formalmente para el estimador MLRATE: si las predicciones no tienen correlación con los resultados, el estimador se comporta asintóticamente igual que la diferencia simple de medias, y si la correlación es alta, las ganancias de eficiencia son grandes.
Tercero, el salto de 26,85 a 51,70 por ciento es el valor de usar un modelo en lugar de una columna. La predicción captura interacciones y no linealidades que una única métrica del período preexperimento no captura. Es el argumento que da DoorDash: una codificación del resultado por aprendizaje automático captura relaciones complejas entre múltiples factores que un conjunto de covariables lineales deja pasar.
Lo que eso vale en días de test
La reducción de varianza se convierte en muestra efectiva por la misma razón por la que la muestra aparece dividiendo la varianza en la fórmula del error estándar: si la varianza cae por un factor de 1 − rho², el requisito de muestra cae por el mismo factor. La calculadora de muestra da el eje:
Cálculo por aproximación normal de dos proporciones, 2 variaciones (50/50). Cambia los campos y mira el impacto en vivo.
Con una base de 5 por ciento, un efecto mínimo detectable de más 10 por ciento relativo, 95 por ciento de confianza y 80 por ciento de poder, devuelve 31.234 visitantes por variación. Aplicando los factores de la simulación:
| covariable | factor 1 − rho² | muestra por variación | días a 20.000/semana | días a 30.000/semana |
|---|---|---|---|---|
| ninguna | 1,0000 | 31.234 | 22 | 15 |
| solo antigüedad del registro | 0,9735 | 30.408 | 22 | 15 |
| ingreso del período preexperimento (CUPED) | 0,7315 | 22.847 | 16 | 11 |
| predicción del modelo (CUPAC) | 0,4830 | 15.088 | 11 | 8 |
Los autores de CUPED describen la ganancia de cerca de 50 por ciento de reducción de varianza en Bing como “equivalente a duplicar nuestro tráfico o reducir a la mitad el tiempo que necesitamos correr un experimento para obtener la misma sensibilidad”. La tabla de arriba es esa frase en números: 22 días se vuelven 11.
La otra forma de gastar la ganancia es mantener la duración y detectar efectos más pequeños. Con 18.000 visitantes por variación fijos:
| covariable | muestra efectiva | efecto mínimo detectable |
|---|---|---|
| ninguna | 18.000 | +12,87% relativo (0,644 pp) |
| solo antigüedad del registro | 18.489 | +12,70% relativo (0,635 pp) |
| CUPED | 24.608 | +11,01% relativo (0,550 pp) |
| CUPAC | 37.264 | +8,95% relativo (0,447 pp) |
Pasar de detectar más 12,87 por ciento a detectar más 8,95 por ciento cambia la cartera de tests que tiene sentido correr. Muchas buenas ideas producen ganancias de 5 a 10 por ciento relativo, y con la regla bruta esas ideas nunca concluyen nada. Vea efecto mínimo detectable para el razonamiento completo.
Ejemplo trabajado: el test que pasa a concluir
Vale la pena verlo en una lectura concreta. El test corrió con 18.000 visitantes por variación y devolvió 900 conversiones en el control contra 972 en la variación:
Test z bilateral de dos proporciones. "Sin significancia" casi siempre significa que falta muestra, no que las versiones sean iguales.
Eso da 5,000 por ciento contra 5,400 por ciento, una ganancia relativa de 8,00 por ciento, valor p de 0,087427 e intervalo de menos 0,0587 a más 0,8587 punto porcentual. No pasa en 0,05. El poder para detectar más 8 por ciento con esa muestra era de apenas 40,10 por ciento, es decir, el test tenía 3 posibilidades en 5 de no concluir nada aun siendo real el efecto.
Ahora la misma lectura con la ganancia de sensibilidad. Como el efecto de la reducción de varianza es idéntico al de tener más muestra, basta con alimentar la calculadora con la muestra efectiva y las conversiones en la misma proporción:
- Con CUPED (muestra efectiva de 24.607 por variación, 1.230 contra 1.329 conversiones): valor p 0,044431. Pasa, por muy poco.
- Con CUPAC (muestra efectiva de 37.267 por variación, 1.863 contra 2.012 conversiones): valor p 0,013958, intervalo de más 0,0811 a más 0,7186 punto porcentual, y el poder sube de 40,10 a 69,12 por ciento.
El efecto estimado es el mismo en los tres casos, +8,00 por ciento relativo. Lo que cambia es el intervalo a su alrededor. El test bruto y el test con CUPAC observaron el mismo mundo; solo uno de ellos logró afirmar algo sobre él.
El error que lo sesga todo
Esta es la única regla de CUPAC que, si se rompe, convierte la técnica en una fábrica de conclusiones equivocadas: la covariable tiene que construirse solo con datos anteriores al test. DoorDash escribe de forma directa que cada variable de control tiene que ser independiente del tratamiento, y señala que, como las features vienen de antes del experimento, la predicción construida sobre ellas también estará descorrelacionada del tratamiento, que es lo que la vuelve admisible como covariable.
Medimos el costo de romper esa regla. Simulación de 2.000 repeticiones, 8.000 usuarios por repetición, efecto total verdadero de 9,40 (compuesto de un efecto directo de 4,00 más un efecto indirecto de 5,40 que pasa por una variable intermedia):
| estimador | media de las estimaciones | sesgo | desviación entre repeticiones |
|---|---|---|---|
| diferencia simple de medias | 9,3864 | −0,0136 | 0,6733 |
| ajuste con covariable del período preexperimento | 9,3961 | −0,0039 | 0,4394 |
| ajuste con covariable medida en el test | 2,8911 | −6,5089 | 0,6114 |
La covariable del período preexperimento hace las dos cosas que se esperan de ella: mantiene correcta la estimación y reduce la desviación de 0,6733 a 0,4394, una caída de 34,74 por ciento. La covariable medida durante el test destruye la estimación: el efecto de 9,40 aparece como 2,89, porque el ajuste absorbe la parte del efecto que pasa por la propia covariable y encima sobreajusta. No es una estimación peor del efecto total, es una estimación de nada.
Es el mismo mecanismo de sobreajuste que discutimos en análisis de mediación, con una diferencia importante: allí la descomposición es el objetivo declarado y la cuenta se hace para eso. Aquí es un accidente, y el número aparece en el informe como si fuera el efecto del test.
Cross-fitting: por qué la predicción viene de fuera de la muestra
Falta un detalle operativo en el que es fácil equivocarse. Si usted entrena el modelo con los mismos usuarios en los que aplica la predicción, el residuo de cada usuario queda artificialmente pequeño, porque el modelo memorizó parte del ruido de ese usuario específico. Eso contamina la estimación.
La solución estándar es el cross-fitting: se divide la muestra en K pliegues, se entrena en K − 1 y se predice en el que sobra, repitiendo hasta que todo usuario tenga una predicción hecha por un modelo que no lo vio. Así generamos la predicción con 5 pliegues en la simulación de arriba. MLRATE adopta el mismo mecanismo, y el abstract del artículo es explícito: “emplea cross-fitting para evitar sesgos de sobreajuste”. El marco general de esto está en aprendizaje automático doble.
Cómo armar CUPAC en la práctica
- Congele la ventana del período preexperimento antes de que empiece el test. Todo lo que entra al modelo tiene que tener un timestamp anterior al inicio de la exposición. Esa es la regla dura.
- Empiece por CUPED. La métrica del período preexperimento es una línea de SQL y ya entregó 26,85 por ciento en la simulación. Solo pase a CUPAC después de tener eso funcionando.
- Mida la correlación fuera de la muestra ANTES de confiar. La reducción prometida es el cuadrado de esa correlación; si da 0,20, la ganancia es 4 por ciento y no compensa el modelo.
- Use cross-fitting con 5 pliegues. Es el estándar de MLRATE y de la literatura de aprendizaje automático doble, y el costo adicional es irrelevante.
- Valide en un test A/A. Corra el estimador ajustado en una división sin ningún tratamiento y confirme que no produce efecto. Es la verificación que MLRATE usa en los 48 resultados del artículo, y el camino está en test A/A.
- Trate a los usuarios nuevos explícitamente. Quien no tiene período preexperimento no tiene covariable. Imputar la media del grupo es aceptable siempre que la regla sea igual en los dos brazos.
- Reporte el efecto y la reducción de varianza juntos. Sin la segunda, nadie puede comparar el poder del test de hoy con el de hace tres meses.
Errores comunes
- Incluir cualquier feature del período del test en el modelo. Es el sesgo de menos 6,5089 medido arriba. Vale para todo: sesiones durante el test, clics, tiempo en la página.
- Reentrenar el modelo con datos del test “para mejorar la predicción”. Mejora la predicción y destruye el estimador.
- Aplicar el theta calculado por separado en cada brazo. El theta tiene que ser único y estimado sobre el conjunto completo; un theta por brazo reintroduce diferencia entre los grupos.
- Confundir reducción de varianza con aumento del efecto. La estimación central no cambia; en el ejemplo trabajado quedó en +8,00 por ciento en los tres casos.
- Usar CUPAC para justificar un test más corto que una semana. La sensibilidad no resuelve el ciclo semanal; el efecto del día de la semana sigue exigiendo semanas completas.
- Olvidar que la unidad de la métrica importa. Para métricas de ratio, el ajuste tiene que combinarse con el método delta, como en métricas de ratio.
- Tratar la ganancia como garantizada antes de medir. DoorDash relata más de 25 por ciento de acortamiento en sus tests switchback, y ese número es el suyo, en su problema. El de usted depende enteramente de la correlación que alcance su modelo.
Hágalo automático con Donnu
El cuello de botella de CUPAC no es el modelo, es la frontera temporal. Para que la covariable sea legítima, hay que saber con precisión cuándo entró cada usuario al experimento, y tener sus datos de antes de ese instante separados de los datos de después. Un programa que no guarda el momento de la exposición no puede construir esa covariable sin riesgo de contaminación, y el error es silencioso: el número sale, el intervalo sale estrecho, y nadie percibe que 69 por ciento del efecto fue absorbido por el ajuste.
Donnu registra la configuración del experimento en el momento en que se crea, con la métrica primaria declarada, y mantiene el historial por experimento. Eso deja explícita la frontera entre el período preexperimento y el período del test, que es la condición para que cualquier ajuste por covariable sea confiable.
Y queda la recomendación más práctica de esta guía: antes de invertir en un modelo de predicción, calcule la correlación fuera de la muestra entre la métrica de su período preexperimento y el resultado del test. Si ya está cerca de 0,7, el CUPED simple entrega casi todo lo que entregaría CUPAC. Si está cerca de 0,3, ahí el modelo vale el trabajo. La calculadora de tamaño de muestra traduce la diferencia en días.
Referencias
- Deng, A., Xu, Y., Kohavi, R. y Walker, T. Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-Experiment Data. WSDM 2013, Roma. Fuente de la formulación de variables de control usada en esta guía: de la definición de la métrica ajustada, de la demostración de que la varianza se minimiza cuando theta es igual a cov(Y, X) dividido por var(X), y del resultado de que, con ese theta óptimo, la varianza queda igual a var(Y) multiplicada por uno menos rho al cuadrado, con la conclusión de que “cuanto mayor es rho, mejor es la reducción de varianza”; de la exigencia de usar solo información del período preexperimento, porque esta “es garantizadamente independiente del efecto del experimento, lo que es crucial para evitar resultados sesgados”; y de la validación en experimentos reales en Bing, con “una reducción de varianza de cerca de 50 por ciento, equivalente a duplicar nuestro tráfico o reducir a la mitad el tiempo que necesitamos correr un experimento para obtener la misma sensibilidad”. exp-platform.com.
- Li, J. Improving Experimental Power through Control Using Predictions as Covariate (CUPAC). Blog de ingeniería de DoorDash, 8 de junio de 2020. Fuente del nombre y de la definición del método (Control Using Predictions As Covariates), presentado como extensión de CUPED “para aprovechar predicciones de aprendizaje automático construidas con insumos no afectados por la intervención del experimento”; del relato de que el enfoque permitió “acortar nuestros tests switchback en más de 25 por ciento manteniendo el poder experimental”; de la exigencia explícita de que “cada una de esas variables de control tiene que ser independiente de nuestro tratamiento”; de la afirmación de que la varianza reducida escala con la correlación parcial fuera de la muestra entre la predicción y el resultado; y del argumento de que una codificación del resultado por aprendizaje automático captura relaciones complejas entre múltiples factores que las covariables lineales dejan pasar. careersatdoordash.com.
- Guo, Y., Coey, D., Konutgan, M., Li, W., Schoener, C. y Goldman, M. Machine Learning for Variance Reduction in Online Experiments. NeurIPS 2021. Fuente del estimador MLRATE y de tres puntos usados aquí: que usa predicciones de aprendizaje automático del resultado para reducir la varianza del estimador, que “emplea cross-fitting para evitar sesgos de sobreajuste”, y la propiedad de robustez de que, si las predicciones no tienen correlación con los resultados, el estimador se comporta asintóticamente no peor que la diferencia simple de medias, mientras que si las predicciones están altamente correlacionadas las ganancias de eficiencia son grandes; además del resultado empírico en tests A/A sobre 48 métricas de resultado monitoreadas en experimentos de Facebook, con una varianza más de 70 por ciento menor que la diferencia simple de medias y cerca de 19 por ciento menor que el procedimiento univariado que ajusta solo por el valor de la propia métrica en el período preexperimento. arxiv.org.
Lee también: Qué es CUPED · Ajuste por regresión · Estratificación · Cuántos visitantes necesita un test A/B · Outliers y capping · Calculadora de tamaño de muestra · Leia em português · Read in English
Preguntas frecuentes
- ¿Qué es CUPAC en un test A/B?
- CUPAC es la sigla de Control Using Predictions As Covariates, publicada por la ingeniería de DoorDash en 2020. La idea es usar la predicción de un modelo de aprendizaje automático, entrenado solo con datos anteriores al test, como la covariable de ajuste. Es la generalización de CUPED, que usa una única métrica del período preexperimento. En la simulación de esta guía, CUPED recorta 26,85 por ciento de la varianza y CUPAC recorta 51,70 por ciento.
- ¿Cuánta varianza recorta CUPAC en la práctica?
- La reducción es exactamente el cuadrado de la correlación entre la covariable y el resultado. En la simulación de esta guía, la métrica del período preexperimento tiene una correlación de 0,5182 con el resultado, lo que da 26,85 por ciento de reducción, mientras que la predicción del modelo tiene 0,7190, lo que da 51,70 por ciento. DoorDash relata que la técnica le permitió acortar sus tests switchback en más de 25 por ciento manteniendo el poder.
- ¿CUPAC reduce el tamaño de muestra necesario?
- Sí, en la proporción de uno menos el cuadrado de la correlación. Con una base de 5 por ciento y un efecto mínimo de más 10 por ciento relativo, el requisito bruto es 31.234 visitantes por variación. Con la reducción de CUPED baja a 22.847 y con la de CUPAC baja a 15.088, es decir, menos de la mitad. A 20.000 visitantes por semana, esa es la diferencia entre 22 y 11 días de test.
- ¿Cuál es el error fatal al construir la covariable de CUPAC?
- Usar cualquier variable medida DURANTE el test. En una simulación de 2.000 repeticiones hecha para esta guía, con un efecto verdadero de 9,40, la diferencia simple devuelve 9,3864 y el ajuste con covariable del período preexperimento devuelve 9,3961, los dos correctos. El ajuste con una covariable de dentro del test devuelve 2,8911, un sesgo de menos 6,5089. DoorDash es explícito: cada variable de control tiene que ser independiente del tratamiento.
- ¿CUPAC puede empeorar el resultado si el modelo es malo?
- Prácticamente no. Si la predicción no tiene correlación con el resultado, la reducción de varianza tiende a cero y el estimador se comporta como la diferencia simple de medias. En la simulación de esta guía, una covariable débil con correlación de 0,1627 recorta solo 2,65 por ciento de la varianza, lo que cambia el requisito de muestra de 31.234 a 30.408, una ganancia irrelevante pero no negativa. Guo y coautores prueban esa robustez formalmente para el estimador MLRATE.
- ¿Por qué la predicción tiene que hacerse fuera de la muestra?
- Porque un modelo evaluado en los mismos datos con los que fue entrenado tiene un residuo artificialmente pequeño, y eso contamina la estimación del efecto. El camino estándar es el cross-fitting: se divide la muestra en pliegues, se entrena en algunos y se predice en los otros. Tanto MLRATE como el marco de aprendizaje automático doble usan exactamente ese mecanismo para evitar el sesgo de sobreajuste.