Estadística

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.

Ilustración plana de una línea en zigzag alta, una curva suave restada de ella y, a la derecha, una línea casi recta como resultado

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.

Distribución de la métrica antes y después del ajuste por covariableDos curvas en forma de campana sobre el mismo eje. La curva de arriba, bruta, es ancha y baja, con desvío de treinta y uno coma cincuenta y siete. La curva de abajo, después del ajuste por predicción de modelo, es estrecha y alta, con desvío de veintiuno coma noventa y cuatro. La media de las dos es la misma, ochenta y seis coma cero nueve.la media no cambia, el ancho cambiamedia 86,09 en los dos casosbruto: desvío 31,5685con CUPAC: desvío 21,9400ingreso por usuario en el período del testla varianza cae 51,70%el test gana sensibilidad sin 1 visitante más
Reducir la varianza no cambia el efecto estimado. Cambia la precisión con la que se estima, y eso es lo que decide si el test concluye algo.

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.

Reducción de varianza como función de la correlación de la covariableCurva cuadrática creciente. Con correlación de cero coma dieciséis la reducción es dos coma sesenta y cinco por ciento, con cero coma cincuenta y dos es veintiséis coma ochenta y cinco por ciento, con cero coma setenta y dos es cincuenta y uno coma setenta por ciento y con cero coma noventa sería ochenta y uno por ciento. La curva muestra que la ganancia se acelera con la correlación.reducción de varianza = correlación al cuadrado2,65%CUPED: 26,85%CUPAC: 51,70%0,00,30,60,9correlación entre la covariable y el resultado80%50%0%de 0,5 a 0,7 la ganancia casi se duplica: es cuadrática
El retorno es cuadrático, y por eso vale la pena invertir en el modelo. Cada décima de correlación vale más que la anterior.

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:

Calculadora de tamaño de muestra
-Visitantes por variación
-Total (2 variaciones)
-Duración estimada

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:

Calculadora de significancia estadística
Control (A)
Variación (B)
Control (A) · Tasa-
Variación (B) · Tasa-
Mejora relativa-
valor-p-
IC 95% de la diferencia-

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:

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
Sesgo de las tres formas de estimar el efecto con covariableTres barras horizontales que parten de un eje vertical que marca el efecto verdadero de nueve coma cuarenta. La diferencia simple y el ajuste por el período preexperimento quedan prácticamente sobre el eje. El ajuste con covariable medida durante el test queda muy a la izquierda, en dos coma ochenta y nueve, con un sesgo de menos seis coma cincuenta y uno.efecto estimado frente al efecto verdadero de 9,40verdad: 9,40diferencia simple9,3864covariable preexperimento9,3961covariable dentro del test2,891105el mismo procedimiento, con la covariable equivocada, pierde 69% del efecto real.y el intervalo alrededor de esa estimación errónea es estrecho, lo que vuelve invisible el error.
Covariable del período preexperimento: ajuste correcto y 34,74 por ciento menos ruido. Covariable medida durante el test: 69 por ciento del efecto desaparece del informe.

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.

Cross-fitting en cinco pliegues para generar la covariable de predicciónCinco filas, una por ronda. En cada fila hay cinco bloques. En cada ronda un bloque distinto está marcado como bloque de predicción y los otros cuatro como bloques de entrenamiento. Al final de las cinco rondas todos los bloques recibieron la predicción de un modelo que no los vio en el entrenamiento.cada usuario recibe la predicción de un modelo que no lo vioronda 1ronda 2ronda 3ronda 4ronda 5pliegue con predicciónpliegues usados en el entrenamientosin esto, el residuo queda pequeño por memorización y la estimación del efecto sale sesgada.
Cinco rondas, cinco modelos, una predicción limpia por usuario. El costo es entrenar el modelo cinco veces, y es barato porque el entrenamiento usa solo datos del período preexperimento.

Cómo armar CUPAC en la práctica

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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

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

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.