แสดงภาพ Prior ของการถดถอย
ในแบบฝึกหัดก่อนหน้า คุณได้จำลอง samples จำนวน 10,000 ตัวอย่างสำหรับพารามิเตอร์แต่ละตัว (\(a\), \(b\), \(s\)) ในโมเดลการถดถอยแบบเบย์เซียนของน้ำหนัก \(Y\) ตามส่วนสูง \(X\): \(Y \sim N(m, s^2)\) โดยมีค่าเฉลี่ย \(m = a + bX\) ชุดค่า \(a\), \(b\) และ \(s\) ในแต่ละ แถว ของ samples แทน prior ที่เป็นไปได้ของสมการถดถอยหนึ่งชุด เพื่อสำรวจขอบเขตของ prior เหล่านี้ คุณจะจำลองคู่ค่าส่วนสูงและน้ำหนักจำนวน 50 คู่จาก ชุดพารามิเตอร์ prior 12 ชุดแรก \(a\), \(b\) และ \(s\)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างแบบจำลอง Bayesian ด้วย RJAGS
คำแนะนำการฝึกหัด
- สร้าง data frame ชื่อ
prior_simulationที่มี สำเนาn = 50ชุดจากชุดพารามิเตอร์ prior 12 ชุดแรกในsamples(รวมทั้งหมด 600 แถว!) - สำหรับแต่ละแถวใน
prior_simulationทั้ง 600 แถว:- จำลองค่า
heightจากโมเดล \(N(170, 10^2)\) - จำลองค่า
weightจากโมเดล \(N(a + b X, s^2)\) โดยที่ \(X\) คือส่วนสูง และ \((a,b,s)\) คือชุดพารามิเตอร์ prior
- จำลองค่า
- เมื่อได้คู่ค่า
heightและweightจำนวน 50 คู่สำหรับแต่ละชุดพารามิเตอร์ทั้ง 12 ชุดแล้ว ให้ใช้ggplot()สร้าง scatterplot ของคู่ค่าเหล่านี้แยกตามsetของพารามิเตอร์ โดยให้แกน y แสดงweight
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Replicate the first 12 parameter sets 50 times each
prior_scenarios_rep <- bind_rows(replicate(n = ___, expr = samples[1:12, ], simplify = FALSE))
# Simulate 50 height & weight data points for each parameter set
prior_simulation <- prior_scenarios_rep %>%
mutate(height = rnorm(n = 600, mean = ___, sd = ___)) %>%
mutate(weight = rnorm(n = 600, mean = ___, sd = ___))
# Plot the simulated data & regression model for each parameter set
ggplot(prior_simulation, aes(x = ___, y = ___)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, size = 0.75) +
facet_wrap(~ set)