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

Permutation test กับข้อมูลกบ

แรงกระแทกเฉลี่ยของกบ A อยู่ที่ 0.71 นิวตัน (N) และกบ B อยู่ที่ 0.42 N ซึ่งต่างกัน 0.29 N เป็นไปได้ว่ากบทั้งสองกระแทกด้วยแรงเท่ากัน และผลต่างที่สังเกตได้นี้เกิดขึ้นโดยบังเอิญ เราจะคำนวณความน่าจะเป็นที่จะได้ผลต่างของค่าเฉลี่ยแรงกระแทกอย่างน้อย 0.29 N ภายใต้สมมติฐานที่ว่าการกระจายตัวของแรงกระแทกของกบทั้งสองตัวเหมือนกัน โดยใช้ permutation test ที่มี test statistic เป็นผลต่างของค่าเฉลี่ย

เพื่อความสะดวก ข้อมูลถูกเก็บไว้ในอาร์เรย์ force_a และ force_b แล้ว

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

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

ดูคอร์ส

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

  • นิยามฟังก์ชันที่มี call signature เป็น diff_of_means(data_1, data_2) ซึ่งคืนค่าผลต่างของค่าเฉลี่ยระหว่างชุดข้อมูลสองชุด คือค่าเฉลี่ยของ data_1 ลบด้วยค่าเฉลี่ยของ data_2
  • ใช้ฟังก์ชันนี้คำนวณผลต่างของค่าเฉลี่ยเชิงประจักษ์ที่สังเกตได้จากกบทั้งสองตัว
  • สุ่ม permutation replicates ของผลต่างของค่าเฉลี่ยจำนวน 10,000 ครั้ง
  • คำนวณ p-value
  • แสดงผล p-value

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

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

def diff_of_means(data_1, data_2):
    """Difference in means of two arrays."""

    # The difference of means of data_1, data_2: diff
    diff = ____

    return diff

# Compute difference of mean impact force from experiment: empirical_diff_means
empirical_diff_means = ____

# Draw 10,000 permutation replicates: perm_replicates
perm_replicates = draw_perm_reps(____, ____,
                                 ____, size=10000)

# Compute p-value: p
p = np.sum(____ >= ____) / len(____)

# Print the result
print('p-value =', p)
แก้ไขและรันโค้ด