De priors van de regressie visualiseren
In de vorige oefening heb je 10.000 samples gesimuleerd voor elke parameter (\(a\), \(b\), \(s\)) in het Bayesiaanse regressiemodel van gewicht \(Y\) op lengte \(X\): \(Y \sim N(m, s^2)\) met gemiddelde \(m = a + bX\). De waarden van \(a\), \(b\) en \(s\) in elke rij van samples vertegenwoordigen een vooraf plausibel regressiescenario. Om de reikwijdte van deze prior-scenario’s te verkennen, simuleer je 50 paren lengte- en gewichtwaarden uit elk van de eerste 12 sets van priorparameters \(a\), \(b\) en \(s\).
Deze oefening maakt deel uit van de cursus
Bayesiaans modelleren met RJAGS
Oefeninstructies
- Maak een data frame
prior_simulationmetn = 50replicaties van de eerste 12 sets van priorparameters insamples(in totaal 600 rijen!). - Voor elk van de 600 rijen in
prior_simulation:- Simuleer een
height-waarde uit een \(N(170, 10^2)\)-model. - Simuleer een
weight-waarde uit \(N(a + b X, s^2)\), waarbij \(X\) de lengte is en \((a,b,s)\) de priorparameterset.
- Simuleer een
- Je hebt nu 50 gesimuleerde paren
heightenweightvoor elk van de 12 parametersets. Gebruikggplot()om een scatterplot te maken van deze 50 paren voor elkesetvan parameterwaarden. Zetweightzeker op de y-as!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)