Візуалізація апріорних розподілів регресії
У попередній вправі ви змоделювали 10 000 samples для кожного параметра (\(a\), \(b\), \(s\)) у баєсівській регресійній моделі ваги \(Y\) за зростом \(X\): \(Y \sim N(m, s^2)\) із середнім \(m = a + bX\). Набір значень \(a\), \(b\) та \(s\) у кожному рядку samples відповідає правдоподібному апріорному регресійному сценарію. Щоб дослідити діапазон цих апріорних сценаріїв, ви змоделюєте 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)