การสร้าง Permutation เดี่ยว
ในแบบฝึกหัดถัดไปหลายข้อ เราจะรันการทดสอบนัยสำคัญโดยใช้ permutation testing ตามที่ได้กล่าวถึงในวิดีโอ เราต้องการดูว่ามีความแตกต่างในยอดบริจาคที่ได้จากการออกแบบสองแบบ ได้แก่ A และ B หรือไม่ สมมติว่าได้รันทั้งสองเวอร์ชันมาหลายวันแล้ว และได้รับยอดบริจาค 500 รายการจาก A และ 700 รายการจาก B โดยเก็บไว้ในตัวแปร donations_A และ donations_B
ก่อนอื่น เราต้องสร้าง null distribution สำหรับความแตกต่างของค่าเฉลี่ย ซึ่งทำได้โดยการสร้าง permutation หลายชุดจากชุดข้อมูล แล้วคำนวณความแตกต่างของค่าเฉลี่ยในแต่ละกรณี
เริ่มต้นด้วยการสร้าง permutation หนึ่งชุด และคำนวณความแตกต่างของค่าเฉลี่ยจากชุดข้อมูลที่ถูก permute แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองทางสถิติด้วย Python
คำแนะนำการฝึกหัด
- เชื่อมอาร์เรย์
donations_Aและdonations_Bเข้าด้วยกันโดยใช้np.concatenate()แล้วกำหนดให้กับตัวแปรdata - สร้าง permutation หนึ่งชุดโดยใช้
np.random.permutation()แล้วกำหนดให้กับตัวแปรperm - คำนวณความแตกต่างของค่าเฉลี่ยระหว่าง
permuted_Aและpermuted_Bแล้วกำหนดให้กับตัวแปรdiff_in_means
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Concatenate the two arrays donations_A and donations_B into data
len_A, len_B = len(donations_A), len(donations_B)
data = ____([donations_A, donations_B])
# Get a single permutation of the concatenated length
perm = ____(len(donations_A) + len(donations_B))
# Calculate the permutated datasets and difference in means
permuted_A = data[perm[:len(donations_A)]]
permuted_B = data[perm[len(donations_A):]]
diff_in_means = ____
print("Difference in the permuted mean values = {}.".format(diff_in_means))