LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein Data Frame prior_simulation, das n = 50 Replikate der ersten 12 Sätze von Prior-Parametern in samples enthä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.
  • Du hast nun 50 simulierte Paare aus height und weight für jeden der 12 Parametersätze. Verwende ggplot(), um ein Streudiagramm dieser 50 Paare für jeden set von Parameterwerten zu erstellen. Achte darauf, weight auf 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)
Code bearbeiten und ausführen