Creación de una función de segmentación para un test A/B
En la lección anterior, observaste que tu experimento de personalización es altamente significativo desde el punto de vista estadístico. Sin embargo, al ejecutar experimentos, es importante comprobar cómo las nuevas funcionalidades afectan a demografías específicas. A veces, lo que resulta muy atractivo para un grupo lo es menos para otros.
Como quieres segmentar los datos varias veces, vas a crear una función ab_segmentation() que analice el impacto de tus tests A/B en segmentos de datos y que puedas reutilizar cada vez que realices este tipo de análisis.
Tu función recibirá el nombre de una columna y recorrerá cada valor único de esa columna calculando el lift y la significación estadística.
Este ejercicio forma parte del curso
Análisis de campañas de marketing con pandas
Instrucciones del ejercicio
- Crea un bucle for dentro de nuestra función
ab_segmentation()que recorra cada valor único del nombre de columna introducido por el usuariosegment. - Aísla las filas de marketing donde el canal de marketing sea
'Email'y la columna introducida por el usuariosegmentsea igual asubsegment. - Imprime los resultados de las funciones
lift()ystats.ttest_ind().
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
def ab_segmentation(segment):
# Build a for loop for each subsegment in marketing
for subsegment in ____:
print(subsegment)
# Limit marketing to email and subsegment
email = marketing[(marketing['marketing_channel'] == ____) & (marketing[segment] == ____)]
subscribers = email.groupby(['user_id', 'variant'])['converted'].max()
subscribers = pd.DataFrame(subscribers.unstack(level=1))
control = subscribers['control'].dropna().astype(float)
personalization = subscribers['personalization'].dropna().astype(float)
print('lift:', ____)
print('t-statistic:', ____, '\n\n')