Zacznij terazZacznij za darmo

Wizualizacja priorytetów regresji

W poprzednim ćwiczeniu zasymulowano 10 000 samples dla każdego parametru (\(a\), \(b\), \(s\)) w bayesowskim modelu regresji wagi \(Y\) względem wzrostu \(X\): \(Y \sim N(m, s^2)\) ze średnią \(m = a + bX\). Zestaw wartości \(a\), \(b\) i \(s\) w każdym wierszu samples reprezentuje jeden a priori wiarygodny scenariusz regresji. Aby zbadać zakres tych scenariuszy a priori, zasymuluj 50 par wartości wzrostu i wagi dla każdego z pierwszych 12 zestawów parametrów a priori \(a\), \(b\) i \(s\).

To ćwiczenie jest częścią kursu

Modelowanie bayesowskie z RJAGS

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz ramkę danych prior_simulation zawierającą n = 50 replikacji pierwszych 12 zestawów parametrów a priori z samples (łącznie 600 wierszy!).
  • Dla każdego z 600 wierszy prior_simulation:
    • Zasymuluj wartość height z modelu \(N(170, 10^2)\).
    • Zasymuluj wartość weight z modelu \(N(a + b X, s^2)\), gdzie \(X\) to wzrost, a \((a,b,s)\) to zestaw parametrów a priori.
  • Masz teraz 50 zasymulowanych par height i weight dla każdego z 12 zestawów parametrów. Użyj ggplot(), aby stworzyć wykres punktowy tych 50 par dla każdego set wartości parametrów. Pamiętaj, żeby umieścić weight na osi y!

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod