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

โมเดล Bayesian สำหรับ IQ ของซอมบี้

ซอมบี้นั้นโง่มาก และคุณกับเพื่อนร่วมงานที่ National Zombie Research Laboratory กำลังสนใจว่าโง่แค่ไหนกันแน่ เรามีโมเดล Normal ที่พัฒนาขึ้นในวิดีโอที่แล้ว แต่เปลี่ยนจากข้อมูลอุณหภูมิมาเป็นข้อมูลค่า IQ ของซอมบี้จากห้องปฏิบัติการ สิ่งที่เราต้องการรู้คือสามารถเรียนรู้อะไรได้บ้างเกี่ยวกับค่าเฉลี่ย IQ ของซอมบี้จากข้อมูลนี้ โมเดลเกือบสมบูรณ์แล้ว เหลือเพียงการคำนวณ probability ของแต่ละชุดพารามิเตอร์ใน pars

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

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

ดูคอร์ส

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

  • ใช้ทฤษฎีบทของ Bayes เพื่อคำนวณความน่าจะเป็นเหล่านี้ แล้วกำหนดค่าให้กับ pars$probability เพื่อทำให้โมเดลสมบูรณ์

ทฤษฎีบทของ Bayes:

$$P(\theta|D) = \frac{P(D|\theta) \times P(\theta)}{\sum P(D|\theta) \times P(\theta)}$$

โดยที่

  • \(\theta\) คือชุดพารามิเตอร์
  • \(D\) คือข้อมูล
  • \(P(D|\theta)\) คือ likelihood
  • \(P(\theta)\) คือ prior
  • \(P(\theta|D)\) คือความน่าจะเป็นของค่าพารามิเตอร์ต่าง ๆ เมื่อกำหนดข้อมูล ซึ่งนี่คือสิ่งที่เราต้องการ!

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

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

# The IQ of a bunch of zombies
iq <- c(55, 44, 34, 18, 51, 40, 40, 49, 48, 46)
# Defining the parameter grid
pars <- expand.grid(mu = seq(0, 150, length.out = 100), 
                    sigma = seq(0.1, 50, length.out = 100))
# Defining and calculating the prior density for each parameter combination
pars$mu_prior <- dnorm(pars$mu, mean = 100, sd = 100)
pars$sigma_prior <- dunif(pars$sigma, min = 0.1, max = 50)
pars$prior <- pars$mu_prior * pars$sigma_prior
# Calculating the likelihood for each parameter combination
for(i in 1:nrow(pars)) {
  likelihoods <- dnorm(iq, pars$mu[i], pars$sigma[i])
  pars$likelihood[i] <- prod(likelihoods)
}
# Calculate the probability of each parameter combination
pars$probability <- ___
แก้ไขและรันโค้ด