ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Inicializa los diccionarios ct_rate y su_rate de modo que los valores high estén distribuidos uniformemente entre el valor low y \(1.2 \times\) el valor low.
  • Modela impressions como una variable aleatoria de Poisson con valor medio lam.
  • Modela clicks y signups como variables aleatorias binomiales con n igual a impressions y clicks y p igual a ct_rate[cost] y su_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)))
Editar y ejecutar código