Memvisualisasikan prior regresi
Pada latihan sebelumnya, Anda mensimulasikan 10.000 samples untuk setiap parameter (\(a\), \(b\), \(s\)) dalam model regresi Bayesian untuk berat badan \(Y\) berdasarkan tinggi badan \(X\): \(Y \sim N(m, s^2)\) dengan mean \(m = a + bX\). Kumpulan nilai \(a\), \(b\), dan \(s\) pada setiap baris samples merepresentasikan sebuah skenario regresi yang masuk akal menurut prior. Untuk menelaah cakupan skenario prior ini, Anda akan mensimulasikan 50 pasangan nilai tinggi dan berat dari masing-masing 12 set parameter prior pertama \(a\), \(b\), dan \(s\).
Latihan ini merupakan bagian dari kursus
Pemodelan Bayesian dengan RJAGS
Instruksi latihan
- Buat data frame
prior_simulationyang mencakupn = 50replikasi dari 12 set parameter prior pertama dalamsamples(total 600 baris!). - Untuk setiap dari 600 baris
prior_simulation:- Simulasikan nilai
heightdari model \(N(170, 10^2)\). - Simulasikan nilai
weightdari \(N(a + b X, s^2)\) di mana \(X\) adalah height dan \((a,b,s)\) adalah set parameter prior.
- Simulasikan nilai
- Kini Anda memiliki 50 pasangan
heightdanweighttersimulasikan untuk masing-masing dari 12 set parameter. Gunakanggplot()untuk membuat scatterplot dari 50 pasangan ini untuk setiapsetnilai parameter. Pastikanweightberada pada sumbu y!
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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)