본문 바로가기
이항분포 모수 추정과 베타분포 - 본격 Conjugate - 이걸 암산가능? (+디리클레분포)

몇 회 전 "베이지안 통계의 시작 : 모수분포 추론 - 무정보분포 Uniform로부터 - MAP 맛보기
"편에서 Uniform 분포가  베타분포의 특수한 형태라고 이야기했었고, 확률을 할 때 "베이지안에 사용하자 - β분포에 관하여" 편에서 베타분포를 알아보기까지 했는데도 이 베타분포라는 걸 이제까지 한 번도 안 써봤잖아요? 이제 어디다 쓰는지 한번 보면 좋겠네요. 그때는 장담컨대 그때 그것을 읽었을 당시에 대충 봤을 거라 생각합니다만. 어쨌든 이제 다시 들여다보면 베타분포에 대한 눈이 번쩍 뜨일 것입니다.  

자, Binomial의 베이지안 갱신(추론)에 대한 것을 알아보도록 합시다. 

β베타분포는 Bernoulli나, Binomial처럼 성공/실패에 대한 이항 결과에 대한 확률 분포를 다루는 것이잖아요? Bernoulli와 Binomial의 경우에는 성공의 횟수가 확률 변수인 것에 비하여 β는 성공의 "비율"을 확률 변수로 하는 경우를 다룹니다.라는 부분이 제일 핵심이 되겠군요. 그리고 베타분포는 mode가 제일 중요합니다. 그 mode에서 가장 확률밀도가 가장 높거든요. 

$$mode = \cfrac{\alpha - 1}{\alpha + \beta -2}$$ 였다는 점도 다시 한번 상기.

사실상 베이지안이기 때문에 Binomial의 경우에도 사전분포야 말로 말 그대로 연속확률분포이기만 하면 어느 것이든 별로 관계가 없긴 합니다.만 계산이 엄청 복잡해지는 점을 감안해야 하겠습니다. 어쨌든 Binomial에서 성공 횟수를 m이라고 두고, 성공확률을 p라고 둔다면, 연속형 분포의 베이즈룰은  

$$  P(p|m) = \cfrac{P(m|p)\cdot P(p)}{P(m)} = \cfrac{P(m|p)\cdot P(p)}{\int P(m|p) P(p) dp}  \cdots (*)$$

이런 식인데요 이때, Likelihood를 Binomial Distribution으로 Prior Distribution을 Beta분포로 놓은 케이스를 들여다보도록 하겠습니다. 

Likelihood의 경우,
$P(m|p) = \binom {n}{m} p^m (1-p)^{(n-m)}$의 Binomial Distribution으로 나타낼 수 있고, (m이 성공 횟수)
Prior의 경우, 
$P(p) = \cfrac{1}{B(\alpha, \beta)} p^{\alpha-1} (1-p)^{\beta-1} $ 의 베타분포로 두고요. 이거 베타분포 pdf 기억나지요? - p가 성공확률, 즉 성공비율입니다. -

그러므로, (*)식의 베이즈 정리에 대해서 정리해 보면 말이죠, (분자/분모를 따로따로 일단 정리해 보면요)

분자는 $$ P(m|p) \cdot P(p)  = \binom {n}{m} p^m (1-p)^{(n-m)} \cdot \cfrac{1}{B(\alpha, \beta)} p^{\alpha-1} (1-p)^{\beta-1} \\= \binom {n}{m} \cfrac{1}{B(\alpha, \beta)} p^{m+\alpha-1} (1-p)^{n-m+\beta-1} $$

의 모양새가 됩니다. 

그리고 분모는 
$$
\begin{align*} 
P(m) &=  \int^{1}_{0} P(m|p) P(p) dp \\ &= \int_{0}^{1}\binom{n}{m} p^m (1-p)^{(n-m)} \cfrac{1}{B(\alpha, \beta)} p^{\alpha-1}(1-p)^{\beta-1} dp \\ &= \binom{n}{m}\cfrac{1}{B(\alpha, \beta)} \int _{0}^{1} p^{m+\alpha-1} (1-p)^{n-m+\beta-1} dp \\&= \binom{n}{m}\cfrac{1}{B(\alpha, \beta)} \cdot B(m+\alpha, n-m+\beta)\\ &\because  \int^{1}_{0} \cfrac{p^{m+\alpha-1}(1-p)^{n-m+\beta-1}}{B(m+\alpha, n-m+\beta)} = 1
\end{align*}
$$
복잡하지만 쩝, 뭐 이렇게 됩니다. 

