Naive standard errors
ค่าเฉลี่ยของ Markov chain จำนวน \(m\) ตัว ทำหน้าที่เป็น ตัวประมาณ ของค่าเฉลี่ย posterior ของ \(m\) ส่วน naive standard error คือตัวชี้วัดความคลาดเคลื่อนที่อาจเกิดขึ้นในการประมาณนี้ ซึ่งช่วยให้กำหนดความยาวของ chain ได้อย่างเหมาะสม ตัวอย่างเช่น สมมติว่าต้องการประมาณค่าเฉลี่ย posterior ของ \(m\) โดยมี standard error ไม่เกิน 0.1 มิลลิวินาที หาก naive standard error ที่ได้เกินเป้าหมายนี้ ก็ไม่ต้องกังวล เพียงรัน chain ให้ยาวขึ้น เพราะโดยทั่วไปแล้ว ความคลาดเคลื่อนจากการใช้ Markov chain ในการประมาณ posterior จะลดลงเมื่อความยาวของ chain เพิ่มขึ้น
ใช้ sleep_model ที่กำหนดไว้แล้ว และออบเจกต์ sleep_jags ที่คอมไพล์แล้วในการทำแบบฝึกหัดนี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างแบบจำลอง Bayesian ด้วย RJAGS
คำแนะนำการฝึกหัด
จำลอง (SIMULATE) การดึงค่า 1,000 ครั้งจาก posterior model ของ \(m\) และ \(s\) แล้วเก็บผลลัพธ์ไว้ใน
sleep_sim_1ดู
summary()ของ chain ในsleep_sim_1หาก naive standard error ของ chain \(m\) เกินเป้าหมาย 0.1 ให้ปรับการจำลองใหม่ โดยลองใช้ 500 หรือ 10,000 draws แทน 1,000 แล้วเก็บผลลัพธ์ไว้ใน
sleep_sim_2ดู
summary()ของ chain ในsleep_sim_2และตรวจสอบว่าการจำลองใหม่ตรงตามเกณฑ์แล้ว หากยังไม่ผ่าน ให้กลับไปทำขั้นตอนก่อนหน้าแล้วลองใหม่อีกครั้ง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# SIMULATE the posterior
sleep_sim_1 <- coda.samples(model = ___, variable.names = c("m", "s"), n.iter = ___)
# Summarize the m and s chains of sleep_sim_1
# RE-SIMULATE the posterior
sleep_sim_2 <- coda.samples(model = ___, variable.names = c("m", "s"), n.iter = ___)
# Summarize the m and s chains of sleep_sim_2