베이지안 통계(Bayesian Statistics)는 통계적 추론의 한 방법으로, 확률을 주관적인 신념의 정도로 해석하고, 새로운 데이터를 관찰할 때 이 신념을 갱신해 나가는 접근법입니다. 베이지안 통계는 베이즈 정리(Bayes’ Theorem)를 기반으로 하며, 사전 확률(prior probability)과 사후 확률(posterior probability)을 사용하여 추론합니다. 다음은 베이지안 통계의 주요 개념과 과정에 대한 설명입니다.
참조 : 사후 확률http://www.statdc.com/?p=774
베이즈 정리 (Bayes’ Theorem)
베이즈 정리는 다음과 같은 형태로 표현됩니다:\(\)
\[ P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} \]
여기서,
- \( P(A|B) \): 사건 B가 발생한 후 사건 A가 발생할 조건부 확률 (사후 확률, posterior probability)
- \( P(B|A) \): 사건 A가 발생한 후 사건 B가 발생할 조건부 확률 (우도, likelihood)
- \( P(A) \): 사건 A의 사전 확률 (prior probability)
- \( P(B) \): 사건 B의 전체 확률 (evidence)
베이지안 통계의 주요 개념
1.사전 확률 (Prior Probability):
- 데이터 관찰 이전에 우리가 가지고 있는 믿음이나 지식을 나타내는 확률입니다.
- 예를 들어, 질병의 유병률, 과거 경험 등을 바탕으로 설정합니다.
2.우도 (Likelihood):
- 주어진 데이터가 특정 파라미터 값을 가질 확률입니다.
- 데이터가 주어졌을 때, 그 데이터가 특정 가설 하에서 얼마나 잘 설명되는지를 나타냅니다.
3.사후 확률 (Posterior Probability):
- 데이터를 관찰한 후에 사전 확률을 업데이트한 결과로 얻어진 확률입니다.
- 새로운 데이터를 통해 사전 확률을 갱신하여 얻은 확률 분포입니다.
베이지안 추론 과정
1.사전 확률 설정:
- 문제에 대한 초기 믿음이나 지식을 바탕으로 사전 확률을 설정합니다.
2.데이터 수집 및 우도 계산:
- 데이터를 수집하고, 주어진 데이터가 특정 파라미터 값일 때의 우도를 계산합니다.
3.사후 확률 계산:
- 베이즈 정리를 사용하여 사전 확률과 우도를 결합하여 사후 확률을 계산합니다.
4.결론 도출 및 의사결정:
- 사후 확률을 바탕으로 추론을 하고, 이를 통해 의사결정을 내립니다.
베이지안 통계의 장점
- 직관적 해석: 사전 확률과 사후 확률을 통해 문제를 직관적으로 해석할 수 있습니다.
- 정보 갱신 가능: 새로운 데이터가 들어올 때마다 사후 확률을 갱신하여 더 정확한 추론이 가능합니다.
- 복잡한 문제 해결: 복잡한 문제나 불확실성이 높은 문제를 다룰 때 유용합니다.
베이지안 통계의 단점
- 사전 확률의 주관성: 사전 확률을 설정하는 데 주관성이 개입될 수 있습니다.
- 계산 복잡성: 베이지안 추론은 계산이 복잡할 수 있으며, 특히 고차원 문제에서는 계산 비용이 많이 듭니다.
예제: 베이지안 추론
다음은 베이지안 추론을 사용하여 동전을 던졌을 때 동전이 공정한지 여부를 판단하는 예제입니다.
1.사전 확률:
- 공정한 동전일 확률 \( P(Fair) = 0.5 \)
- 치우친 동전일 확률 \( P(Biased) = 0.5 \)
2.우도:
- 10번 동전을 던져서 7번 앞면이 나올 확률
- 공정한 동전의 경우 \( P(7 Heads | Fair) \)
- 치우친 동전의 경우 \( P(7 Heads | Biased) \)
3.사후 확률 계산:
- 베이즈 정리를 사용하여 계산합니다.
from scipy.stats import binom
# 사전 확률
P_Fair = 0.5
P_Biased = 0.5
# 우도 계산
n = 10 # 동전을 던진 횟수
k = 7 # 앞면이 나온 횟수
P_7Heads_Fair = binom.pmf(k, n, 0.5) # 공정한 동전
P_7Heads_Biased = binom.pmf(k, n, 0.7) # 치우친 동전 (예: 앞면 확률 0.7)
# 사후 확률 계산
P_7Heads = P_7Heads_Fair * P_Fair + P_7Heads_Biased * P_Biased
P_Fair_7Heads = (P_7Heads_Fair * P_Fair) / P_7Heads
P_Biased_7Heads = (P_7Heads_Biased * P_Biased) / P_7Heads
print(f"공정한 동전일 사후 확률: {P_Fair_7Heads:.4f}")
print(f"치우친 동전일 사후 확률: {P_Biased_7Heads:.4f}")
이 예제는 10번의 동전 던지기에서 7번 앞면이 나온 데이터를 바탕으로, 동전이 공정한지 여부를 추론하는 과정을 보여줍니다. 베이즈 정리를 사용하여 사전 확률을 업데이트하고, 사후 확률을 계산합니다.