Phân tích lực kiểm định - Phần I
Giờ chúng ta chuyển sang phân tích lực kiểm định (power analysis). Thông thường, bạn muốn đảm bảo bất kỳ thí nghiệm hay A/B test nào bạn chạy đều có ít nhất 80% power. Một cách để đảm bảo điều này là tính kích thước mẫu cần thiết để đạt 80% power.
Giả sử bạn phụ trách một trang tin và muốn tăng thời gian người dùng ở lại trên website. Hiện tại, thời gian người dùng ở lại được phân phối chuẩn với trung bình 1 phút và độ lệch chuẩn 0.5 phút. Giả sử bạn sắp ra mắt một tính năng giúp tải trang nhanh hơn và muốn biết kích thước mẫu cần có để đo được mức tăng 5% về thời gian ở lại trên website.
Trong bài tập này, chúng ta sẽ thiết lập khung để chạy một mô phỏng, chạy t-test, và tính p-value.
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
Hướng dẫn bài tập
- Khởi tạo
effect_sizelà 5%,control_meanlà 1 vàcontrol_sdlà 0.5. - Dùng
np.random.normal()để mô phỏng một lần rút mẫu chocontrol_time_spentvàtreatment_time_spentvới các giá trị bạn vừa khởi tạo. - Chạy t-test trên
treatment_time_spentvàcontrol_time_spentbằngst.ttest_ind()vớistlàscipy.stats(đã được import sẵn). - Mức ý nghĩa thống kê
stat_signên làTruenếup_valuenhỏ hơn 0.05, ngược lại làFalse.
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 effect_size, control_mean, control_sd
effect_size, sample_size, control_mean, control_sd = ____, 50, ____, ____
# Simulate control_time_spent and treatment_time_spent, assuming equal variance
control_time_spent = np.random.normal(loc=control_mean, scale=____, size=sample_size)
treatment_time_spent = np.random.normal(loc=____*(1+effect_size), scale=control_sd, size=____)
# Run the t-test and get the p_value
t_stat, p_value = st.ttest_ind(____, ____)
stat_sig = p_value < ____
print("P-value: {}, Statistically Significant? {}".format(p_value, stat_sig))