1 개요
추정량 탐색 방법에서 베이즈 추정을 네 가지 방법 중 하나로 요약했다. 이 포스트에서는 베이즈 추정량(Bayes Estimators) 의 이론과 실무를 심층적으로 다룬다 (Casella & Berger, 2002, Ch.7.2.3).
빈도주의에서 \(\theta\) 는 “고정된 미지의 상수”이다. 베이지안에서 \(\theta\) 는 “변동하는 확률변수”이며, 그 불확실성을 확률분포로 표현한다. 이 철학적 차이가 추론의 모든 측면에 영향을 미친다.
베이즈 추론의 핵심 구조는 단순하다:
\[ \underbrace{\pi(\theta|\mathbf{x})}_{\text{사후}} = \frac{\overbrace{f(\mathbf{x}|\theta)}^{\text{우도}} \cdot \overbrace{\pi(\theta)}^{\text{사전}}}{\underbrace{m(\mathbf{x})}_{\text{주변 우도}}} \]
데이터를 관측하기 전의 믿음(사전분포)이 데이터가 제공하는 정보(우도)에 의해 업데이트되어 관측 후의 믿음(사후분포)이 된다. 모든 추론은 사후분포로부터 나온다.
2 사전-사후 업데이트 메커니즘
2.1 형식적 정의
사전분포 \(\pi(\theta)\), 표집분포 \(f(\mathbf{x}|\theta)\) 가 주어지면
\[ \pi(\theta|\mathbf{x}) = \frac{f(\mathbf{x}|\theta) \, \pi(\theta)}{m(\mathbf{x})}, \quad m(\mathbf{x}) = \int f(\mathbf{x}|\theta)\pi(\theta) \, d\theta \]
- \(\pi(\theta)\): 사전분포(prior) — 데이터 이전의 \(\theta\) 에 대한 믿음
- \(f(\mathbf{x}|\theta) = L(\theta|\mathbf{x})\): 우도(likelihood) — 데이터가 제공하는 정보
- \(\pi(\theta|\mathbf{x})\): 사후분포(posterior) — 데이터 이후 업데이트된 믿음
- \(m(\mathbf{x})\): 주변 우도(marginal likelihood) — 정규화 상수, \(\theta\) 에 무관
\(m(\mathbf{x})\) 는 \(\theta\) 에 무관한 정규화 상수이므로, 실무에서는 종종 “비례 관계”로 표현한다:
\[ \pi(\theta|\mathbf{x}) \propto L(\theta|\mathbf{x}) \cdot \pi(\theta) \]
사후 \(\propto\) 우도 \(\times\) 사전 — 이것이 베이즈 추론의 핵심 공식이다.
2.2 베이즈 점추정량
사후분포에서 하나의 숫자를 추출하여 점추정량으로 사용한다.
| 추정량 | 정의 | 최적화 기준 |
|---|---|---|
| 사후 평균 | \(E[\theta|\mathbf{x}]\) | 제곱 손실 \(L(\theta, a) = (\theta - a)^2\) 최소화 |
| 사후 중앙값 | \(\text{med}(\theta|\mathbf{x})\) | 절대 손실 \(L(\theta, a) = |\theta - a|\) 최소화 |
| 사후 최빈값 (MAP) | \(\arg\max_\theta \pi(\theta|\mathbf{x})\) | 0-1 손실 최소화 |
제곱 손실 하에서 사후 평균이 최적이라는 것은 다음과 같이 증명된다:
\[ E[(\theta - a)^2|\mathbf{x}] = \text{Var}(\theta|\mathbf{x}) + (E[\theta|\mathbf{x}] - a)^2 \]
이 식은 \(a = E[\theta|\mathbf{x}]\) 에서 최소화된다. 첫 항은 \(a\) 에 무관하므로, 사후 평균이 유일한 최적해이다.
3 켤레 분석: 이항-베타 모형
3.1 설정과 유도
\(X_1, \ldots, X_n \overset{\text{iid}}{\sim} \text{Bernoulli}(p)\) 에서 \(Y = \sum X_i \sim \text{Binomial}(n, p)\) 이다.
사전분포: \(p \sim \text{Beta}(\alpha, \beta)\)
\[ \pi(p) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} p^{\alpha-1}(1-p)^{\beta-1}, \quad 0 < p < 1 \]
결합 분포:
\[ f(y, p) = \binom{n}{y} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} p^{y+\alpha-1}(1-p)^{n-y+\beta-1} \]
주변 분포 (\(p\) 에 대해 적분):
\[ m(y) = \binom{n}{y} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \cdot \frac{\Gamma(y+\alpha)\Gamma(n-y+\beta)}{\Gamma(n+\alpha+\beta)} \]
이것은 베타-이항 분포(beta-binomial distribution) 이다.
사후 분포:
\[ \pi(p|y) = \frac{f(y,p)}{m(y)} = \frac{\Gamma(n+\alpha+\beta)}{\Gamma(y+\alpha)\Gamma(n-y+\beta)} p^{y+\alpha-1}(1-p)^{n-y+\beta-1} \]
이것은 \(\text{Beta}(y+\alpha, n-y+\beta)\) 이다.
베이즈 추정량 (사후 평균):
\[ \hat{p}_B = E[p|y] = \frac{y + \alpha}{n + \alpha + \beta} \]
3.2 가중평균 구조
\(\hat{p}_B\) 를 재배열하면 그 구조가 명확해진다:
\[ \hat{p}_B = \underbrace{\frac{n}{n + \alpha + \beta}}_{\text{데이터 가중치}} \cdot \underbrace{\frac{y}{n}}_{\text{MLE}} + \underbrace{\frac{\alpha + \beta}{n + \alpha + \beta}}_{\text{사전 가중치}} \cdot \underbrace{\frac{\alpha}{\alpha + \beta}}_{\text{사전 평균}} \]
베이즈 추정량은 MLE와 사전 평균의 가중평균이다. 가중치는 \(n\) (데이터의 양)과 \(\alpha + \beta\) (사전분포의 “유효 표본 크기”)에 의해 결정된다.
| 상황 | 가중치 | 결과 |
|---|---|---|
| \(n \gg \alpha + \beta\) | 데이터 가중치 \(\approx 1\) | \(\hat{p}_B \approx y/n\) (MLE에 수렴) |
| \(\alpha + \beta \gg n\) | 사전 가중치 \(\approx 1\) | \(\hat{p}_B \approx \alpha/(\alpha+\beta)\) (사전에 고정) |
| \(n \approx \alpha + \beta\) | 균등한 가중 | 사전과 데이터의 절충 |
\(\alpha + \beta\) 는 사전분포의 “강도” 또는 “유효 표본 크기”로 해석된다. \(\alpha + \beta = 10\) 이면, 사전 정보가 10개의 관측값에 해당하는 정보를 담고 있다고 볼 수 있다.
3.3 사전 모수의 해석
| 사전 모수 | 해석 |
|---|---|
| \(\alpha = 1, \beta = 1\) | 균등 사전분포 (무정보) — \(\hat{p}_B = (y+1)/(n+2)\) (라플라스 법칙) |
| \(\alpha = 0.5, \beta = 0.5\) | Jeffreys 사전분포 — \(\hat{p}_B = (y+0.5)/(n+1)\) |
| \(\alpha = 0, \beta = 0\) | Haldane 사전분포 (부적절) — \(\hat{p}_B = y/n\) (MLE와 일치) |
| \(\alpha = 10, \beta = 10\) | “대략 0.5에 가깝다”는 강한 사전 — \(\hat{p}_B = (y+10)/(n+20)\) |
4 켤레 분석: 포아송-감마 모형
4.1 유도
\(X_1, \ldots, X_n \overset{\text{iid}}{\sim} \text{Poisson}(\lambda)\), 사전분포 \(\lambda \sim \text{Gamma}(\alpha, \beta)\)
우도: \(L(\lambda|\mathbf{x}) \propto \lambda^{\sum x_i} e^{-n\lambda}\)
사전: \(\pi(\lambda) \propto \lambda^{\alpha-1} e^{-\lambda/\beta}\)
\[ \pi(\lambda|\mathbf{x}) \propto \lambda^{\sum x_i + \alpha - 1} e^{-(n + 1/\beta)\lambda} \]
이것은 \(\text{Gamma}(\sum x_i + \alpha, \; (n + 1/\beta)^{-1})\) 이다.
베이즈 추정량:
\[ \hat{\lambda}_B = \frac{\sum x_i + \alpha}{n + 1/\beta} \]
가중평균으로 재배열하면:
\[ \hat{\lambda}_B = \frac{n}{n + 1/\beta} \cdot \frac{\sum x_i}{n} + \frac{1/\beta}{n + 1/\beta} \cdot \alpha\beta \]
여기서 \(\sum x_i / n\) 은 MLE, \(\alpha\beta\) 는 사전 평균이다.
5 켤레 분석: 정규-정규 모형
5.1 단일 관측 (\(n = 1\))
\(X \sim N(\theta, \sigma^2)\) (\(\sigma^2\) 기지), 사전분포 \(\theta \sim N(\mu, \tau^2)\) (\(\mu, \tau^2\) 기지)
\[ \pi(\theta|x) \propto \exp\!\left(-\frac{(x-\theta)^2}{2\sigma^2}\right) \exp\!\left(-\frac{(\theta-\mu)^2}{2\tau^2}\right) \]
\(\theta\) 에 대한 이차식을 완성하면
\[ \theta|x \sim N\!\left(\frac{\tau^2}{\tau^2 + \sigma^2}x + \frac{\sigma^2}{\sigma^2 + \tau^2}\mu, \; \frac{\sigma^2\tau^2}{\sigma^2 + \tau^2}\right) \]
베이즈 추정량:
\[ \hat{\theta}_B = \frac{\tau^2}{\tau^2 + \sigma^2}x + \frac{\sigma^2}{\sigma^2 + \tau^2}\mu \]
5.2 정밀도(Precision) 관점
\(\rho = 1/\sigma^2\) (데이터 정밀도), \(\rho_0 = 1/\tau^2\) (사전 정밀도)로 놓으면
\[ \hat{\theta}_B = \frac{\rho}{\rho + \rho_0}x + \frac{\rho_0}{\rho + \rho_0}\mu \]
\[ \text{Var}(\theta|x) = \frac{1}{\rho + \rho_0} \]
해석: 사후 정밀도 = 데이터 정밀도 + 사전 정밀도. 정보가 가산적으로 결합된다. 이것은 정규 모형의 아름다운 성질이다.
5.3 iid 표본 (\(n\) 개)
\(X_1, \ldots, X_n \overset{\text{iid}}{\sim} N(\theta, \sigma^2)\) 이면, 충분통계량 \(\bar{X}\) 에 대해 \(\bar{X} \sim N(\theta, \sigma^2/n)\) 이므로
\[ \hat{\theta}_B = \frac{n/\sigma^2}{n/\sigma^2 + 1/\tau^2}\bar{x} + \frac{1/\tau^2}{n/\sigma^2 + 1/\tau^2}\mu \]
\[ \text{Var}(\theta|\mathbf{x}) = \frac{1}{n/\sigma^2 + 1/\tau^2} \]
\(n\) 이 커지면 사후 분산이 0에 수렴하고, 사후 평균이 \(\bar{x}\) (MLE)에 수렴한다.
5.4 사전 분산의 역할
| \(\tau^2\) 의 값 | 해석 | 결과 |
|---|---|---|
| \(\tau^2 \to \infty\) | 사전 정보 모호 (비정보적) | \(\hat{\theta}_B \to \bar{x}\) (MLE) |
| \(\tau^2 \to 0\) | 사전 정보 강함 (\(\theta \approx \mu\)) | \(\hat{\theta}_B \to \mu\) (사전 평균) |
| \(\tau^2 = \sigma^2/n\) | 사전과 데이터의 정밀도 동일 | \(\hat{\theta}_B = (\bar{x} + \mu)/2\) (단순 평균) |
6 켤레 가족 (Conjugate Family)
\(\mathcal{F} = \{f(\mathbf{x}|\theta)\}\) 를 표본 분포 가족이라 하자. 사전분포의 클래스 \(\Pi\) 가 \(\mathcal{F}\) 의 켤레 가족(conjugate family) 이란, 모든 사전분포 \(\pi \in \Pi\), 모든 \(f \in \mathcal{F}\), 모든 \(\mathbf{x}\) 에 대해 사후분포도 \(\Pi\) 에 속하는 것이다.
켤레 가족의 핵심 이점은 사후분포가 닫힌 형태(closed-form) 로 구해진다는 것이다. 사전 → 사후 업데이트가 초모수(hyperparameter) 업데이트로 환원된다.
6.1 주요 켤레 쌍
| 우도 (표본 분포) | 켤레 사전분포 | 사후분포 | 사후 평균 |
|---|---|---|---|
| \(\text{Binomial}(n, p)\) | \(\text{Beta}(\alpha, \beta)\) | \(\text{Beta}(y+\alpha, n-y+\beta)\) | \(\frac{y+\alpha}{n+\alpha+\beta}\) |
| \(\text{Poisson}(\lambda)\) | \(\text{Gamma}(\alpha, \beta)\) | \(\text{Gamma}(\sum x_i+\alpha, \frac{1}{n+1/\beta})\) | \(\frac{\sum x_i+\alpha}{n+1/\beta}\) |
| \(N(\theta, \sigma^2_0)\) | \(N(\mu_0, \tau^2)\) | \(N(\mu_{\text{post}}, \sigma^2_{\text{post}})\) | \(\frac{n\bar{x}/\sigma^2_0 + \mu_0/\tau^2}{n/\sigma^2_0 + 1/\tau^2}\) |
| \(\text{Exp}(\lambda)\) | \(\text{Gamma}(\alpha, \beta)\) | \(\text{Gamma}(n+\alpha, \frac{1}{\sum x_i+1/\beta})\) | \(\frac{n+\alpha}{\sum x_i + 1/\beta}\) |
| \(N(\mu_0, \sigma^2)\) | \(\text{InvGamma}(\alpha, \beta)\) | \(\text{InvGamma}(\alpha+n/2, \beta+\sum(x_i-\mu_0)^2/2)\) | — |
| \(\text{Multinomial}(\mathbf{p})\) | \(\text{Dirichlet}(\boldsymbol{\alpha})\) | \(\text{Dirichlet}(\boldsymbol{\alpha}+\mathbf{x})\) | \(\frac{\alpha_k + x_k}{\sum(\alpha_j + x_j)}\) |
6.2 지수족과 켤레 가족의 관계
지수족 \(f(x|\theta) = h(x)c(\theta)\exp(\eta(\theta)t(x))\) 의 켤레 사전분포는
\[ \pi(\theta|\chi, \nu) \propto [c(\theta)]^\nu \exp(\eta(\theta) \cdot \chi) \]
형태이다. 여기서 \(\chi\) 와 \(\nu\) 는 사전분포의 초모수이다. \(n\) 개의 iid 관측 후 사후분포는
\[ \pi(\theta|\mathbf{x}, \chi, \nu) \propto [c(\theta)]^{\nu+n} \exp\!\left(\eta(\theta) \cdot (\chi + \sum t(x_i))\right) \]
초모수 업데이트: \(\chi \to \chi + \sum t(x_i)\), \(\nu \to \nu + n\). 즉, 지수족의 켤레 업데이트는 충분통계량의 축적이다.
7 무정보 사전분포 (Noninformative Priors)
7.1 문제
사전 정보가 없거나 최소한으로 반영하고 싶을 때, 어떤 사전분포를 사용해야 하는가?
7.2 균등 사전분포 (Flat Prior)
가장 직관적인 선택은 \(\pi(\theta) \propto 1\) (모수 공간 위의 균등분포)이다.
문제점: 모수 변환에 대해 불변이 아니다. \(\theta\) 에 균등 → \(\eta = g(\theta)\) 에는 일반적으로 균등이 아니다.
예를 들어, \(p\) 에 \(\text{Uniform}(0,1)\) 사전을 놓으면 \(\text{odds} = p/(1-p)\) 에는 균등이 아니다. “무정보”의 정의가 모수화(parametrization)에 의존한다는 것이 근본적 문제이다.
7.3 Jeffreys 사전분포
변환 불변인 무정보 사전분포이다:
\[ \pi_J(\theta) \propto \sqrt{I(\theta)} \]
여기서 \(I(\theta)\) 는 피셔 정보이다.
왜 변환 불변인가: \(\eta = g(\theta)\) 로 재모수화하면 \(I_\eta(\eta) = I_\theta(\theta) / (g'(\theta))^2\) 이고
\[ \pi_J(\eta) \propto \sqrt{I_\eta(\eta)} = \frac{\sqrt{I_\theta(\theta)}}{|g'(\theta)|} = \pi_J(\theta) \cdot |d\theta/d\eta| \]
이것은 정확히 확률변수의 변환 법칙이므로, Jeffreys 사전분포는 모수화에 무관하게 같은 추론을 산출한다.
7.3.1 Jeffreys 사전분포의 예시
| 모형 | \(I(\theta)\) | Jeffreys 사전 | 해석 |
|---|---|---|---|
| \(\text{Binomial}(n, p)\) | \(n/(p(1-p))\) | \(\pi(p) \propto p^{-1/2}(1-p)^{-1/2}\) = Beta(1/2, 1/2) | \(p\) 가 0이나 1 근처에서 약간 집중 |
| \(N(\mu, \sigma^2_0)\) | \(1/\sigma^2_0\) | \(\pi(\mu) \propto 1\) (균등) | 정규분포에서는 균등 = Jeffreys |
| \(N(\mu_0, \sigma^2)\) | \(2/\sigma^4\) | \(\pi(\sigma^2) \propto 1/\sigma^2\) | \(\log\sigma^2\) 에 균등한 것과 동치 |
| \(\text{Exp}(\theta)\) | \(1/\theta^2\) | \(\pi(\theta) \propto 1/\theta\) | \(\log\theta\) 에 균등 |
7.4 부적절 사전분포 (Improper Prior)
\(\pi(\theta) \propto 1\) (\(\theta \in \mathbb{R}\)) 이나 \(\pi(\theta) \propto 1/\theta\) (\(\theta > 0\)) 같은 사전분포는 \(\int \pi(\theta)d\theta = \infty\) 이므로 적절한 확률분포가 아니다. 이를 부적절 사전분포(improper prior) 라 한다.
부적절 사전분포는 사후분포가 적절(proper) 하면 사용 가능하다. 그러나 사후분포의 적절성을 반드시 확인해야 한다 — 항상 보장되지는 않는다.
8 빈도주의와의 비교
8.1 동일한 결과를 산출하는 경우
| 상황 | MLE | 베이즈 (무정보 사전) |
|---|---|---|
| \(N(\mu, \sigma^2_0)\) 에서 \(\mu\) | \(\bar{X}\) | \(\bar{X}\) (동일) |
| \(\text{Bernoulli}(p)\), Haldane 사전 | \(Y/n\) | \(Y/n\) (동일) |
| 지수족 + Jeffreys 사전 | — | 종종 MLE와 유사 |
무정보 사전분포 하에서 베이즈 추정량은 종종 MLE와 일치하거나 매우 유사하다.
8.2 근본적 차이
| 관점 | 빈도주의 | 베이지안 |
|---|---|---|
| \(\theta\) 의 성격 | 고정된 미지의 상수 | 확률변수 |
| 불확실성 표현 | 반복 표집 분포 (SE, CI) | 사후분포 (credible interval) |
| 사전 정보 | 사용하지 않음 | 사전분포로 통합 |
| 우도원리 | 위반 가능 | 자동 만족 |
| 소표본 | 점근 이론에 의존 | 정확한 사후 추론 가능 |
| 다중 비교 | 보정 필요 (Bonferroni 등) | 계층 모형으로 자연스럽게 처리 |
8.3 빈도주의적 관점에서의 베이즈 추정량 평가
베이즈 추정량의 빈도주의적 성질을 평가할 수도 있다.
이항-베타 모형에서 \(\hat{p}_B = (Y+\alpha)/(n+\alpha+\beta)\) 의 MSE를 빈도주의적으로 계산하면
\[ \text{MSE}_p(\hat{p}_B) = E_p[(\hat{p}_B - p)^2] = \text{Var}_p(\hat{p}_B) + [\text{Bias}_p(\hat{p}_B)]^2 \]
\(\alpha = \beta = \sqrt{n}/2\) 로 선택하면, 이 베이즈 추정량은 \([0,1]\) 전체에서 MLE(\(Y/n\))보다 MSE가 작거나 같다. 이것은 James-Stein 현상의 단순한 버전이다 — 수축 추정량이 비수축 추정량보다 전체적으로 우월할 수 있다.
James & Stein(1961)이 보인 현상이다. \(\mathbb{R}^k\)(\(k \geq 3\))의 정규 평균 벡터를 추정할 때, 성분별 MLE \(\hat{\boldsymbol{\mu}} = \bar{\mathbf{X}}\) 는 비허용(inadmissible) 이다. 즉, 모든 \(\boldsymbol{\mu}\) 에서 동시에 MSE가 작은 대안 추정량이 존재한다.
핵심 메커니즘: 추정값을 원점 방향으로 수축(shrink) 시키면, 수축으로 인한 편향 증가보다 분산 감소가 더 크다. 본문의 베이즈 추정량 \((Y+\sqrt{n}/2)/(n+\sqrt{n})\) 은 MLE \(Y/n\) 을 \(1/2\) 쪽으로 수축시키는 것으로 해석된다. 손실함수와 모수 공간에 따라 수축 추정량의 정도가 달라진다.
9 사전분포 민감도 (Prior Sensitivity)
9.1 문제
사전분포의 선택이 결론에 얼마나 영향을 미치는가? 특히 소표본에서 사전분포가 사후분포를 지배할 수 있다.
9.2 민감도 분석
실무적 절차: 여러 사전분포(예: 다양한 \(\alpha, \beta\) 값)로 분석을 반복하고, 결론이 사전분포에 민감한지 확인한다.
\[ \pi_1(\theta) \neq \pi_2(\theta) \quad \Longrightarrow \quad \pi_1(\theta|\mathbf{x}) \approx \pi_2(\theta|\mathbf{x}) \text{ ?} \]
\(n\) 이 충분히 크면 우도가 사전분포를 압도하여, 서로 다른 사전분포에서 출발해도 유사한 사후분포에 도달한다. 이것을 사후 일관성(posterior consistency) 이라 한다.
사후 일관성이 성립하기 위한 주요 조건: (1) 사전분포 \(\pi(\theta)\) 가 참값 \(\theta_0\) 의 근방에 양의 확률을 부여해야 한다 (\(\pi(\theta_0 \text{ 근방}) > 0\)), (2) 모형이 올바르게 설정되어 있어야 한다. 조건을 만족하면 \(n \to \infty\) 에서 사후분포가 \(\theta_0\) 에 집중된다 (Doob의 정리 또는 Schwartz의 정리). 반면, 사전분포가 참값 근방에서 0이면 아무리 데이터가 많아도 사후분포가 참값에 도달하지 못할 수 있다.
10 코드 예시
10.1 Step 1: 순수 Python 구현 (이항-베타 켤레 분석)
사전분포의 선택이 사후 추정에 미치는 영향을 직접 계산한다.
import math
# 데이터: n=20번 시행, y=7번 성공
n, y = 20, 7
# 다양한 사전분포에서의 베이즈 추정
priors = [
("균등 Beta(1,1)", 1, 1),
("Jeffreys Beta(0.5,0.5)", 0.5, 0.5),
("Haldane Beta(0,0)", 0.001, 0.001), # 근사
("약정보 Beta(2,2)", 2, 2),
("강정보 Beta(10,10)", 10, 10),
("p~0.5 Beta(20,20)", 20, 20),
]
mle = y / n
print(f"데이터: n={n}, y={y}")
print(f"MLE: p_hat = {mle:.4f}\n")
print(f"{'사전분포':25s} | {'사전 평균':>8s} | {'사후 평균':>8s} | {'유효 n':>6s} | {'데이터 가중':>8s}")
print("-" * 75)
for name, alpha, beta in priors:
prior_mean = alpha / (alpha + beta) if (alpha + beta) > 0 else 0.5
post_mean = (y + alpha) / (n + alpha + beta)
eff_n = alpha + beta
data_weight = n / (n + alpha + beta)
print(f" {name:23s} | {prior_mean:8.4f} | {post_mean:8.4f} | {eff_n:6.1f} | {data_weight:8.4f}")
# 사후 분산 비교
print(f"\n{'사전분포':25s} | {'사후 분산':>10s} | {'95% 신용구간':>20s}")
print("-" * 65)
for name, alpha, beta in priors:
a_post = y + alpha
b_post = n - y + beta
post_var = (a_post * b_post) / ((a_post + b_post)**2 * (a_post + b_post + 1))
post_mean = a_post / (a_post + b_post)
# Beta 분포의 근사 95% 구간 (정규 근사)
import math
sd = math.sqrt(post_var)
lower = max(0, post_mean - 1.96 * sd)
upper = min(1, post_mean + 1.96 * sd)
print(f" {name:23s} | {post_var:10.6f} | ({lower:.4f}, {upper:.4f})")10.2 Step 2: scipy 구현 (정규-정규 켤레와 MLE 비교 시뮬레이션)
사전분포의 정밀도에 따른 베이즈 추정량과 MLE의 MSE를 시뮬레이션으로 비교한다.
import numpy as np
from scipy.stats import norm, beta
np.random.seed(42)
# 정규-정규 켤레: X ~ N(theta, sigma^2), theta ~ N(mu0, tau^2)
theta_true = 3.0
sigma2 = 4.0 # 기지
mu0 = 0.0 # 사전 평균
n_obs = 10 # 표본 크기
n_sim = 10000
tau2_values = [0.1, 1.0, 4.0, 16.0, 100.0, 10000.0]
print(f"정규-정규 켤레 시뮬레이션: theta_true={theta_true}, sigma2={sigma2}, n={n_obs}")
print(f"사전: theta ~ N({mu0}, tau^2)\n")
print(f"{'tau^2':>8s} | {'MSE(MLE)':>10s} | {'MSE(Bayes)':>10s} | {'Bayes 우월?':>10s} | {'수축도':>8s}")
print("-" * 65)
for tau2 in tau2_values:
mse_mle = 0
mse_bayes = 0
for _ in range(n_sim):
data = np.random.normal(theta_true, np.sqrt(sigma2), n_obs)
x_bar = np.mean(data)
# MLE
theta_mle = x_bar
# 베이즈 추정량
precision_data = n_obs / sigma2
precision_prior = 1 / tau2
theta_bayes = (precision_data * x_bar + precision_prior * mu0) / \
(precision_data + precision_prior)
mse_mle += (theta_mle - theta_true)**2
mse_bayes += (theta_bayes - theta_true)**2
mse_mle /= n_sim
mse_bayes /= n_sim
shrinkage = precision_prior / (precision_data + precision_prior)
print(f" {tau2:6.1f} | {mse_mle:10.4f} | {mse_bayes:10.4f} | "
f"{'O' if mse_bayes < mse_mle else 'X':>10s} | {shrinkage:8.4f}")
print(f"\n이론적 MSE(MLE) = sigma^2/n = {sigma2/n_obs:.4f}")
print("tau^2가 작을수록 수축이 강함 → 사전이 부정확하면 MSE 증가")
print("tau^2가 클수록 수축이 약함 → MLE에 수렴")
# 이항-베타에서 다양한 p에 대한 MSE 비교
print(f"\n=== 이항-베타: MLE vs Bayes MSE (n=20, 다양한 p) ===")
n_binom = 20
alpha_prior, beta_prior = 1, 1 # 균등 사전
p_values = np.arange(0.05, 1.0, 0.1)
print(f"{'p':>6s} | {'MSE(MLE)':>10s} | {'MSE(Bayes)':>10s} | {'차이':>10s}")
print("-" * 45)
for p in p_values:
# 이론적 MSE
mse_mle_th = p * (1-p) / n_binom
# 베이즈 MSE: E[(p_B - p)^2] 시뮬레이션
mse_b = 0
for _ in range(n_sim):
y_sim = np.random.binomial(n_binom, p)
p_bayes = (y_sim + alpha_prior) / (n_binom + alpha_prior + beta_prior)
mse_b += (p_bayes - p)**2
mse_b /= n_sim
print(f" {p:.2f} | {mse_mle_th:10.6f} | {mse_b:10.6f} | {mse_b - mse_mle_th:+10.6f}")11 응용 분야
| 분야 | 베이즈 추정 활용 | 구체적 예시 |
|---|---|---|
| 임상시험 | 적응적 설계, 사전 정보 통합 | 역사적 대조군 데이터를 사전분포로 |
| 자연어처리 | 스무딩, 언어 모형 | 라플라스 스무딩 = Beta(1,1) 사전 |
| 추천 시스템 | 콜드 스타트 문제 | 사전분포로 인기도 기반 추정 |
| 보험수리 | 신뢰성 이론 | 경험적 베이즈 보험료 산정 |
| 스포츠 분석 | 선수 능력 추정 | 수축 추정 (리그 평균 방향) |
| 메타 분석 | 다중 연구 결합 | 계층 베이즈 모형 |
12 관련 주제
선행 지식
상위 주제
관련 포스트
- 최대우도추정량 — MLE와 베이즈의 비교 대상
후속 주제
- 추정량 평가: 손실함수와 의사결정 이론 — 베이즈 위험과 빈도주의 위험의 통합
- 구간추정: 베이즈 신용구간 (Ch.9) — 사후분포 기반 구간 추정
13 참고 문헌
- Casella, G. & Berger, R. L. (2002). Statistical Inference (2nd ed.). Duxbury. Chapter 7, Section 7.2.3.
- Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A. & Rubin, D. B. (2013). Bayesian Data Analysis (3rd ed.). CRC Press.
- Jeffreys, H. (1961). Theory of Probability (3rd ed.). Oxford University Press.
- Berger, J. O. (1985). Statistical Decision Theory and Bayesian Analysis (2nd ed.). Springer.