注册流程
现在我们将从注册开始,建模一个电商广告流程的数据生成过程(DGP)。
在任意一天,我们会获得大量广告曝光(impressions),可以将其建模为 Poisson 随机变量(RV)。已知 \(\lambda\) 服从正态分布,均值为 100k 名访客,标准差为 2000。
在注册路径中,用户会看到广告,然后决定是否点击,接着再决定是否注册。因此点击和注册都是二元结果,可用二项分布的随机变量建模。那么成功概率 \(p\) 呢?我们当前的低成本方案带来 1% 的点击率和 20% 的注册率。高成本方案可能把点击率和注册率最多提升 20%,但提升幅度不确定,因此将其建模为均匀分布的随机变量。
本练习是课程的一部分
Python 中的统计模拟
练习说明
- 初始化
ct_rate和su_rate两个字典,使得high的取值在low与 \(1.2 \times\)low之间服从均匀分布。 - 将
impressions建模为均值为lam的 Poisson 随机变量。 - 将
clicks和signups建模为二项分布随机变量,其中n分别为impressions和clicks,p分别为ct_rate[cost]和su_rate[cost]。 - 然后打印
'high'成本方案下的模拟注册量。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)))