ความลึกของจะงอยปากถ่ายทอดทางพันธุกรรมได้จริงหรือไม่ใน G. scandens?
ค่าการถ่ายทอดทางพันธุกรรมของความลึกจะงอยปากใน G. scandens ดูเหมือนจะต่ำมาก อาจเป็นไปได้ว่าค่านี้เกิดขึ้นโดยบังเอิญ และความลึกของจะงอยปากอาจไม่ได้ถ่ายทอดทางพันธุกรรมอย่างแท้จริงในสปีชีส์นี้ ในแบบฝึกหัดนี้จะทดสอบสมมติฐานดังกล่าวโดยใช้ pairs permutation test
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 2)
คำแนะนำการฝึกหัด
- สร้างอาร์เรย์สำหรับเก็บค่า replicate ของการถ่ายทอดทางพันธุกรรม โดยจะใช้ pairs permutation replicate จำนวน 10,000 ครั้ง
- เขียน
forloop เพื่อสร้างค่า replicate- สุ่มสลับอาร์เรย์
bd_parent_scandensโดยใช้np.random.permutation() - คำนวณค่าการถ่ายทอดทางพันธุกรรมระหว่างอาร์เรย์ที่สุ่มสลับแล้วกับอาร์เรย์
bd_offspring_scandensโดยใช้ฟังก์ชันheritability()ที่เขียนไว้ในแบบฝึกหัดที่แล้ว แล้วเก็บผลลัพธ์ลงในอาร์เรย์ replicate
- สุ่มสลับอาร์เรย์
- คำนวณค่า p-value จากจำนวน replicate ที่มีค่ามากกว่าค่า
heritability_scandensที่สังเกตได้จากแบบฝึกหัดที่แล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize array of replicates: perm_replicates
perm_replicates = ____
# Draw replicates
for i in range(10000):
# Permute parent beak depths
bd_parent_permuted = ____
perm_replicates[i] = ____
# Compute p-value: p
p = np.sum(____ >= ____) / len(____)
# Print the p-value
print('p-val =', p)