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

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
แก้ไขและรันโค้ด