LoslegenKostenlos loslegen

Sign-up-Flow

Wir modellieren jetzt den DGP eines eCommerce-Anzeigenflows, beginnend mit den Sign-ups.

An einem beliebigen Tag erhalten wir viele Ad Impressions, die sich als Poisson-Zufallsvariablen (RV) modellieren lassen. Du bekommst die Information, dass \(\lambda\) normalverteilt ist mit einem Mittelwert von 100.000 Besuchern und einer Standardabweichung von 2.000.

Während der Anmeldung sieht der Kunde eine Anzeige, entscheidet, ob er klickt oder nicht, und dann, ob er sich anmeldet oder nicht. Sowohl Klicks als auch Sign-ups sind also binär und werden mit Binomial-RVs modelliert. Wie steht es um die Erfolgswahrscheinlichkeit \(p\)? Unsere aktuelle Low-Cost-Option liefert eine Click-through-Rate von 1 % und eine Sign-up-Rate von 20 %. Eine teurere Option könnte die Click-through- und Sign-up-Rate um bis zu 20 % erhöhen, aber wir sind uns über das genaue Ausmaß der Verbesserung unsicher, daher modellieren wir sie als gleichverteilte RV.

Diese Übung ist Teil des Kurses

Statistische Simulation in Python

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere die Wörterbücher ct_rate und su_rate so, dass die high-Werte gleichmäßig zwischen dem low-Wert und \(1{,}2 \times\) dem low-Wert verteilt sind.
  • Modelle impressions als Poisson-Zufallsvariable mit dem Mittelwert lam.
  • Modelle clicks und signups als Binomial-Zufallsvariablen mit n als impressions bzw. clicks und p als ct_rate[cost] bzw. su_rate[cost].
  • Anschließend geben wir die simulierten Sign-ups für die 'high'-Kostenoption aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)))
Code bearbeiten und ausführen