การกำหนดค่าก่อนหน้าสำหรับการถดถอย
กำหนดให้ \(Y\)i คือน้ำหนัก (หน่วย: กก.) ของบุคคล \(i\) จากการศึกษาในอดีตพบว่าน้ำหนักมีความสัมพันธ์เชิงเส้นกับส่วนสูง \(X\)i (หน่วย: ซม.) โดยน้ำหนักเฉลี่ย \(m\)i ของผู้ใหญ่ที่มีส่วนสูง \(X\)i เท่ากันสามารถเขียนได้ว่า \(m\)i \(= a + b X\)i อย่างไรก็ตาม ส่วนสูงไม่ได้เป็นตัวทำนายน้ำหนักที่สมบูรณ์แบบ เนื่องจากแต่ละบุคคลมีความแตกต่างจากแนวโน้มดังกล่าว ดังนั้นจึงมีเหตุผลเพียงพอที่จะสมมติว่า \(Y\)i มีการแจกแจงแบบปกติรอบ \(m\)i ด้วย ค่าเบี่ยงเบนมาตรฐานของส่วนที่เหลือ \(s\): \(Y\)i \(\sim N(m\)i, \(s^2)\)
โมเดลน้ำหนักตามส่วนสูงนี้มีพารามิเตอร์ทั้งหมด 3 ตัว ได้แก่ จุดตัดแกน \(a\), ความชัน \(b\) และค่าเบี่ยงเบนมาตรฐาน \(s\) ในขั้นตอนแรกของการวิเคราะห์แบบเบส์ ให้จำลองการแจกแจงก่อนหน้าสำหรับแต่ละพารามิเตอร์ดังนี้: \(a \sim N(0, 200^2)\), \(b \sim N(1, 0.5^2)\) และ \(s \sim Unif(0, 20)\)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างแบบจำลอง Bayesian ด้วย RJAGS
คำแนะนำการฝึกหัด
- สุ่มตัวอย่างจำนวน 10,000 ครั้งจากการแจกแจงก่อนหน้าของ \(a\), \(b\) และ \(s\) แต่ละตัว แล้วกำหนดผลลัพธ์ให้กับตัวแปร
a,bและsตามลำดับ ตัวแปรเหล่านี้จะถูกรวมไว้ใน data frame ชื่อsamplesพร้อมกับset = 1:10000ซึ่งเป็นตัวระบุหมายเลขของการสุ่มแต่ละครั้ง - สร้างกราฟความหนาแน่นแยกกันสำหรับตัวอย่างของ
a,bและs
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Take 10000 samples from the a, b, & s priors
a <- ___
b <- ___
s <- ___
# Store samples in a data frame
samples <- data.frame(set = 1:10000, a, b, s)
# Construct density plots of the prior samples
ggplot(___, aes(x = ___)) +
___()
ggplot(___, aes(x = ___)) +
___()
ggplot(___, aes(x = ___)) +
___()