Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Tạo data frame prior_simulation bao gồm n = 50 bản lặp (replicates) của 12 bộ tham số prior đầu tiên trong samples (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ị height từ mô hình \(N(170, 10^2)\).
    • Mô phỏng một giá trị weight từ \(N(a + b X, s^2)\), trong đó \(X\) là height và \((a,b,s)\) là bộ tham số prior.
  • Giờ bạn có 50 cặp heightweight được mô phỏng cho mỗi trong 12 bộ tham số. Dùng ggplot() để vẽ biểu đồ scatter của 50 cặp này cho mỗi set tham số. Nhớ đặt weight trê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)
Chỉnh sửa và Chạy Mã