Vizualizace apriorních rozdělení regrese
V předchozím cvičení jsi nasimuloval/a 10 000 samples pro každý parametr (\(a\), \(b\), \(s\)) bayesovského regresního modelu váhy \(Y\) v závislosti na výšce \(X\): \(Y \sim N(m, s^2)\) s průměrem \(m = a + bX\). Hodnoty \(a\), \(b\) a \(s\) v každém řádku tabulky samples představují jeden apriorně přijatelný regresní scénář. Abys prozkoumala rozsah těchto apriorních scénářů, nasimuluj 50 dvojic hodnot výšky a váhy pro každou z prvních 12 sad apriorních parametrů \(a\), \(b\) a \(s\).
Toto cvičení je součástí kurzu
Bayesovské modelování s RJAGS
Pokyny k cvičení
- Vytvoř datový rámec
prior_simulation, který bude obsahovatn = 50replikací prvních 12 sad apriorních parametrů z tabulkysamples(celkem 600 řádků!). - Pro každý z 600 řádků
prior_simulation:- Simuluj hodnotu
heightz modelu \(N(170, 10^2)\). - Simuluj hodnotu
weightz modelu \(N(a + b X, s^2)\), kde \(X\) je výška a \((a,b,s)\) jsou apriorní parametry.
- Simuluj hodnotu
- Nyní máš 50 nasimulovaných dvojic
heightaweightpro každou z 12 sad parametrů. Pomocíggplot()sestav bodový graf těchto 50 dvojic pro každousethodnot parametrů. Nezapomeň vynéstweightna osu y!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Replicate the first 12 parameter sets 50 times each
prior_scenarios_rep <- bind_rows(replicate(n = ___, expr = samples[1:12, ], simplify = FALSE))
# Simulate 50 height & weight data points for each parameter set
prior_simulation <- prior_scenarios_rep %>%
mutate(height = rnorm(n = 600, mean = ___, sd = ___)) %>%
mutate(weight = rnorm(n = 600, mean = ___, sd = ___))
# Plot the simulated data & regression model for each parameter set
ggplot(prior_simulation, aes(x = ___, y = ___)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, size = 0.75) +
facet_wrap(~ set)