Learn to code-Code to learn

A/B test

El A/B testing es una herramienta estadística que intenta evaluar si es posible generar más beneficio con un tráfico relativente similar modificando, por ejemplo, el color de la página web.
En profano, consiste en comparar dos versiones de una misma página web o dos campañas de marketing online para comprobar cuál de las dos versiones es más eficiente. La idea es mostrar variaciones de forma aleatoria y evaluar el ouptut con métodos estadísticos.



Más concretamente, una prueba AB es un ejemplo de prueba de hipótesis estadística, un proceso mediante el cual se formula una hipótesis sobre la relación entre dos conjuntos de datos y esos conjuntos de datos se comparan entre sí para determinar si existe una relación estadísticamente significativa o no.

Para entender en qué consisten las pruebas A/B, consideremos dos diseños alternativos A y B. A los visitantes de un sitio web se les sirve aleatoriamente uno de los dos. A continuación, se recogen datos sobre su actividad mediante la analítica web. A partir de estos datos, se pueden aplicar pruebas estadísticas para determinar si uno de los dos diseños tiene mejor eficacia.



Podríamos mirar distintos outputs. Por ejemplo, con métricas discretas que toman valores 0 y 1 se podrían analizar:
- Click through-rate: si se muestra un anuncio a un usuario, ¿hace clic en él? Si: 1, No: 0
- Conversion rate: si se muestra un anuncio a un usuario, ¿se convierte en cliente? Si: 1, No: 0
- Bounce rate: si un usuario visita un sitio web, ¿la siguiente página visitada está en el mismo sitio web? Si: 1, No: 0

Dado que la asignación de las distintas opciones es aleatoria, en media los individuos deberían ser iguales, entre todos aquellos que se autoseleccionan para visitar la página web.

En este tutorial vamos a utilizar datos de un experimeto AB para evaluar cuál de los dos diseños, A o B, es más eficiente en términos de conversion rates.

El experimento se desarrollo por 180 días en un e.commerce de ropa.
Estamos llevando a cabo una campaña online A por un período de tiempo. Pero queremos probar una nueva campaña B, para ver si se desempeña mejor que la anterior.

¿Cómo podemos saber cuál campaña es mejor?

Experimento: vamos a presentar la campaña A y la campaña B de forma aleatoria a los potenciales clientes -usuarios de la web-.

El output que vamos a utilizar será el conversion rate (e.g., click en carro de compras) per click en el adword.

Se va a correr el experimento por seis meses, durante el cuál obtendremos los daily clicks y conversions rate de cada campaña.
Utilizaremos estos datos para determinar qué campaña es mejor.

Primer análisis


¿Cuál campaña es mejor?



Naturalmente, uno podría pensar que las diferencias en puntos porcentuales de la campaña A y la campaña B son pequeñas y, por ende, no merece la pena cambiar de política.

Sin embargo, podríamos profundizar un poco más y utilizar la estadística como herramienta para ayudarnos a tomar una decisión que tome en cuento la chance aleatoria de observar el resultado que hemos observado.

En otras palabra, podríamos preguntarnos si esta pequeña diferencia absoluta es o no es estadísticamente significativamente.

Existen distintos tipos de contrastes que podríamos implementar, e.g., Contraste de Fisher.

Repazar conceptos:



Variables aleatoria y distribución de probabilidades

Si la relación entre los click through rate fuera $CR_A = 0.05 + CR_B$, entonces no necesitariamos un AB Test: la relación es deterministica y la campaña A es mejor que la campaña B.

Lamentablemente, el valor que va a tomar la tasa de conversión en cada campaña no lo sabemos ex-ante. Sabemos que tomará valores entre $0$ y $1$, pero nada más, i.e., su resultado es incierto.

Lo que podemos hacer entonces es racionalizar los resultados a partir de un modelo: por ejemplo, podríamos suponer que un click es como tirar una moneda al aire: si sale cara, el click se convierte en una compra y si sale cruz, no se convierte.
Denotemos por $p$ la probabilidad que salga cara, entonces podríamos escribir:
\begin{equation} Click_i = \left\{ \begin{matrix} 1 & \text{Conversión} & p_i \\ && \\ 0& \text{No Conversión} & 1-p_i \\ \end{matrix} \right.\,\, i = A,B. \end{equation}
En el fondo, lo que nos interesa conocer, es esa $p_i$ para cada una de las campañas. Es decir, con qué probabilidad $p$ un consumidor va a clickear en el anuncio.

Más en concreto, lo que nos interesaría saber es si la probabilidad de click en la campaña A es la misma que en la campaña B, i.e., $p_A = p_B$

Claro, si miramos las CR calculadas más arriba se observa que ambas son muy similares: $CR_A = 0.0989 $ y $CR_B = 0.1023$ y alguien, observandolas, podría decir que son practicamete iguales y, por lo tanto, las dos campañas darían los mismos resultados.
Sin embargo, este análisis es erróneo pues no toma en cuenta la variabilidad muestral o la chance de que aparezcan unos valores y no otros como consecuencia de la forma en que diseñe el experimento o la muestra.
Formalmente, deberíamos realizar un contraste estadístico y por eso lo de AB test $$H_o \,\,\,\, p_a = p_b$$ Estadístico de contraste: sería aquella función que utilizo para contrastar si existe una diferencia o no entre estas dos probabilidades.

Según estos resultados, la campaña B mejora la conversion rate en 0.3 porciento, en media. Si bien este porcentaje podría ser pequeño, todo dependerá de los ingresos asociados a ese porcentaje. A partir de aquí podrían hacerse otros estudios, e.g., el fin de semana impacta de una manera distinta.