Ejercicio 55: Diseño y Evaluación de un A/B Testing en Python

Introducción: En este ejercicio, se explorará el diseño, análisis y validación de un experimento A/B. El objetivo es evaluar si un nuevo diseño de página de pago en una empresa de e-commerce mejora la tasa de conversión de los usuarios. Se abordarán la formulación de hipótesis, la simulación de datos, la aplicación de pruebas estadísticas y la interpretación de resultados.

Objetivos

  • Simular datos de conversión para un experimento A/B.
  • Realizar un análisis exploratorio y visualización de datos.
  • Aplicar una prueba estadística para evaluar la significancia de los resultados.
  • Interpretar los resultados y tomar decisiones basadas en datos.

Entrada de Datos

  • Simulación de 10,000 usuarios con conversiones siguiendo una distribución binomial.
  • Grupo A (Control): Conversión con tasa p_A = 0.10.
  • Grupo B (Tratamiento): Conversión con tasa p_B = 0.12.

Código Base

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import norm

# Simulación de datos
np.random.seed(42)

# TODO: Implementar
# Simular conversiones para el Grupo A
conversiones_a = np.random.binomial(1, 0.10, 5000)

# Simular conversiones para el Grupo B
conversiones_b = np.random.binomial(1, 0.12, 5000)

# Crear DataFrame
datos = pd.DataFrame({
    'usuario_id': np.arange(1, 10001),
    'grupo': ['A']*5000 + ['B']*5000,
    'conversion': np.concatenate([conversiones_a, conversiones_b])
})

# Visualización de datos
# TODO: Implementar

Pruebas

# Cálculo de tasas de conversión
tasa_conversion_a = datos[datos['grupo'] == 'A']['conversion'].mean()
tasa_conversion_b = datos[datos['grupo'] == 'B']['conversion'].mean()

print(f"Tasa de conversión Grupo A: {tasa_conversion_a:.2%}")
print(f"Tasa de conversión Grupo B: {tasa_conversion_b:.2%}")

# Visualización
plt.figure(figsize=(10, 5))
sns.histplot(data=datos, x='conversion', hue='grupo', multiple='dodge', shrink=0.8)
plt.title('Histograma de Conversiones por Grupo')
plt.show()

# Prueba estadística
# TODO: Implementar

Desafío Final

El desafío consiste en completar el análisis estadístico aplicando una prueba Z para proporciones, interpretando los resultados y tomando una decisión informada sobre si implementar el nuevo diseño de la página de pago. Se espera un reporte bien estructurado que incluya visualizaciones y una discusión sobre la importancia de las pruebas A/B en la toma de decisiones basada en datos.