사후 예측 계산하기
방금 키가 $X = 180$인 성인의 몸무게 $Y$에 대한 사후 추세를 살펴봤어요: \(m\)180 \(= a + b * 180\). weight_chains 데이터 프레임에는 $a$와 $b$의 해당 값들로부터 계산한 \(m\)180의 사후 그럴듯한 값 100,000개가 들어 있어요:
> head(weight_chains, 2)
a b s iter m_180
1 -113.9029 1.072505 8.772007 1 79.14803
2 -115.0644 1.077914 8.986393 2 78.96014
이제 추세는 잠시 잊고, 키가 정확히 180cm인 특정 성인의 몸무게를 예측하고 싶다면 어떻게 할까요? 가능합니다! 이를 위해서는 추세로부터의 개인 차이를 반영해야 해요. 이는 다음과 같이 모형화됩니다.
\(Y\)180 \(\sim N(m\)180\(, s^2)\)
이 모형을 사용해, weight_chains의 각 사후 그럴듯한 매개변수 조합에서 몸무게 예측을 시뮬레이션해 보겠습니다.
이 연습은 강의의 일부입니다
RJAGS로 배우는 Bayesian 모델링
연습 안내
rnorm()을 사용해weight_chains의 첫 번째 행에 있는 매개변수 설정으로 몸무게 예측값 1개를 시뮬레이션하세요.- 위 작업을
weight_chains의 두 번째 행에 있는 매개변수 설정으로 반복하세요. weight_chains의 100,000개 모든 매개변수 설정 각각에 대해 몸무게 예측값 1개씩을 시뮬레이션하세요. 이 값을weight_chains의 새 변수Y_180에 저장하세요.weight_chains에서 매개변수와 예측값의 처음 6행을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Simulate 1 prediction under the first parameter set
rnorm(n = 1, mean = ___, sd = ___)
# Simulate 1 prediction under the second parameter set
rnorm(n = 1, mean = ___, sd = ___)
# Simulate & store 1 prediction under each parameter set
weight_chains <- weight_chains %>%
mutate(Y_180 = rnorm(n = 100000, mean = ___, sd = ___))
# Print the first 6 parameter sets & predictions