Bayesovský model IQ zombíků
Zombíci nejsou zrovna chytří – a tebe a tvé kolegy z Národní laboratoře pro výzkum zombíků zajímá, jak moc vlastně nejsou. K dispozici máš Normální model, který jsme vytvořili v předchozím videu, jen místo dat o teplotě jsou v něm čerstvě naměřená IQ zombíků z laboratoře. Cílem je zjistit, co se z těchto dat dozvíme o průměrném IQ zombíků. Model je hotový až na jednu věc: je potřeba vypočítat probability pro každou kombinaci parametrů v pars.
Toto cvičení je součástí kurzu
Základy bayesovské analýzy dat v R
Pokyny k cvičení
- Pomocí Bayesova teorému vypočítej tyto pravděpodobnosti a přiřaď je do
pars$probability, čímž model dokončíš.
Bayesův teorém:
$$P(\theta|D) = \frac{P(D|\theta) \times P(\theta)}{\sum P(D|\theta) \times P(\theta)}$$
Kde
- \(\theta\) je kombinace parametrů,
- \(D\) jsou data,
- \(P(D|\theta)\) je věrohodnost (likelihood)
- \(P(\theta)\) je apriorní pravděpodobnost (prior)
- \(P(\theta|D)\) je pravděpodobnost různých hodnot parametrů při daných datech. To je přesně to, co hledáme!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 <- ___