이걸 분자/분모를 한꺼번에 써 놓으면!
$$ 
\begin{align*}
P(p|m) &= \cfrac{\binom {n}{m}  \cfrac{1}{B(\alpha, \beta)} p^{m+\alpha-1} (1-p)^{n-m+\beta-1}}{\binom{n}{m}\cfrac{1}{B(\alpha, \beta)} \cdot B(m+\alpha, n-m+\beta)} \\ &= B(\alpha+m, \beta+n-m) \end{align*}
$$

이거 가만히 보니까 어떤 느낌인지 알겠나요? 

Binomial 분포에서 n이 전체 시행수잖아요? m이 성공수이고요, 그러면 n-m이 실패수잖아요? 그러니까, α번 성공, β번 성공인 사전 확률분포에서 추가로 n번 시행 했을 때, α+m는 기존 성공수 + 추가 성공수를 의미하고요, β+(n-m)은 기존 실패수 + 추가 실패수를 의미합니다. 으헛? 으하하. 사실 다른 거 다 까먹어도 되니까 이 의미만 알면 됩니다. ★★★★★ 별 별 5개입니다. 

결국, Posteiror = Beta(추가성공, 추가실패)라는 의미죠. 야, 이거 엄청난 이야기 아닌가요?

자, 이 정도 했으면 Binomial - Beta 분포에 대한 Posterior는 암산으로 가능합니다.

예를 들어본다면, 우리 과에는 매력 있는 여사친이 있습니다. 이 친구는 소개팅을 나가면 45% 정도의 애프터 성공률을 보입니다. 약 20번 하면 9번의 성공이죠.  자, 이 여사친이 4학년이 되면서 실제로 소개팅을 13번 해 봤더니, 4번의 애프터를 받았습니다. 약 30.7%의 성공률인데요, 이때 Posteriror가 어떻게 되는지 암산해 보시죠.

자, 이때 Prior는 어떻게 되지요? Beta(9, 11)입니다. Likelihood는 4번 추가성공, 9번 추가실패입니다. 그러면 Posterior는 Beta(9+4, 11+9) = Beta(13,20)이 됩니다. 암산 완료. 헙. 이게 다예요.

 

여튼 원래 45% 정도의 성공률에서 30.7%의 성공의 Likelihood로 갱신했더니 더 현실적인 쪽으로 분포가 Update 되었지요? 갱신된 베타분포의 mode값은 (13-1)/(13+20-2) = 0.387이니까, 약 38.7% 정도에서 최댓값을 갖습니다. 이것도 MAP이라고 생각하면 모수인 성공확률 p는 0.387로 추정한다고 이야기할 수도 있겠군요.

소개팅을 더 해서 계속 업데이트를 하다 보면 진짜 분포를 알 수 있겠다. 뭐 그런 이야기인 겁니다. Conjugate 관계를 가지니까 엄청 쉬워지죠! 이제 이걸 알았으니 이걸 모르는 사람들이 너무 불쌍하다는 생각이 든다면 그것은 또 그것대로 만족입니다. 

이항분포에서 성공확률이 p라서 그냥 p로 표현했는데, p가 사실은 이항분포의 모수잖아요? 그래서 베이즈 통계에서는 p를 θ로 표현을 많이 합니다. 모수니까요. 결국, 결과식을 다시 쓰면 

$$ 
\begin{align*}
P(\theta|m) &= \cfrac{\binom {n}{m} \cfrac{1}{B(\alpha, \beta)} \theta ^{m+\alpha-1} (1-\theta)^{m-n+\beta-1}}{\binom{n}{m}\cfrac{1}{B(\alpha, \beta)} \cdot B(m+\alpha, n-m+\beta)} \\ &= Beta(\alpha+m, \beta+n-m) \end{align*}
$$

이런 식으로 표현하는 경우도 많으니까 알아두면 좋겠습니다. 

