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

ทางลัดแบบ conditional

เยี่ยมมาก ตอนนี้คุณได้ทำการคำนวณแบบ Bayesian โดยไม่ต้องใช้การจำลองเลย! กราฟที่ได้ควรมีลักษณะใกล้เคียงกับ posterior distribution ที่คำนวณไว้ในบทที่ 3 แต่จะเห็นว่าต้องใช้โค้ดค่อนข้างมาก มีส่วนใดที่ตัดออกได้บ้างไหม?

มีอยู่! สามารถ condition บนข้อมูลได้โดยตรง โดยไม่จำเป็นต้องสร้าง joint distribution ก่อน

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

พื้นฐานการวิเคราะห์ข้อมูลแบบ Bayesian ใน R

ดูคอร์ส

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

  • กำหนดค่า n_visitors เป็น 6 โดยตรง โดยแทนที่คำสั่ง seq
  • จากนั้นลบบรรทัดที่ทำการ condition บนข้อมูล และบรรทัดถัดไปที่ normalize pars$probability ออก
  • ลองอ่านโค้ดที่แก้ไขแล้วอีกครั้ง และตรวจสอบให้แน่ใจว่าผลลัพธ์ที่ได้จะเหมือนกับก่อนหน้า :)

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

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

# Simplify the code below by directly conditioning on the data
n_ads_shown <- 100
proportion_clicks <- seq(0, 1, by = 0.01)
n_visitors <- seq(0, 100, by = 1)
pars <- expand.grid(proportion_clicks = proportion_clicks,
                    n_visitors = n_visitors)
pars$prior <- dunif(pars$proportion_clicks, min = 0, max = 0.2)
pars$likelihood <- dbinom(pars$n_visitors, 
    size = n_ads_shown, prob = pars$proportion_clicks)
pars$probability <- pars$likelihood * pars$prior
pars$probability <- pars$probability / sum(pars$probability)
pars <- pars[pars$n_visitors == 6, ]
pars$probability <- pars$probability / sum(pars$probability)
plot(pars$proportion_clicks, pars$probability, type = "h")
แก้ไขและรันโค้ด