Začněte nyníZačněte zdarma

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

Zobrazit kurz

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 <- ___
Upravit a spustit kód