Bắt đầu ngayBắt đầu miễn phí

Luồng đăng ký (Sign up Flow)

Giờ chúng ta sẽ mô phỏng DGP (quy trình tạo dữ liệu) của một luồng quảng cáo eCommerce, bắt đầu từ bước đăng ký.

Mỗi ngày, chúng ta có nhiều lượt hiển thị quảng cáo (ad impressions), có thể mô hình hóa bằng biến ngẫu nhiên Poisson (RV). Bạn biết rằng \(\lambda\) có phân phối chuẩn với trung bình 100k khách truy cập và độ lệch chuẩn 2000.

Trong hành trình đăng ký, khách hàng nhìn thấy quảng cáo, quyết định có nhấp hay không, rồi quyết định có đăng ký hay không. Vì vậy cả lượt nhấp và lượt đăng ký đều là nhị phân, được mô hình hóa bằng các biến ngẫu nhiên nhị thức (binomial RV). Còn xác suất thành công \(p\) thì sao? Phương án chi phí thấp hiện tại cho tỷ lệ nhấp (click-through rate) là 1% và tỷ lệ đăng ký là 20%. Một phương án chi phí cao hơn có thể tăng tỷ lệ nhấp và đăng ký lên tối đa 20%, nhưng chúng ta không chắc mức cải thiện cụ thể, nên ta mô hình hóa nó như một biến ngẫu nhiên phân phối đều (uniform RV).

Bài tập này là một phần của khóa học

Mô phỏng Thống kê bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Khởi tạo các dictionary ct_ratesu_rate sao cho giá trị high được lấy từ phân phối đều trong khoảng giữa giá trị low và \(1.2 \times\) giá trị low.
  • Mô hình hóa impressions như một biến ngẫu nhiên Poisson với giá trị trung bình lam.
  • Mô hình hóa clickssignups như các biến ngẫu nhiên nhị thức với n lần lượt là impressionsclicks, và p lần lượt là ct_rate[cost]su_rate[cost].
  • Sau đó, in ra số lượt đăng ký mô phỏng cho phương án chi phí 'high'.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)))
Chỉnh sửa và Chạy Mã