회귀 사전분포 시각화
이전 연습 문제에서, 키 $X$로 몸무게 $Y$를 설명하는 베이지안 회귀모형에서 각 모수(\(a\), \(b\), \(s\))에 대해 10,000개의 samples를 시뮬레이션했어요. 이때 $Y \sim N(m, s^2)$이고 평균은 $m = a + bX$입니다. samples의 각 행에 있는 \(a\), \(b\), \(s\) 값의 집합은 사전적으로 가능한 회귀 시나리오 하나를 뜻합니다. 이러한 사전 시나리오의 범위를 살펴보기 위해, 처음 12개 사전 모수 집합 \(a\), \(b\), \(s\) 각각으로부터 키와 몸무게 값의 쌍을 50개씩 시뮬레이션하겠습니다.
이 연습은 강의의 일부입니다
RJAGS로 배우는 Bayesian 모델링
연습 안내
samples에서 처음 12개의 사전 모수 집합에 대해n = 50번씩 복제한 데이터를 포함하는 데이터 프레임prior_simulation을 만드세요(총 600행!).- 600개의 각
prior_simulation행마다:- \(N(170, 10^2)\) 모형에서
height값을 시뮬레이션하세요. - $X\(를 height, \)(a,b,s)$를 사전 모수 집합으로 하여 $N(a + b X, s^2)$에서
weight값을 시뮬레이션하세요.
- \(N(170, 10^2)\) 모형에서
- 이제 각 12개 모수 집합마다 50개의
height와weight쌍이 있습니다.ggplot()을 사용해 각set의 모수 값에 대해 이 50개 쌍의 산점도를 그리세요. y축에는 반드시weight를 두세요!
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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)