Ś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
Instrukcje do ćwiczenia
- Zainicjalizuj słowniki
ct_rateisu_ratetak, aby wartościhighmiały rozkład jednostajny między wartościąlowa \(1{,}2 \times\) wartościąlow. - Zamodeluj
impressionsjako zmienną losową Poissona ze średniąlam. - Zamodeluj
clicksisignupsjako dwumianowe zmienne losowe, przyjmującnodpowiednio jakoimpressionsiclicks, apjakoct_rate[cost]isu_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)))