การวิเคราะห์พลังสถิติ - ส่วนที่ 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))