НачатьНачать бесплатно

Визуализация априорных распределений регрессии

В предыдущем упражнении вы смоделировали 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)
Редактировать и запускать код