참고로 다항분포를 Likelihood로 두면, 디리클리분포가 Prior와 Posterior가 같은 형태인 Conjugate 관계입니다. 다항분포는 이항분포의 확장인 셈인데, 2개 이상의 성공 케이스를 다루는 분포입니다. 가만히 보면 이항분포나 마찬가지라는 것을 알 수가 있는데 잘 보세요.

어떤 독립시행 n번 시행에서 k가지의 결과가 나올 수 있고, 각 결과값이 나타날 확률이 각각 $p_1, p_2, \cdots ,p_k$ 라고 할 때 i 번째의 값이 xᵢ회 나타날 확률이 이항분포의 확장인 다항분포입니다. 이때의 pdf는 말이죠.

$$ P({ x }_{ 1 },{ x }_{ 2 },\cdots,{ x }_{ k };n,{ p }_{ 1 },\cdots,{ p }_{ k })=\frac { n! }{ { x }_{ 1 }!{ x }_{ 2 }!\cdots{ x }_{ k }! } { p }_{ 1 }^{ { x }\cdots{ 1 } }{ p }_{ 2 }^{ { x }\cdots{ 2 } }\cdots{ p }_{ k }^{ { x }_{ k } } $$

이런 식입니다. 

그리고, 디리클리분포는 다음과 같습니다. 

$$ f_{Dirichlet}({ p }_{ 1 },\cdots{ p }_{ k };{ \alpha  }\cdots{ 1 },\cdots,{ \alpha  }_{ k })=\frac { 1 }{ B(\alpha ) } \prod _{ i=1 }^{ k }{ { { p }\cdots{ i } }^{ { \alpha  }\cdots{ i }-1 } } $$

$$ where \,\, B(\alpha )=\frac { \prod _{ i=1 }^{ k }{ \Gamma ({ \alpha  }_{ i }) }  }{ \Gamma (\sum _{ i=1 }^{ k }{ { \alpha  }_{ i } } ) } $$

여기에서 
$p=(p_1, p_2, \cdots, p_k)$는 디리클레분포의 성공확률 값 벡터이고, $\alpha = (\alpha_1, \alpha_2, \ldots, \alpha_K)$ 는 디리클레 분포의 모수입니다. 너무 복잡하죠.

이것도 사실 너무 수식에 파뭍혀 있으면 의미를 파악할 수가 없습니다. 어려워요. 똑같이 암산의 의미로 본다면 - 유도는 잊어요 - 똑같은 모양의 Dirichlet 사후 분포가 나옵니다. 마찬가지로 최초 디리클리 Prior에서부터 추가로 i번째 이벤트가 얼마나 더 발생했는가로 디리클리 posterior가 계산될 수 있습니다. 

이게 무슨 소리인가 싶은데, 예를 들면 아주 쉽게 이해할 수가 있으니까, 예를 들어서 이야기해 보겠습니다. 

여사친의 예를 또 들어서 안사귐, 썸, 사귐을 관측할 수 있는 사건이라고 한다면 말이죠.

사전분포로 여사친이 3번 소개팅을 하고 안 사귐 1, 썸 1, 사귐 1번을 했습니다. 그러면, 이 분포를 디리클레 분포로 표현하면,

Dirichlet(1,1,1)

이런 식이 되겠습니다. 

이제 여사친이 10번을 더 소개팅을 했습니다. 이때 안 사귐 4, 썸 5, 사귐 1번을 하더라 하면, 순서대로 더해주기면 하면 사후분포가 됩니다. 

Dirichlet(1+4, 1+5, 1+1) = Dirichlet(5, 6, 2) 

이게 사후분포입니다. 오홓. 

그러면 한번 더 여사친이 6번을 더 소개팅을 했습니다. 이때 안 사귐 1, 썸 2, 사귐 3번을 하더라 하면, 또 똑같이 순서대로 더해주기면 하면 됩니다. 

Dirichlet(5+1, 6+2, 2+3) = Dirichlet(6, 8, 5) 

이게 또 사후분포가 됩니다. 하하하. 간단하죠? 이것이 바로 Conjugate의 힘!입니다. 참고로로 말을 시작했는데, 긴 이야기가 되어 버렸습니다. 

베타분포와 디리클레분포에 대한 암산 이야기는 여기서 끝.

 

친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -