เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Power Analysis - ส่วนที่ 1

ต่อไปเราจะมาทำ Power Analysis กัน โดยทั่วไปแล้ว การทดลองหรือการทดสอบ A/B ควรมี Power อย่างน้อย 80% วิธีหนึ่งที่ใช้บรรลุเป้าหมายนี้คือการคำนวณขนาดตัวอย่างที่จำเป็นเพื่อให้ได้ Power 80%

สมมติว่าคุณดูแลเว็บไซต์สื่อข่าว และต้องการเพิ่มระยะเวลาที่ผู้ใช้ใช้งานบนเว็บไซต์ ปัจจุบันระยะเวลาที่ผู้ใช้ใช้งานมีการแจกแจงแบบปกติ โดยมีค่าเฉลี่ย 1 นาที และส่วนเบี่ยงเบนมาตรฐาน 0.5 นาที สมมติว่าคุณกำลังเปิดตัวฟีเจอร์ใหม่ที่ทำให้หน้าเว็บโหลดเร็วขึ้น และต้องการทราบว่าต้องใช้ขนาดตัวอย่างเท่าใดจึงจะวัดการเพิ่มขึ้นของระยะเวลาใช้งาน 5% ได้

ในแบบฝึกหัดนี้ เราจะสร้างกรอบการทำงานสำหรับรันการจำลองหนึ่งครั้ง รัน t-test และคำนวณ p-value

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจำลองทางสถิติด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดค่า effect_size เป็น 5%, control_mean เป็น 1 และ control_sd เป็น 0.5
  • ใช้ np.random.normal() เพื่อสุ่มตัวอย่างหนึ่งชุดสำหรับ control_time_spent และ treatment_time_spent โดยใช้ค่าที่กำหนดไว้
  • รัน t-test บน treatment_time_spent และ control_time_spent โดยใช้ st.ttest_ind() โดยที่ st คือ scipy.stats ซึ่ง import ไว้แล้ว
  • กำหนดให้ stat_sig มีค่าเป็น True หาก p_value น้อยกว่า 0.05 และเป็น False ในกรณีอื่น

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด