bolstad introduction to bayesian statistics 16.1


24b0d121e09c28a8699fe8b115ef046ec948ccf323


24b0d121e09c28a8699fe8b115ef046c69f8294898



24b0d121e09c28a8699fe8b115ef0464d78cebc1





viewimage.php?id=29b8d536b4&no=24b0d769e1d32ca73fe787fa1bd62531549b8405571e3d98064c1c8058d6cc51b4382a367a44193ce38d74c79d141cb12b1e12ba2d5ce59d15356bbb5b45b3a25c





# 1. 파라미터 및 데이터 설정

alpha0 <- 7; beta0 <- 13

alpha1 <- 1; beta1 <- 1

n <- 200; y <- 10


# 2. 사후 확률 가중치 (계산된 수치 반영)

w0_post <- 0.1633

w1_post <- 0.8367


# 3. 분포 계산

pi_seq <- seq(0, 1, length.out = 1000)

post0 <- dbeta(pi_seq, 17, 203)

post1 <- dbeta(pi_seq, 11, 191)

g_post_mix <- w0_post * post0 + w1_post * post1


# 가능도 계산 및 정규화

likelihood <- dbinom(y, size = n, prob = pi_seq)

scaled_likelihood <- likelihood * (max(g_post_mix) / max(likelihood))


# 4. 여백 조정 (오른쪽에 범례를 위한 충분한 공간 확보)

# mar = c(bottom, left, top, right)

par(mar = c(5, 4, 4, 12) + 0.1) 


# 5. 시각화

plot(pi_seq, g_post_mix, type = "l", lwd = 3, col = "green",

     main = "Posterior Mixture vs. Likelihood",

     xlab = expression(pi), ylab = "Density / Scaled Likelihood",

     xlim = c(0, 0.25), ylim = c(0, max(g_post_mix, scaled_likelihood) * 2.1))


lines(pi_seq, scaled_likelihood, col = "black", lwd = 2)

lines(pi_seq, post0, lty = 2, col = "blue")

lines(pi_seq, post1, lty = 2, col = "red")

abline(v = 0.05, col = "orange", lty = 3)


# 6. 범례 위치 수정 (그래프 영역 우측 바깥쪽)

# 6. 범례 위치 및 스타일 최적화

legend(x = 0.13, y = 60,  # y축 높이를 그래프 상단에 맞춰 고정

       legend = c("혼합사후분포", 

                  "가능도 (Scaled)\n n=200, y=10", 

                  "사후분포1 (Beta 17, 203)\n(사전 Beta 7, 13에서 출발)", 

                  "사후분포2 (Beta 11, 191)\n(사전 Beta 1, 1)에서 출발"),

       col = c("green", "black", "blue", "red"), 

       lty = c(1, 1, 2, 2), 

       lwd = c(3, 2, 2, 2),

       xpd = TRUE,      

       bty = "n",        # 테두리 없음

       cex = 1.0,        # 폰트 크기를 1.0으로 조정하여 가독성 확보

       y.intersp = 0.1,  # 줄바꿈 문구를 위해 간격을 1.8로 확대

       seg.len = 2.5)    # 선 기호의 길이를 약간 늘려 시인성 개선