시작하기무료로 시작하기

사후 분포에서의 시뮬레이션 드로우

효과(효능) 비율에 대해 Beta(5, 2) 사전분포를 사용하기로 했어요. 데이터는 이항분포로 모형화하고 있습니다(아픈 환자를 치료하면 “성공”으로 간주해요). 베타분포는 이항 가능도의 켤레 사전분포이므로, 사후분포를 간단히 시뮬레이션할 수 있어요!

사전분포가 $Beta(a, b)$라면 사후분포는 $Beta(x, y)$이며,

\(x = NumberOfSuccesses + a\),

\(y = NumberOfObservations - NumberOfSuccesses + b\) 입니다.

사후분포를 시뮬레이션해 볼까요? 총 22명의 환자 데이터가 있고, 그중 19명이 치료에 성공했다는 점을 기억하세요. numpyseaborn은 각각 np, sns로 임포트되어 있어요.

이 연습은 강의의 일부입니다

Python으로 배우는 Bayesian 데이터 분석

강의 보기

연습 안내

  • 치료한 환자 수와 치료에 성공한 환자 수를 각각 num_patients_treatednum_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()
코드 편집 및 실행