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

การทดสอบสมมติฐาน - ความแตกต่างของค่าเฉลี่ย

เราต้องการทดสอบสมมติฐานว่ามีความแตกต่างในยอดบริจาคเฉลี่ยที่ได้รับจากกลุ่ม A และ B หรือไม่ ในแบบฝึกหัดก่อนหน้า คุณได้เรียนรู้วิธีสร้าง permutation ของข้อมูลหนึ่งชุดแล้ว คราวนี้เราจะสร้าง null distribution ของความแตกต่างระหว่างค่าเฉลี่ย แล้วจึงคำนวณ p-value

ในการสร้าง null distribution เราจะสร้างชุดข้อมูลที่ถูก permute หลายชุด และบันทึกความแตกต่างของค่าเฉลี่ยในแต่ละกรณี จากนั้นคำนวณค่าสถิติทดสอบ (test statistic) จากความแตกต่างของค่าเฉลี่ยของชุดข้อมูลต้นฉบับ สุดท้ายประมาณค่า p-value โดยคำนวณสองเท่าของสัดส่วนกรณีที่ความแตกต่างมีค่ามากกว่าหรือเท่ากับค่าสัมบูรณ์ของค่าสถิติทดสอบ (สมมติฐานแบบ 2-sided) หาก p-value น้อยกว่าประมาณ 0.05 ก็สามารถสรุปได้ว่ามีนัยสำคัญทางสถิติ

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

การจำลองทางสถิติด้วย Python

ดูคอร์ส

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

  • สร้าง permutation หลายชุดของ donations_A และ donations_B แล้วกำหนดให้กับตัวแปร perm
  • กำหนดให้ samples เท่ากับความแตกต่างของค่าเฉลี่ยระหว่าง permuted_A_datasets และ permuted_B_datasets โดยกำหนด axis=1 เพื่อให้คำนวณค่าเฉลี่ยของแต่ละชุดข้อมูลแทนที่จะเป็นค่าเฉลี่ยรวม
  • กำหนดให้ test_stat เท่ากับความแตกต่างของค่าเฉลี่ยระหว่าง donations_A และ donations_B
  • คำนวณ p-value p_val โดยใช้สองเท่าของสัดส่วนของ samples ที่มีค่ามากกว่าหรือเท่ากับค่าสัมบูรณ์ของ test_stat

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

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

# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]

# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)

# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))
แก้ไขและรันโค้ด