開始使用免費開始

註冊流程

現在我們要從註冊開始,建立一個電商廣告流程(DGP,資料產生過程)的模型。

在任意一天,我們會有許多廣告曝光,可以用 Poisson 隨機變數(RV)來建模。已知 \(\lambda\) 服從常態分配,平均為 100k 名訪客,標準差為 2000。

在註冊旅程中,顧客會先看到廣告,決定要不要點擊,接著決定要不要註冊。因此點擊與註冊都是二元結果,可用二項隨機變數來建模。成功機率 \(p\) 呢?目前的低成本選項有 1% 的點擊率與 20% 的註冊率。較高成本的選項可將點擊率與註冊率各提高最多 20%,但實際提升幅度不確定,所以我們把它建模為均勻分配的隨機變數。

本練習屬於課程

Python 的統計模擬

檢視課程

練習說明

  • 初始化 ct_ratesu_rate 字典,使 high 的數值在 low 與 \(1.2 \times\) low 之間均勻分配。
  • impressions 建模為平均為 lam 的 Poisson 隨機變數。
  • clickssignups 建模為二項隨機變數,其中 n 分別為 impressionsclicksp 分別為 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)))
編輯並執行程式碼