Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een data frame prior_simulation met n = 50 replicaties van de eerste 12 sets van priorparameters in samples (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.
  • Je hebt nu 50 gesimuleerde paren height en weight voor elk van de 12 parametersets. Gebruik ggplot() om een scatterplot te maken van deze 50 paren voor elke set van parameterwaarden. Zet weight zeker 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)
Code bewerken en uitvoeren