시작하기무료로 시작하기

회귀 사전분포 시각화

이전 연습 문제에서, 키 $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 값을 시뮬레이션하세요.
  • 이제 각 12개 모수 집합마다 50개의 heightweight 쌍이 있습니다. 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)
코드 편집 및 실행