사전분포에 대한 고찰
$\ $베이즈 추론에서, 어떤 사전확률분포를 선택해야 하는가에 대한 논쟁을 아직도 계속되고있다. 이에 대한 문제들을 짚고 넘어가자. 또한, 데이터셋이 증가함에 따라 사전분포의 영향이 어떻게 변해가는 지에 대해 살펴보자
주관적 사전분포 vs 객관적 사전분포
$\ $단어의 어감이 한국어로 넘어오면서 이질감이 생기는데, 객관적(objective) 사전분포는 사후분포에 거의 영향을 끼치지 않을 정도로 어느정도 거리를 두고 물러서 있는, 객관성을 유지하려는 사전분포 정도로 해석하면 될 듯 하다. 반대로 주관적(subjective) 사전분포는 사후분포에 분명이 영향을 끼치며, 우리가 이미 알고있는 도메인 지식이나, 꼭 반영해야만 하는 연구자의 사전 지식이 포함된 분포로 이해하자. 엄격히 얘기해서, 객관적 사전분포는 확률 변수 전 범위에 걸쳐 같은 확률값 $p$를 같는 경우에만 해당된다. 예를 들어 확률 변수가 [0,1] 에서 정의 돼있을 때, [0,1] 전 범위에서 \(p = 1\)인 경우에만 객관적 사전분포로 볼 수 있다. [0, 0.5]에서는 \(p = 1\)을 만족하지만, [0.5 , 1] 에서는 \(p \neq 1\)인 경우, uniform 분포로 볼 수 없으며 객관적 사전분포로 볼 수 없다. 아래와 같은 이미지에서, 파란색 줄은 완벽하게 객관적 사전분포로 이해할 수 있으나, 정규분포의 모양을 닮은 붉은 색 사전분포는 분명히 정보를 포함하고 있고, 보라색 선에 해당하는 선은 $p$ 전체 범위에 걸쳐 uniform하지 않으므로, 객관적 사전분포로 볼 수 없다.

사전 정보를 포함한 주관적 사전분포를 사전분포로 사용할 때에는, 해당 분포를 택한 데에 대한 이유를 분명히 할 필요가 있다.
알아두면 좋은 사전분포 형태들
감마분포
$\ $양의 실수에 걸쳐 분포하는 감마분포는 다음과 같이 표기한다. \(X \thicksim Gamma(\alpha, \beta)\). 사실 감마분포는 랜덤 변수의 지수 분포에 대한 일반화된 형태이며 다음과 같다. :
\(\alpha\)값은 이 분포의 확률밀도함수의 형태에 더욱 flexibility를 더해주며, 따라서 주관적인 사전분포를 더욱 정확히 표현하도록 돕는다. \(Gamma(\alpha, \beta)\)에 대한 밀도 함수는 다음과 같다 :
여기에서 \(\Gamma(\alpha)\)는 감마 ‘함수’이며, \((\alpha,\beta)\) 값의 쌍에 따라 다음과 같이 변한다.
figsize(12.5, 5)
gamma = stats.gamma
parameters = [(1, 0.5), (9, 2), (3, 0.5), (7, 0.5)]
x = np.linspace(0.001 ,20, 150)
for alpha, beta in parameters:
y = gamma.pdf(x, alpha, scale=1./beta)
lines = plt.plot(x, y, label = "(%.1f,%.1f)"%(alpha,beta), lw = 3)
plt.fill_between(x, 0, y, alpha = 0.2, color = lines[0].get_color())
plt.autoscale(tight=True)
plt.legend(title=r"$\alpha, \beta$ - parameters");

The Wishart 분포
$\ $지금까지, 스칼라인 랜덤 변수를 봐왔으나, 랜덤 매트릭스 형태에 대한 분포 또한 존재한다. 특히, Wishart 분포는 모든 positive semi-definite matrice 에 대한 분포이다. 이것이 왜 유용한가 하면, 공분산 매트릭스들은 positive definite matrice 이고, 따라서, Wishart 분포가 공분산 매트릭스에 대한 적절한 사전분포로 사용될 수 있기 때문이다. 아래의 \(5 by 5\)형태와 \(20 by 20\)형태의 Wishart 분포를 참고하자.
positive definite matrices :
n = 4
for i in range(10):
ax = plt.subplot(2, 5, i+1)
if i >= 5:
n = 15
plt.imshow(stats.wishart.rvs(n+1, np.eye(n)), interpolation="none",
cmap = "hot")
ax.axis("off")
plt.suptitle("Random matrices from a Wishart Distribution");

$\ $해당 매트릭스들이 symmetry라는 점에 주목하자. 이 점에 대해 약간의 문제가 추후 발생할 수는 있으나, 이 점에 대해 나중에 구체적으로 다루기로 한다.
베타분포
$\ $베타분포는 베이지안 추론에서 자주 사용돼며 이 책의 내용들에서 이미 자주 봐왔다. 랜덤 변수 $X$가 베타 분포로 표현돼 있으면 \((\alpha,\beta)\) 파라미터 쌍을 이용해 다음과 같이 확률밀도 함수를 표현한다. :
여기에서 또한 $B$는 베타 ‘함수’이며, 랜덤 변수 $X$는 오직 범위 [0, 1]에서만 정의된다.
figsize(12.5, 5)
params = [(2, 5), (1, 1), (0.5, 0.5), (5, 5), (20, 4), (5, 1)]
x = np.linspace(0.01, .99, 100)
beta = stats.beta
for a, b in params:
y = beta.pdf(x, a, b)
lines = plt.plot(x, y, label = "(%.1f,%.1f)"%(a,b), lw = 3)
plt.fill_between(x, 0, y, alpha = 0.2, color = lines[0].get_color())
plt.autoscale(tight=True)
plt.ylim(0)
plt.legend(loc = 'upper left', title="(a,b)-parameters");

$\ $특히 비율이나 확률 $p$ 를 \(Beta(\alpha,\beta)\) 로 설정하면 편할 수 있다. 이항분포에서 얻게되는 데이터를 우리가 관측하고 있다고 하자.\(X \thicksim Binomial(N,p)\)이고 우리가 $p$ 를 모르는 상태이다. 이 경우에 우리의 사후분포는 다시 베타분포를 따르게 된다. 즉, 다시 말하면, 다음을 따른다. \(p|X \thicksim Beta(\alpha + X, \beta + N - X)\). 마지막으로 강조하면..! 이항분포를 따르는 관측과 Beta 사전분포를 결합하면 다시 Beta 사후분포로 표현할 수 있다. 이것은 상당히 유용항 특성이므로 잘 기억하자.