Vizualizarea priorilor de regresie
În exercițiul anterior, ai simulat 10.000 de samples pentru fiecare parametru (\(a\), \(b\), \(s\)) din modelul de regresie Bayesiană a greutății \(Y\) în funcție de înălțimea \(X\): \(Y \sim N(m, s^2)\) cu media \(m = a + bX\). Setul de valori \(a\), \(b\) și \(s\) din fiecare rând al lui samples reprezintă un scenariu de regresie plauzibil conform priorului. Pentru a explora diversitatea acestor scenarii, vei simula 50 de perechi de valori pentru înălțime și greutate din fiecare dintre primele 12 seturi de parametri prior \(a\), \(b\) și \(s\).
Acest exercițiu face parte din cursul
Modelare bayesiană cu RJAGS
Instrucțiuni pentru exercițiu
- Creează un data frame
prior_simulationcare includen = 50replicate ale primelor 12 seturi de parametri prior dinsamples(600 de rânduri în total!). - Pentru fiecare dintre cele 600 de rânduri din
prior_simulation:- Simulează o valoare
heightdintr-un model \(N(170, 10^2)\). - Simulează o valoare
weightdin \(N(a + b X, s^2)\), unde \(X\) este înălțimea, iar \((a,b,s)\) reprezintă setul de parametri prior.
- Simulează o valoare
- Acum ai 50 de perechi simulate de
heightșiweightpentru fiecare dintre cele 12 seturi de parametri. Foloseșteggplot()pentru a construi un scatterplot al acestor 50 de perechi pentru fiecaresetde valori ale parametrilor. Asigură-te căweightapare pe axa y!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)