Баєсівська модель IQ зомбі
Зомбі нерозумні, і ви разом з колегами з National Zombie Research Laboratory хочете з'ясувати, наскільки саме. У вас є нормальна модель, розроблена в попередньому відео, але замість температур використано значення IQ зомбі, щойно отримані в лабораторії. Нас цікавить, скільки ми можемо дізнатися про середній IQ зомбі з цих даних. Модель майже готова; залишилося обчислити probability для кожної комбінації параметрів у pars.
Ця вправа є частиною курсу
Основи байєсівського аналізу даних у R
Інструкції до вправи
- Використайте теорему Байєса, щоб обчислити ці ймовірності й записати їх у
pars$probability, щоб завершити модель.
Ось теорема Байєса:
$$P(\theta|D) = \frac{P(D|\theta) \times P(\theta)}{\sum P(D|\theta) \times P(\theta)}$$
Де
- \(\theta\) — комбінація параметрів,
- \(D\) — дані,
- \(P(D|\theta)\) — правдоподібність,
- \(P(\theta)\) — апріорний розподіл,
- \(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 <- ___