Kom igångKom igång gratis

Registreringsflöde

Nu ska vi modellera datgenereringsprocessen (DGP) för ett eCommerce-annonsflöde, med start i registreringssteget.

Varje dag får vi många annonsvisningar, vilket kan modelleras som Poisson-slumpvariabler. Du får veta att \(\lambda\) är normalfördelat med ett medelvärde på 100 000 besökare och en standardavvikelse på 2 000.

Under registreringsresan ser kunden en annons, bestämmer sig för om hen ska klicka eller inte, och sedan om hen ska registrera sig eller inte. Därför är både klick och registreringar binära och modelleras med binomiala slumpvariabler. Hur är det med sannolikheten \(p\) för framgång? Vårt nuvarande lågkostnadsalternativ ger en klickfrekvens på 1 % och en registreringsfrekvens på 20 %. Ett dyrare alternativ kan öka klick- och registreringsfrekvensen med upp till 20 %, men vi är osäkra på förbättringsnivån – därför modellerar vi den som en likformig slumpvariabel.

Den här övningen är en del av kursen

Statistisk simulering i Python

Visa kurs

Övningsinstruktioner

  • Initiera ordlistorna ct_rate och su_rate så att high-värdena är likformigt fördelade mellan low-värdet och \(1{,}2 \times\) low-värdet.
  • Modellera impressions som en Poisson-slumpvariabel med medelvärdet lam.
  • Modellera clicks och signups som binomiala slumpvariabler där n är impressions respektive clicks, och p är ct_rate[cost] respektive su_rate[cost].
  • Skriv sedan ut de simulerade registreringarna för alternativet 'high'.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)))
Redigera och kör kod