CommencerCommencer gratuitement

A Bayesian model of Zombie IQ

Zombies are stupid, and you and your colleagues at the National Zombie Research Laboratory are interested in how stupid they are. You have the Normal model we developed in the last video, but with the temperature data switched out with some zombie IQs fresh from the lab. What we're interested in is how much we can learn about the mean zombie IQ from this data. The model is complete, save for that we need to calculate the probability of each parameter combination in pars.

Cet exercice fait partie du cours

Fundamentals of Bayesian Data Analysis in R

Afficher le cours

Instructions

  • Use Bayes Theorem to calculate these probabilities and assign them to pars$probability to complete the model.

Here's Bayes theorem:

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

Where

  • \(\theta\) is a parameter combination,
  • \(D\) is the data,
  • \(P(D|\theta)\) is the likelihood
  • \(P(\theta)\) is the prior
  • \(P(\theta|D)\) is the probability of different parameter values given the data. This is what we want!

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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 <- ___
Modifier et exécuter le code