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

การทดสอบสมมติฐานแบบ Bootstrap

การทดสอบด้วย permutation มีสมมติฐานที่ค่อนข้างจำกัด กล่าวคือ ความยาว bout ของกลุ่ม heterozygote และ wild type ต้องมีการกระจายตัวที่เหมือนกันทุกประการ ทีนี้ลองใช้การทดสอบสมมติฐานแบบ bootstrap เพื่อทดสอบว่าค่าเฉลี่ยของทั้งสองกลุ่มเท่ากันหรือไม่ โดยไม่ต้องตั้งสมมติฐานใด ๆ เกี่ยวกับการกระจายตัวของข้อมูล

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

กรณีศึกษาด้านการคิดเชิงสถิติ

ดูคอร์ส

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

  • สร้างอาร์เรย์ bout_lengths_concat ที่รวมความยาว bout ของทั้ง wild type (bout_lengths_wt) และ heterozygote (bout_lengths_het) เข้าด้วยกันโดยใช้ np.concatenate()
  • คำนวณค่าเฉลี่ยของความยาว bout ทั้งหมดจากอาร์เรย์ที่รวมแล้ว (bout_lengths_concat) แล้วเก็บผลลัพธ์ไว้ในตัวแปร mean_bout_length
  • เลื่อนทั้งสองชุดข้อมูลให้มีค่าเฉลี่ยเท่ากัน โดยใช้ค่า mean_bout_length แล้วเก็บอาร์เรย์ที่เลื่อนแล้วไว้ในตัวแปร wt_shifted และ het_shifted
  • ใช้ dcst.draw_bs_reps() เพื่อสุ่ม bootstrap replicate ของค่าเฉลี่ยจำนวน 10,000 ครั้งสำหรับแต่ละชุดข้อมูลที่เลื่อนแล้ว แล้วเก็บผลลัพธ์ไว้ใน bs_reps_wt และ bs_reps_het ตามลำดับ
  • ลบ bs_reps_wt ออกจาก bs_reps_het เพื่อให้ได้ bootstrap replicate ของผลต่างค่าเฉลี่ย แล้วเก็บผลลัพธ์ไว้ในตัวแปร bs_reps
  • คำนวณค่า p-value โดยนิยามให้ "รุนแรงพอ ๆ กันหรือมากกว่า" หมายถึงกรณีที่ผลต่างค่าเฉลี่ยภายใต้สมมติฐานหลักมีค่ามากกว่าหรือเท่ากับค่าที่สังเกตได้จากการทดลองจริง ทั้งนี้ ตัวแปร diff_means_exp จากแบบฝึกหัดก่อนหน้ายังคงอยู่ใน namespace ของคุณแล้ว

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

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

# Concatenate arrays: bout_lengths_concat
bout_lengths_concat = ____((____, ____))

# Compute mean of all bout_lengths: mean_bout_length
mean_bout_length = ____

# Generate shifted arrays
wt_shifted = ____ - np.mean(____) + ____
het_shifted = ____ - ____ + ____

# Compute 10,000 bootstrap replicates from shifted arrays
bs_reps_wt = ____
bs_reps_het = ____

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

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