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

การคำนวณค่าพยากรณ์เชิง Posterior

คุณได้สำรวจ แนวโน้ม posterior ของน้ำหนัก \(Y\) ในกลุ่มผู้ใหญ่ที่มีส่วนสูง \(X = 180\) แล้ว ซึ่งได้แก่ \(m\)180 \(= a + b * 180\) โดย data frame weight_chains มีค่าที่เป็นไปได้เชิง posterior ของ \(m\)180 จำนวน 100,000 ค่า ที่คำนวณจากค่า \(a\) และ \(b\) ที่สอดคล้องกัน:

> head(weight_chains, 2)
          a        b        s iter     m_180
1 -113.9029 1.072505 8.772007    1  79.14803
2 -115.0644 1.077914 8.986393    2  78.96014

ทีนี้ลืมเรื่องแนวโน้มไปก่อน แล้วลองคิดว่าหากต้องการ พยากรณ์ น้ำหนักของผู้ใหญ่คนหนึ่งที่มีส่วนสูง 180 ซม. จะทำได้อย่างไร? ทำได้แน่นอน! โดยต้องคำนึงถึงความแปรปรวนระดับบุคคลจากแนวโน้ม ซึ่งจำลองด้วยโมเดล

\(Y\)180 \(\sim N(m\)180\(, s^2)\)

ด้วยโมเดลนี้ คุณจะจำลองค่าพยากรณ์น้ำหนักภายใต้ชุดพารามิเตอร์เชิง posterior แต่ละชุดใน weight_chains

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

การสร้างแบบจำลอง Bayesian ด้วย RJAGS

ดูคอร์ส

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

  • ใช้ rnorm() เพื่อจำลองค่าพยากรณ์น้ำหนักหนึ่งค่า โดยใช้ค่าพารามิเตอร์จากแถวแรกของ weight_chains
  • ทำซ้ำขั้นตอนข้างต้น โดยใช้ค่าพารามิเตอร์จากแถว ที่สอง ของ weight_chains
  • จำลองค่าพยากรณ์น้ำหนักหนึ่งค่าสำหรับชุดพารามิเตอร์ทั้ง 100,000 ชุดใน weight_chains แล้วเก็บผลลัพธ์เป็นตัวแปรใหม่ชื่อ Y_180 ใน weight_chains
  • แสดง 6 แถวแรกของค่าพารามิเตอร์และค่าพยากรณ์ใน weight_chains

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

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

# Simulate 1 prediction under the first parameter set
rnorm(n = 1, mean = ___, sd = ___)

# Simulate 1 prediction under the second parameter set
rnorm(n = 1, mean = ___, sd = ___)

# Simulate & store 1 prediction under each parameter set
weight_chains <- weight_chains  %>% 
    mutate(Y_180 = rnorm(n = 100000, mean = ___, sd = ___))

# Print the first 6 parameter sets & predictions
แก้ไขและรันโค้ด