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

การจำลองความสัมพันธ์ระหว่าง X กับ p

ในแคมเปญหาเสียงของคุณ ทีมงานสำรวจผู้มีสิทธิ์เลือกตั้ง 10 คน กำหนดให้ \(X\) คือจำนวนคนที่ให้การสนับสนุน แน่นอนว่า \(X\) จะแปรผันในแต่ละกลุ่มตัวอย่าง และขึ้นอยู่กับ \(p\) ซึ่งคือสัดส่วนการสนับสนุนในประชากรทั้งหมด เนื่องจาก \(X\) คือจำนวนครั้งที่สำเร็จใน 10 การทดลองอิสระ โดยแต่ละครั้งมีความน่าจะเป็นของความสำเร็จเท่ากับ \(p\) จึงสามารถสร้างโมเดลความสัมพันธ์ระหว่าง \(X\) กับ \(p\) ได้โดยใช้การแจกแจงทวินาม: Bin(10, \(p\))

จะจำลองโมเดล Binomial โดยใช้ตัวอย่างสุ่มจากฟังก์ชัน rbinom(n, size, prob) ฟังก์ชันแบบ vectorized นี้สุ่ม n ตัวอย่างจากการแจกแจง Bin(size, prob) เมื่อกำหนด vector ของค่า prob ค่า prob แรกจะใช้สำหรับการสุ่มครั้งแรก ค่าที่สองจะใช้สำหรับการสุ่มครั้งที่สอง และต่อไปเรื่อย ๆ

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

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

ดูคอร์ส

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

  • กำหนดลำดับค่าที่เป็นไปได้ของ \(p\) จำนวน 1000 ค่าโดยใช้ seq() ตั้งแต่ 0 ถึง 1 แล้วเก็บไว้ในตัวแปร p_grid
  • ใช้ rbinom() เพื่อจำลองผลสำรวจ \(X\) หนึ่งรายการสำหรับแต่ละค่า \(p\) ทั้ง 1000 ค่าใน p_grid แล้วกำหนดค่าเหล่านี้ให้กับ poll_result
  • data frame likelihood_sim รวม p_grid และ poll_result เข้าด้วยกัน ใช้ ggplot() พร้อม layer geom_density_ridges() เพื่อแสดงการกระจายของค่า p_grid (แกน x) ที่ใช้จำลอง poll_result แต่ละค่า (แกน y)

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

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

# Define a vector of 1000 p values    
p_grid <- seq(from = ___, to = ___, length.out = ___)

# Simulate 1 poll result for each p in p_grid   


# Create likelihood_sim data frame
likelihood_sim <- data.frame(p_grid, poll_result)    

# Density plots of p_grid grouped by poll_result
ggplot(likelihood_sim, aes(x = ___, y = ___, group = poll_result)) + 
    geom_density_ridges()
แก้ไขและรันโค้ด