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

Bootstrap hypothesis test กับจำนวนสเปิร์มของผึ้ง

ในแบบฝึกหัดนี้ จะทดสอบสมมติฐานต่อไปนี้: โดยเฉลี่ยแล้ว ผึ้งตัวผู้ที่ได้รับยาฆ่าแมลงกลุ่ม neonicotinoid มีจำนวนสเปิร์มที่มีชีวิตต่อมิลลิลิตรของน้ำอสุจิเท่ากับผึ้งตัวผู้ที่ไม่ได้รับยา โดยใช้ผลต่างของค่าเฉลี่ยเป็น test statistic

สำหรับข้อมูลอ้างอิง รูปแบบการเรียกฟังก์ชัน draw_bs_reps() ที่เขียนไว้ในบทที่ 2 คือ draw_bs_reps(data, func, size=1)

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

Statistical Thinking in Python (ตอนที่ 2)

ดูคอร์ส

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

  • คำนวณค่าเฉลี่ยจำนวนสเปิร์มที่มีชีวิตของ control ลบด้วยค่าเฉลี่ยของ treated
  • คำนวณค่าเฉลี่ยของจำนวนสเปิร์มที่มีชีวิตทั้งหมด โดยนำ control และ treated มาต่อกันก่อน แล้วจึงคำนวณค่าเฉลี่ยของอาร์เรย์ที่ได้
  • สร้างชุดข้อมูลที่ถูก shift สำหรับทั้ง control และ treated เพื่อให้ทั้งสองมีค่าเฉลี่ยเท่ากัน ขั้นตอนนี้ได้ทำไว้ให้แล้ว
  • สร้าง bootstrap replicate ของค่าเฉลี่ยจำนวน 10,000 ครั้งสำหรับอาร์เรย์ที่ถูก shift ทั้งสอง โดยใช้ฟังก์ชัน draw_bs_reps()
  • คำนวณ bootstrap replicate ของความแตกต่างของค่าเฉลี่ย
  • โค้ดสำหรับคำนวณและแสดงผล p-value ได้เขียนไว้ให้แล้ว กด ส่งคำตอบ เพื่อดูผลลัพธ์!

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

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

# Compute the difference in mean sperm count: diff_means
diff_means = ____

# Compute mean of pooled data: mean_count
mean_count = ____

# Generate shifted data sets
control_shifted = control - np.mean(control) + mean_count
treated_shifted = treated - np.mean(treated) + mean_count

# Generate bootstrap replicates
bs_reps_control = ____(____,
                       np.mean, size=10000)
bs_reps_treated = ____(____,
                       np.mean, size=10000)

# Get replicates of difference of means: bs_replicates
bs_replicates = ____

# Compute and print p-value: p
p = np.sum(bs_replicates >= np.mean(control) - np.mean(treated)) \
            / len(bs_replicates)
print('p-value =', p)
แก้ไขและรันโค้ด