Visualizzare le prior della regressione
Nell’esercizio precedente, hai simulato 10.000 samples per ciascun parametro (\(a\), \(b\), \(s\)) nel modello di regressione bayesiana del peso \(Y\) sull’altezza \(X\): \(Y \sim N(m, s^2)\) con media \(m = a + bX\). L’insieme dei valori di \(a\), \(b\) e \(s\) in ogni riga di samples rappresenta uno scenario di regressione plausibile secondo la prior. Per esplorare l’ampiezza di questi scenari, simulerai 50 coppie di valori di altezza e peso da ciascuno dei primi 12 insiemi di parametri prior \(a\), \(b\) e \(s\).
Questo esercizio fa parte del corso
Modeling bayesiano con RJAGS
Istruzioni dell'esercizio
- Crea un data frame
prior_simulationche includan = 50repliche dei primi 12 insiemi di parametri prior insamples(in totale 600 righe!). - Per ciascuna delle 600 righe di
prior_simulation:- Simula un valore di
heightda un modello \(N(170, 10^2)\). - Simula un valore di
weightda \(N(a + b X, s^2)\) dove \(X\) è height e \((a,b,s)\) è l’insieme di parametri prior.
- Simula un valore di
- Ora hai 50 coppie simulate di
heighteweightper ciascuno dei 12 insiemi di parametri. Usaggplot()per costruire uno scatter plot di queste 50 coppie per ognisetdi valori dei parametri. Assicurati di mettereweightsull’asse y!
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)