Kom igångKom igång gratis

Visualisera regressionens apriorifördelningar

I föregående övning simulerade du 10 000 samples för varje parameter (\(a\), \(b\), \(s\)) i den bayesianska regressionsmodellen av vikt \(Y\) som funktion av längd \(X\): \(Y \sim N(m, s^2)\) med medelvärde \(m = a + bX\). Värdena på \(a\), \(b\) och \(s\) i varje rad i samples representerar ett apriori plausibelt regressionsscenario. För att utforska bredden hos dessa apriori-scenarier simulerar du nu 50 par av längd- och viktvärden från var och en av de första 12 uppsättningarna av apriori-parametrar \(a\), \(b\) och \(s\).

Den här övningen är en del av kursen

Bayesiansk modellering med RJAGS

Visa kurs

Övningsinstruktioner

  • Skapa en dataram prior_simulation som innehåller n = 50 replikat av de första 12 uppsättningarna av apriori-parametrar i samples (totalt 600 rader!).
  • För var och en av de 600 raderna i prior_simulation:
    • Simulera ett height-värde från en \(N(170, 10^2)\)-modell.
    • Simulera ett weight-värde från \(N(a + b X, s^2)\) där \(X\) är längd och \((a,b,s)\) är apriori-parameteruppsättningen.
  • Nu har du 50 simulerade par av height och weight för var och en av de 12 parameteruppsättningarna. Använd ggplot() för att skapa ett spridningsdiagram över dessa 50 par för varje set av parametervärden. Kom ihåg att placera weight på y-axeln!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod