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

การทดสอบสมมติฐาน bootstrap สองกลุ่มตัวอย่างสำหรับผลต่างของค่าเฉลี่ย

ตอนนี้เราต้องการทดสอบสมมติฐานว่ากบ A และกบ B มีแรงกระแทกเฉลี่ยเท่ากัน แต่ไม่จำเป็นต้องมีการกระจายแบบเดียวกัน ซึ่งไม่สามารถทดสอบได้ด้วย permutation test

ในการทดสอบ bootstrap สองกลุ่มตัวอย่าง เราจะเลื่อน ทั้งสอง อาร์เรย์ให้มีค่าเฉลี่ยเท่ากัน เนื่องจากเราจำลองสมมติฐานว่าค่าเฉลี่ยของทั้งสองกลุ่มเท่ากัน จากนั้นจึงสุ่ม bootstrap samples จากอาร์เรย์ที่เลื่อนแล้ว และคำนวณผลต่างของค่าเฉลี่ย ซึ่งนับเป็น bootstrap replicate หนึ่งค่า และเราจะสร้าง replicates จำนวนมาก โดย p-value คือสัดส่วนของ replicates ที่มีผลต่างของค่าเฉลี่ยมากกว่าหรือเท่ากับที่สังเกตได้จริง

ออบเจกต์ forces_concat และ empirical_diff_means ถูกกำหนดไว้ใน namespace ของคุณแล้ว

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

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

ดูคอร์ส

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

  • คำนวณค่าเฉลี่ยของแรงกระแทกทั้งหมด (จาก forces_concat) โดยใช้ np.mean()
  • สร้างชุดข้อมูลที่เลื่อนแล้วสำหรับ ทั้ง force_a และ force_b ให้ค่าเฉลี่ยของแต่ละชุดเท่ากับค่าเฉลี่ยของอาร์เรย์แรงกระแทกที่เชื่อมกัน
  • สร้าง bootstrap replicates ของค่าเฉลี่ยจำนวน 10,000 ค่า สำหรับอาร์เรย์ที่เลื่อนแล้วทั้งสอง
  • คำนวณ bootstrap replicates ของผลต่างของค่าเฉลี่ย โดยนำ replicates ของแรงกระแทกที่เลื่อนแล้วของกบ B ลบออกจากกบ A
  • คำนวณและแสดงค่า p-value จาก bootstrap replicates ที่ได้

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

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

# Compute mean of all forces: mean_force
mean_force = ____

# Generate shifted arrays
force_a_shifted = force_a - np.mean(force_a) + mean_force
force_b_shifted = ____ 

# Compute 10,000 bootstrap replicates from shifted arrays
bs_replicates_a = draw_bs_reps(____, ____, ____)
bs_replicates_b = draw_bs_reps(____, ____, ____)

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

# Compute and print p-value: p
p = ____ / ____
print('p-value =', p)
แก้ไขและรันโค้ด