Bắt đầu ngayBắt đầu miễn phí

Mô hình Bayes về IQ của Zombie

Zombie thì ngu ngốc, và bạn cùng các đồng nghiệp tại National Zombie Research Laboratory muốn biết chúng ngu đến mức nào. Bạn có mô hình Normal chúng ta đã phát triển ở video trước, nhưng đã thay dữ liệu nhiệt độ bằng các điểm IQ của zombie mới từ phòng thí nghiệm. Điều chúng ta quan tâm là có thể học được bao nhiêu về giá trị trung bình của IQ zombie từ dữ liệu này. Mô hình đã hoàn chỉnh, chỉ còn thiếu việc tính probability cho từng tổ hợp tham số trong pars.

Bài tập này là một phần của khóa học

Những nền tảng của Phân tích dữ liệu Bayesian trong R

Xem khóa học

Hướng dẫn bài tập

  • Dùng định lý Bayes để tính các xác suất này và gán vào pars$probability để hoàn thiện mô hình.

Đây là định lý Bayes:

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

Trong đó

  • \(\theta\) là một tổ hợp tham số,
  • \(D\) là dữ liệu,
  • \(P(D|\theta)\) là likelihood
  • \(P(\theta)\) là prior
  • \(P(\theta|D)\) là xác suất của các giá trị tham số khác nhau khi đã quan sát dữ liệu. Đây chính là thứ chúng ta cần!

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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 <- ___
Chỉnh sửa và Chạy Mã