사후 분포에서의 시뮬레이션 드로우
효과(효능) 비율에 대해 Beta(5, 2) 사전분포를 사용하기로 했어요. 데이터는 이항분포로 모형화하고 있습니다(아픈 환자를 치료하면 “성공”으로 간주해요). 베타분포는 이항 가능도의 켤레 사전분포이므로, 사후분포를 간단히 시뮬레이션할 수 있어요!
사전분포가 $Beta(a, b)$라면 사후분포는 $Beta(x, y)$이며,
\(x = NumberOfSuccesses + a\),
\(y = NumberOfObservations - NumberOfSuccesses + b\) 입니다.
사후분포를 시뮬레이션해 볼까요? 총 22명의 환자 데이터가 있고, 그중 19명이 치료에 성공했다는 점을 기억하세요. numpy와 seaborn은 각각 np, sns로 임포트되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 Bayesian 데이터 분석
연습 안내
- 치료한 환자 수와 치료에 성공한 환자 수를 각각
num_patients_treated와num_patients_cured에 할당하세요. - 알맞은
numpy함수를 사용해 사후분포에서 샘플링하고, 결과를posterior_draws에 할당하세요. - 적절한
seaborn함수를 사용해 사후분포를 시각화하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define the number of patients treated and cured
num_patients_treated = ____
num_patients_cured = ____
# Simulate 10000 draws from the posterior distribuition
posterior_draws = ____(____ + ____, ____ - ____ + ____, 10000)
# Plot the posterior distribution
____(____, shade=True)
plt.show()