註冊流程
現在我們要從註冊開始,建立一個電商廣告流程(DGP,資料產生過程)的模型。
在任意一天,我們會有許多廣告曝光,可以用 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)))