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

แสดงภาพ 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)
แก้ไขและรันโค้ด