Flujo de registro
Ahora vamos a modelar el DGP de un flujo de anuncios de eCommerce empezando por los registros.
En un día cualquiera, obtenemos muchas impresiones de anuncios, que pueden modelarse como variables aleatorias (VA) Poisson. Se te indica que \(\lambda\) se distribuye normalmente con una media de 100k visitantes y desviación estándar de 2000.
Durante el proceso de registro, el cliente ve un anuncio, decide si hace clic o no y, después, si se registra o no. Por tanto, tanto los clics como los registros son binarios y se modelan con VAs binomiales. ¿Y qué pasa con la probabilidad \(p\) de éxito? Nuestra opción actual de bajo coste nos da una tasa de clics del 1% y una tasa de registro del 20%. Una opción de mayor coste podría aumentar las tasas de clics y de registro hasta un 20% más, pero no sabemos con certeza el nivel de mejora, así que lo modelamos como una VA uniforme.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- Inicializa los diccionarios
ct_rateysu_ratede modo que los valoreshighestén distribuidos uniformemente entre el valorlowy \(1.2 \times\) el valorlow. - Modela
impressionscomo una variable aleatoria de Poisson con valor mediolam. - Modela
clicksysignupscomo variables aleatorias binomiales connigual aimpressionsyclicksypigual act_rate[cost]ysu_rate[cost], respectivamente. - Luego imprime los registros simulados para la opción de coste
'high'.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Initialize click-through rate and signup rate dictionaries
ct_rate = {'low':0.01, 'high':np.random.uniform(low=0.01, high=1.2*0.01)}
su_rate = {'low':0.2, 'high':____(low=0.2, high=1.2*____)}
def get_signups(cost, ct_rate, su_rate, sims):
lam = np.random.normal(loc=100000, scale=2000, size=sims)
# Simulate impressions(poisson), clicks(binomial) and signups(binomial)
impressions = ____
clicks = ____
signups = ____
return signups
print("Simulated Signups = {}".format(get_signups('high', ct_rate, su_rate, 1)))