Comece agoraComece grátis

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.

Este exercicio faz parte do curso

Fundamentals of Bayesian Data Analysis in R

Ver curso

Instruções do exercicio

  • 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!

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 <- ___
Editar e Executar Código