Zacznij terazZacznij za darmo

Ścieżka rejestracji

Teraz zamodelujemy proces generowania danych (DGP) dla ścieżki reklamy w e-commerce, zaczynając od rejestracji.

Każdego dnia notujemy wiele wyświetleń reklam, które można modelować jako zmienne losowe Poissona. Przyjmujemy, że \(\lambda\) ma rozkład normalny ze średnią 100 tys. odwiedzających i odchyleniem standardowym 2000.

W trakcie ścieżki rejestracji użytkownik widzi reklamę, decyduje, czy w nią kliknie, a następnie – czy się zarejestruje. Kliknięcia i rejestracje są zatem zmiennymi binarnymi, modelowanymi za pomocą dwumianowych zmiennych losowych. Jak wyznaczyć prawdopodobieństwo sukcesu \(p\)? Tańsza opcja daje współczynnik klikalności na poziomie 1% i współczynnik rejestracji 20%. Droższa opcja może zwiększyć oba te wskaźniki nawet o 20%, jednak stopień poprawy jest niepewny – modelujemy go więc jako zmienną losową o rozkładzie jednostajnym.

To ćwiczenie jest częścią kursu

Symulacje statystyczne w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjalizuj słowniki ct_rate i su_rate tak, aby wartości high miały rozkład jednostajny między wartością low a \(1{,}2 \times\) wartością low.
  • Zamodeluj impressions jako zmienną losową Poissona ze średnią lam.
  • Zamodeluj clicks i signups jako dwumianowe zmienne losowe, przyjmując n odpowiednio jako impressions i clicks, a p jako ct_rate[cost] i su_rate[cost].
  • Na końcu wyświetl symulowaną liczbę rejestracji dla opcji o koszcie 'high'.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)))
Edytuj i uruchom kod