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

การวิเคราะห์พลังสถิติ - ส่วนที่ 2

ก่อนหน้านี้เราได้จำลองการทดลองหนึ่งครั้งและสร้าง p-value ขึ้นมา คราวนี้จะนำกรอบการทำงานนี้มาใช้คำนวณพลังสถิติ (statistical power) พลังสถิติคือความสามารถของการทดลองในการตรวจจับความแตกต่างระหว่างกลุ่มทดลองและกลุ่มควบคุม เมื่อความแตกต่างนั้นมีอยู่จริง โดยทั่วไปแล้วควรตั้งเป้าที่พลังสถิติ 80%

สำหรับเว็บไซต์ของเรา สมมติว่าต้องการทราบว่าแต่ละ variant ต้องมีผู้เข้าชมกี่คน จึงจะตรวจจับการเพิ่มขึ้นของเวลาที่ใช้บนเว็บไซต์ 10% ได้ด้วยพลังสถิติ 80% วิธีการคือเริ่มจากขนาดกลุ่มตัวอย่างเล็ก ๆ (50) จำลองการทดลองหลายครั้ง แล้วตรวจสอบพลังสถิติ ถ้าถึง 80% แล้วก็หยุด ถ้ายังไม่ถึงก็เพิ่มขนาดกลุ่มตัวอย่างแล้วลองใหม่

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

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

ดูคอร์ส

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

  • สำหรับตัวแปรสุ่ม time_spent ให้กำหนด size เป็น tuple ที่มี shape เป็น sample_size \(\times\) sims
  • คำนวณ power เป็นสัดส่วนของ p-value ที่น้อยกว่า 0.05 (มีนัยสำคัญทางสถิติ)
  • ถ้า power มากกว่าหรือเท่ากับ 80% ให้ break ออกจาก while loop มิฉะนั้นให้เพิ่ม sample_size ทีละ 10

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

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

sample_size = 50

# Keep incrementing sample size by 10 till we reach required power
while 1:
    control_time_spent = np.random.normal(loc=control_mean, scale=control_sd, size=(____,____)))
    treatment_time_spent = np.random.normal(loc=control_mean*(1+effect_size), scale=control_sd, size=(____,____))
    t, p = st.ttest_ind(treatment_time_spent, control_time_spent)
    
    # Power is the fraction of times in the simulation when the p-value was less than 0.05
    power = (p < 0.05).sum()/____
    if ____: 
        ____
    else: 
        ____ += ____
print("For 80% power, sample size required = {}".format(sample_size))
แก้ไขและรันโค้ด