Визуализация априорных распределений регрессии
В предыдущем упражнении вы смоделировали 10 000 значений samples для каждого параметра (\(a\), \(b\), \(s\)) байесовской регрессионной модели веса \(Y\) по росту \(X\): \(Y \sim N(m, s^2)\), где среднее \(m = a + bX\). Каждая строка в samples содержит набор значений \(a\), \(b\) и \(s\), представляющий один из правдоподобных априорных сценариев регрессии. Чтобы изучить диапазон этих сценариев, вы смоделируете 50 пар значений роста и веса для каждого из первых 12 наборов априорных параметров \(a\), \(b\) и \(s\).
Это упражнение является частью курса
Байесовское моделирование с RJAGS
Инструкции к упражнению
- Создайте датафрейм
prior_simulation, содержащийn = 50реплик для каждого из первых 12 наборов априорных параметров изsamples(всего 600 строк!). - Для каждой из 600 строк
prior_simulation:- Смоделируйте значение
heightиз модели \(N(170, 10^2)\). - Смоделируйте значение
weightиз модели \(N(a + b X, s^2)\), где \(X\) — рост, а \((a, b, s)\) — набор априорных параметров.
- Смоделируйте значение
- Теперь у вас есть 50 смоделированных пар
heightиweightдля каждого из 12 наборов параметров. Используйтеggplot(), чтобы построить точечный график этих 50 пар для каждого набора параметровset. Обязательно разместитеweightна оси y!
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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)