ขั้นตอนการสมัครสมาชิก
ต่อไปเราจะสร้างแบบจำลอง DGP ของกระบวนการโฆษณา eCommerce โดยเริ่มจากการสมัครสมาชิก
ในแต่ละวัน จะมีการแสดงโฆษณาจำนวนมาก ซึ่งสามารถจำลองได้เป็นตัวแปรสุ่ม (RV) แบบ Poisson โดย \(\lambda\) มีการกระจายแบบปกติ ค่าเฉลี่ย 100,000 ผู้เข้าชม และส่วนเบี่ยงเบนมาตรฐาน 2,000
ในขั้นตอนการสมัคร ลูกค้าจะเห็นโฆษณา จากนั้นตัดสินใจว่าจะคลิกหรือไม่ และสมัครหรือไม่ ดังนั้นทั้งการคลิกและการสมัครจึงเป็นค่าแบบไบนารี ซึ่งจำลองด้วยตัวแปรสุ่มแบบทวินาม สำหรับค่าความน่าจะเป็น \(p\) ของความสำเร็จนั้น ตัวเลือกต้นทุนต่ำในปัจจุบันให้อัตราการคลิก (click-through rate) 1% และอัตราการสมัคร 20% ส่วนตัวเลือกต้นทุนสูงอาจเพิ่มอัตราการคลิกและการสมัครได้สูงสุด 20% แต่เนื่องจากยังไม่แน่ใจถึงระดับการปรับปรุง จึงจำลองเป็นตัวแปรสุ่มแบบสม่ำเสมอ (uniform RV)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองทางสถิติด้วย Python
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้นให้ dictionary
ct_rateและsu_rateโดยให้ค่าhighมีการกระจายแบบสม่ำเสมอระหว่างค่าlowถึง \(1.2 \times\) ค่าlow - จำลอง
impressionsเป็นตัวแปรสุ่มแบบ Poisson โดยใช้ค่าเฉลี่ยlam - จำลอง
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)))