Contenido del Curso
El Arte del A/B Testing
El Arte del A/B Testing
Prueba A/A
Preparación del experimento
Antes de realizar un experimento controlado, debemos estar convencidos de que los datos del grupo de prueba se han recogido correctamente. Debemos tener en cuenta varios factores:
- Efecto del día de la semana. Los grupos pueden diferir los fines de semana y los días laborables. Las personas se comportan de forma diferente en los distintos días de la semana. Por lo tanto, los datos se recogerán dentro de una semana;
- Estacionalidad. Durante las vacaciones, los usuarios compran más activamente, lo que puede dar ideas falsas sobre las ventas reales. Por lo tanto, los datos se recogen en la temporada sin vacaciones;
- Creciente número de usuarios a lo largo del tiempo. Cada vez más personas participan en el experimento con el paso del tiempo. Así, realizamos un experimento online para tres grupos de usuarios. Cada grupo se sometió a la prueba durante una semana completa. En cada experimento participó el mismo número de usuarios. Nuestro experimento tuvo lugar fuera de temporada (no había días festivos que hubieran provocado un aumento de las ventas).
La métrica del éxito del experimento es la tasa de conversión. Ha llegado el momento de comprobar la adecuación de nuestros resultados.
Familiaricémonos con los datos. Ambos conjuntos de datos tienen cien registros y tres columnas. La primera columna 'Hombre'
es binaria. Si el valor es igual a 1, el usuario es hombre. Si el valor es igual a 0, el usuario es una mujer.
La segunda columna 'Page View
caracteriza el número de páginas vistas. La tercera columna 'Compra'
corresponde al número de compras.
Veamos qué aspecto tienen estas tablas:
# Import libraries import pandas as pd from scipy.stats import mannwhitneyu # Read .csv files control_group_1 = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/updated_first.csv') control_group_2 = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/updated_second.csv') # Show head of the first file print(control_group_1)
El segundo archivo es similar al primero. Pero, ¿podemos decir que no hay diferencias estadísticamente significativas entre ellos?
Debemos asegurarnos de que ningún factor ha influido en nuestro experimento. En otras palabras, los valores métricos medios del grupo de control 1 y del grupo de control 2 deben ser los mismos.
Formulemos hipótesis:
H₀: No existe una diferencia estadísticamente significativa entre las medias de las dos muestras..
Hₐ: Existe una diferencia estadísticamente significativa entre las medias de las dos muestras.
Nuestra primera prueba:
# Import libraries import pandas as pd from scipy.stats import mannwhitneyu # Read .csv files control_group_1 = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/updated_first.csv') control_group_2 = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/updated_second.csv') # Define metric control_group_1['Conversion'] = (control_group_1['Purchase'] / control_group_1['Page view']).round(2) control_group_2['Conversion'] = (control_group_2['Purchase'] / control_group_2['Page view']).round(2) # Do U-Test stat, p = mannwhitneyu(control_group_1['Conversion'], control_group_2['Conversion']) # Identify the test result print('stat=%.3f, p=%.3f' % (stat, p)) if p > 0.05: print('There is no statistically significant difference between the medians of the two samples') else: print('There is a statistically significant difference between the medians of the two samples')
Dado que p > 0,05, no podemos rechazar la hipótesis nula de que las dos medias son iguales.
Parece fácil, ¿verdad?
En este código, creamos dos grupos de datos, grupo_de_control_1
y grupo_de_control_2
, realizamos una prueba u utilizando la función mannwhitney
, y mostramos los resultados de la prueba en la pantalla.
¿Por qué se eligió esta prueba en particular? Hablaremos de ello en los próximos capítulos.
¡Gracias por tus comentarios!