ComeçarComece de graça

Fluxo de cadastro

Agora vamos modelar o DGP de um fluxo de anúncios de eCommerce começando pelos cadastros.

Em qualquer dia, recebemos muitas impressões de anúncios, que podem ser modeladas como variáveis aleatórias de Poisson. Foi informado que \(\lambda\) é normalmente distribuído com média de 100 mil visitantes e desvio padrão de 2000.

Durante a jornada de cadastro, o cliente vê um anúncio, decide se clica ou não e, em seguida, se se cadastra ou não. Assim, tanto cliques quanto cadastros são binários, modelados usando variáveis aleatórias binomiais. E a probabilidade \(p\) de sucesso? Nossa opção de baixo custo atual oferece uma taxa de cliques (click-through rate) de 1% e uma taxa de cadastro de 20%. Uma opção de custo mais alto pode aumentar as taxas de clique e de cadastro em até 20%, mas não sabemos o nível exato de melhoria, então modelamos isso como uma variável aleatória uniforme.

Este exercício faz parte do curso

Simulação Estatística em Python

Ver curso

Instruções do exercício

  • Inicialize os dicionários ct_rate e su_rate de modo que os valores high sejam distribuídos uniformemente entre o valor low e \(1{.}2 \times\) o valor low.
  • Modele impressions como uma variável aleatória de Poisson com valor médio lam.
  • Modele clicks e signups como variáveis aleatórias binomiais com n como impressions e clicks e p como ct_rate[cost] e su_rate[cost], respectivamente.
  • Em seguida, imprimimos os cadastros simulados para a opção de custo 'high'.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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)))
Editar e executar o código