viewimage.php?id=3ea9d132&no=24b0d769e1d32ca73de784fa1bd62531bc86dc33fe20e88dc284ef42ed3d05fb7d47c5e006da42cff0454f9b975db2e6325f49c9cb6ed649af6fbbb115e4d568



# -----------------------------

# 입력값

# -----------------------------

n1 <- 20

n2 <- 23


ybar1 <- 10459

ybar2 <- 10974.6919


SSp <- 461598


# -----------------------------

# 사후분포 모수

# -----------------------------

md <- ybar1 - ybar2           # m_d'

nu <- n1 + n2 - 2            # 자유도


# -----------------------------

# Monte Carlo 반복횟수

# -----------------------------

N <- 1000000


# -----------------------------

# 역카이제곱에서 sigma^2 생성

# sigma^2 = nu*SSp / ChiSq(nu)

# -----------------------------

sigma2 <- SSp / rchisq(N, df = nu)

hist(sigma2,breaks=200,  probability = TRUE

     , main = expression("역카이제곱으로 구한 "~sigma^2~"분포"))

lines(

  density(sigma2),

  lwd = 2, col="red"

)

# -----------------------------

# 조건부 정규분포에서 mu_d 생성

# -----------------------------

mu_d <- rnorm(

  N,

  mean = md,

  sd = sqrt(sigma2 * (1/n1 + 1/n2))

)

hist(mu_d, breaks=200,  probability = TRUE

     , main = expression(sigma^2~"를 정규분포에 넣어서 구한 평균차"~mu[d]~"분포"))

lines(

  density(mu_d),

  lwd = 2, col="red"

)

# -----------------------------

# 결과 확인

# -----------------------------

cat("mu_d 평균 =", mean(mu_d), "\n")

cat("mu_d 표준편차 =", sd(mu_d), "\n")





# 비교


# t분포로 직접 생성

mu_d_t <- md +

  sqrt((SSp/nu) * (1/n1 + 1/n2)) *  rt(N, df = nu)


# 밀도 비교

plot(

  density(mu_d),

  lwd = 2,

  main = expression(mu[d]~": 역카이제곱 + 정규 = 계층적 vs 스튜던트티 차이")

)


lines(

  density(mu_d_t),

  lwd = 2,

  lty = 2, col="red"

)