IniziaInizia gratis

Flusso di registrazione

Ora modelleremo il DGP di un flusso pubblicitario eCommerce a partire dalle registrazioni.

In un giorno qualsiasi, otteniamo molte impression pubblicitarie, che possono essere modellate come variabili casuali di Poisson (RV). Ti viene detto che \(\lambda\) è distribuito normalmente con una media di 100k visitatori e deviazione standard 2000.

Durante il percorso di registrazione, il cliente vede un annuncio, decide se cliccarlo oppure no e poi se registrarsi oppure no. Quindi sia i clic sia le registrazioni sono binari, modellati con RV binomiali. E la probabilità \(p\) di successo? La nostra opzione a basso costo ci dà un click-through rate dell’1% e un tasso di registrazione del 20%. Un’opzione a costo più alto potrebbe aumentare i tassi di click-through e di registrazione fino al 20%, ma non conosciamo il livello esatto di miglioramento, quindi lo modelliamo come una RV uniforme.

Questo esercizio fa parte del corso

Simulazione statistica in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Inizializza i dizionari ct_rate e su_rate in modo che i valori high siano distribuiti uniformemente tra il valore low e \(1.2 \times\) il valore low.
  • Modella impressions come una variabile casuale di Poisson con valore medio lam.
  • Modella clicks e signups come variabili casuali binomiali con n rispettivamente pari a impressions e clicks, e p pari a ct_rate[cost] e su_rate[cost].
  • Infine, stampa le registrazioni simulate per l’opzione di costo 'high'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)))
Modifica ed esegui il codice