Trực quan hóa prior của hồi quy
Ở bài trước, bạn đã mô phỏng 10.000 samples cho mỗi tham số (\(a\), \(b\), \(s\)) trong mô hình hồi quy Bayesian của cân nặng \(Y\) theo chiều cao \(X\): \(Y \sim N(m, s^2)\) với trung bình \(m = a + bX\). Tập giá trị \(a\), \(b\), và \(s\) trong mỗi hàng của samples biểu thị một kịch bản hồi quy hợp lý theo prior. Để khám phá phạm vi các kịch bản prior này, bạn sẽ mô phỏng 50 cặp giá trị chiều cao và cân nặng từ mỗi của 12 bộ tham số prior đầu tiên \(a\), \(b\), và \(s\).
Bài tập này là một phần của khóa học
Mô hình hóa Bayesian với RJAGS
Hướng dẫn bài tập
- Tạo data frame
prior_simulationbao gồmn = 50bản lặp (replicates) của 12 bộ tham số prior đầu tiên trongsamples(tổng cộng 600 hàng!). - Với mỗi trong 600 hàng của
prior_simulation:- Mô phỏng một giá trị
heighttừ mô hình \(N(170, 10^2)\). - Mô phỏng một giá trị
weighttừ \(N(a + b X, s^2)\), trong đó \(X\) là height và \((a,b,s)\) là bộ tham số prior.
- Mô phỏng một giá trị
- Giờ bạn có 50 cặp
heightvàweightđược mô phỏng cho mỗi trong 12 bộ tham số. Dùngggplot()để vẽ biểu đồ scatter của 50 cặp này cho mỗisettham số. Nhớ đặtweighttrên trục y!
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)