การทดสอบสมมติฐานแบบ one-sample bootstrap
มีการศึกษากบตัวอ่อนอีกตัวหนึ่งชื่อกบ C และต้องการตรวจสอบว่ากบ B กับกบ C มีแรงกระแทกที่ใกล้เคียงกันหรือไม่ แต่น่าเสียดายที่ไม่มีข้อมูลแรงกระแทกของกบ C เพียงแต่ทราบว่าค่าเฉลี่ยอยู่ที่ 0.55 N เนื่องจากไม่มีข้อมูลต้นฉบับ จึงไม่สามารถทำ permutation test ได้ และไม่สามารถประเมินสมมติฐานที่ว่าแรงกระแทกของกบ B และกบ C มาจากการแจกแจงเดียวกัน ดังนั้นจึงทดสอบสมมติฐานที่มีข้อจำกัดน้อยกว่าแทน ได้แก่ ค่าเฉลี่ยแรงกระแทกของกบ B เท่ากับของกบ C
ในการตั้งค่าการทดสอบสมมติฐานแบบ bootstrap ให้ใช้ค่าเฉลี่ยเป็น test statistic โดยเป้าหมายคือคำนวณความน่าจะเป็นที่จะได้ค่าเฉลี่ยแรงกระแทกน้อยกว่าหรือเท่ากับที่สังเกตได้จากกบ B ภายใต้สมมติฐานที่ว่าค่าเฉลี่ยที่แท้จริงของแรงกระแทกของกบ B เท่ากับของกบ C โดยแปลงข้อมูลทั้งหมดของกบ B ให้มีค่าเฉลี่ยเป็น 0.55 N ซึ่งทำได้โดยบวกค่าเฉลี่ยแรงกระแทกของกบ C และลบค่าเฉลี่ยแรงกระแทกของกบ B ออกจากการวัดแต่ละครั้งของกบ B วิธีนี้จะไม่เปลี่ยนแปลงคุณสมบัติอื่นของการแจกแจงของกบ B เช่น ความแปรปรวน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 2)
คำแนะนำการฝึกหัด
- แปลงค่าแรงกระแทกของกบ B ให้มีค่าเฉลี่ยเป็น 0.55 N
- ใช้ฟังก์ชัน
draw_bs_reps()เพื่อสุ่ม bootstrap replicates ของค่าเฉลี่ยจากข้อมูลที่แปลงแล้วจำนวน 10,000 ครั้ง - คำนวณ p-value โดยหาสัดส่วนของ bootstrap replicates ที่น้อยกว่าค่าเฉลี่ยแรงกระแทกที่สังเกตได้ของกบ B โดยตัวแปรที่สนใจคือ
force_b - แสดงผล p-value ที่ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Make an array of translated impact forces: translated_force_b
translated_force_b = ____
# Take bootstrap replicates of Frog B's translated impact forces: bs_replicates
bs_replicates = draw_bs_reps(____, ____, 10000)
# Compute fraction of replicates that are less than the observed Frog B force: p
p = np.sum(____ <= np.mean(____)) / 10000
# Print the p-value
print('p = ', ____)