การจำลอง posterior draws
คุณได้เลือกใช้ prior แบบ Beta(5, 2) สำหรับอัตราประสิทธิผล และใช้การแจกแจงทวินามในการสร้างโมเดลข้อมูล (จำได้ไหมว่าการรักษาผู้ป่วยให้หายถือเป็น "ความสำเร็จ") เนื่องจากการแจกแจงเบตาเป็น conjugate prior ของ binomial likelihood จึงสามารถจำลอง posterior ได้โดยตรง
หาก prior คือ \(Beta(a, b)\) แล้ว posterior จะเป็น \(Beta(x, y)\) โดยที่:
\(x = NumberOfSuccesses + a\),
\(y = NumberOfObservations - NumberOfSuccesses + b\).
ลองจำลอง posterior distribution ดูกัน โดยข้อมูลทั้งหมดมีผู้ป่วย 22 ราย ในจำนวนนั้นรักษาหาย 19 ราย นำเข้า numpy และ seaborn ให้แล้วในชื่อ np และ sns ตามลำดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python
คำแนะนำการฝึกหัด
- กำหนดจำนวนผู้ป่วยที่ได้รับการรักษาและรักษาหายให้กับ
num_patients_treatedและnum_patients_curedตามลำดับ - ใช้ฟังก์ชัน
numpyที่เหมาะสมเพื่อสุ่มตัวอย่างจาก posterior distribution แล้วกำหนดผลลัพธ์ให้กับposterior_draws - พล็อต posterior distribution โดยใช้ฟังก์ชัน
seabornที่เหมาะสม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the number of patients treated and cured
num_patients_treated = ____
num_patients_cured = ____
# Simulate 10000 draws from the posterior distribuition
posterior_draws = ____(____ + ____, ____ - ____ + ____, 10000)
# Plot the posterior distribution
____(____, shade=True)
plt.show()