좀비 IQ의 베이지안 모델
좀비는 멍청하다고 하죠. 여러분과 National Zombie Research Laboratory의 동료들은 그들이 정확히 얼마나 멍청한지에 관심이 있어요. 지난 영상에서 만든 정규분포 모델을 사용하되, 온도 데이터 대신 연구실에서 막 나온 좀비 IQ 데이터를 사용합니다. 우리가 알고 싶은 것은 이 데이터로부터 좀비 평균 IQ에 대해 얼마나 배울 수 있는지예요. 모델은 거의 완성되었고, 이제 pars에 있는 각 매개변수 조합의 probability를 계산하기만 하면 됩니다.
이 연습은 강의의 일부입니다
R로 배우는 Bayesian 데이터 분석 기초
연습 안내
- 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 <- ___