Die Regressions-Priors visualisieren
In der vorherigen Übung hast du 10.000 samples für jeden Parameter (\(a\), \(b\), \(s\)) im Bayes’schen Regressionsmodell des Gewichts \(Y\) nach Körpergröße \(X\) simuliert: \(Y \sim N(m, s^2)\) mit Mittelwert \(m = a + bX\). Die Menge der \(a\)-, \(b\)- und \(s\)-Werte in jeder Zeile von samples stellt ein zuvor plausibles Regressionsszenario dar. Um die Bandbreite dieser Prior-Szenarien zu erkunden, simulierst du 50 Paare aus Größe und Gewicht aus jeweils den ersten 12 Sätzen von Prior-Parametern \(a\), \(b\) und \(s\).
Diese Übung ist Teil des Kurses
Bayesianisches Modellieren mit RJAGS
Anleitung zur Übung
- Erstelle ein Data Frame
prior_simulation, dasn = 50Replikate der ersten 12 Sätze von Prior-Parametern insamplesenthält (insgesamt 600 Zeilen!). - Für jede der 600 Zeilen in
prior_simulation:- Simuliere einen
height-Wert aus einem \(N(170, 10^2)\)-Modell. - Simuliere einen
weight-Wert aus \(N(a + b X, s^2)\), wobei \(X\) die Größe ist und \((a,b,s)\) der jeweilige Prior-Parametersatz.
- Simuliere einen
- Du hast nun 50 simulierte Paare aus
heightundweightfür jeden der 12 Parametersätze. Verwendeggplot(), um ein Streudiagramm dieser 50 Paare für jedensetvon Parameterwerten zu erstellen. Achte darauf,weightauf die y-Achse zu legen!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)