Parcours d’inscription
Nous allons maintenant modéliser le processus de génération des données (DGP) d’un flux publicitaire eCommerce en commençant par les inscriptions.
Chaque jour, nous avons de nombreuses impressions publicitaires, modélisées par des variables aléatoires de Poisson. On vous indique que \(\lambda\) suit une loi normale avec une moyenne de 100 000 visiteurs et un écart type de 2000.
Pendant le parcours d’inscription, le client voit une publicité, choisit de cliquer ou non, puis de s’inscrire ou non. Les clics et les inscriptions sont donc binaires et modélisés à l’aide de variables binomiales. Qu’en est-il de la probabilité \(p\) de succès ? Notre option à faible coût nous donne un taux de clics de 1 % et un taux d’inscription de 20 %. Une option plus coûteuse pourrait augmenter les taux de clic et d’inscription jusqu’à 20 % supplémentaires, mais comme nous ne connaissons pas précisément le niveau d’amélioration, nous le modélisons comme une variable uniforme.
Cet exercice fait partie du cours
Simulation statistique en Python
Instructions
- Initialisez les dictionnaires
ct_rateetsu_ratede sorte que les valeurshighsoient réparties uniformément entre la valeurlowet \(1.2 \times\) la valeurlow. - Modélisez
impressionscomme une variable de Poisson de moyennelam. - Modélisez
clicksetsignupscomme des variables binomiales avecnégal àimpressionsetclicks, etpégal àct_rate[cost]etsu_rate[cost], respectivement. - Affichez ensuite les inscriptions simulées pour l’option de coût
'high'.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)))