ПочатиПочніть безкоштовно

Візуалізація апріорних розподілів регресії

У попередній вправі ви змоделювали 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)
Редагувати та запускати код