본문 바로가기

ML/Statistics

Distribution(1) - 이산확률분포(Binomial, Multinomial, Geometric, Negative Binomial)

앞선 포스팅에서 확률변수와 확률모형에 대해 다루었습니다. 확률분포란, 어떤 확률변수 x가 가지는 확률을 수학적으로 모델링한 것입니다. 이때, 확률변수가 이산형이냐, 연속형이냐에 따라 종류가 다릅니다. 그리고 분포를 모델링하는 함수를 확률분포함수라고 하며 각각을 pmf(probability mass function), pdf(probability density function)라고 부릅니다. 이항분포, 정규분포, 포아송분포, 카이제곱 분포 등 많은 분포들이 존재하며 통계를 공부하면서 익숙한 분포들이 많습니다. 이번 포스팅 시리즈는 익숙하지 않은 분포들에 대해 어떤 확률변수를 모델링한 분포인지 숙지하는 것을 목적으로 합니다. 이산형과 연속형으로 나누어서 각각 포스팅하겠습니다.



1. 이항분포(Binomial distribution)

단 1회 experiment의 outcome이 성공 혹은 실패의 경우만 가지는 확률 변수 X의 결과를 모델링한 분포를 베르누이 분포(Bernoulli distribution)이라고 합니다. 그리고, 이 베르누이 분포를 따르는 1번의 experiment를 베르누이 시행이라고 부릅니다. 이처럼 베르누이 분포는 단 1회의 experiment에 대해 다루며, 성공의 확률을 p라고 정의했을 때, 이 p를 parameter로 갖게됩니다. 아래는 베르누이 분포의 pmf입니다.


하지만, 우리는 단 1번만 실험하는 경우가 아니라 여러번 실험을 합니다. 이렇게 베르누이 시행을 n번 반복적으로 시행할 때, n번 중의 성공 횟수를 확률변수 X로 하는 분포가 바로 이항분포(Binomial distribution)입니다. n번의 베르누이 시행은 서로 독립이라고 가정합니다. 아래는 이항 분포의 pmf입니다. 


이항분포를 보고 재미있는 것이 생각났습니다. 우리가 메이플스토리와 같은 RPG게임을 하다보면 주문서의 확률이 적혀있고, 해당 주문서의 능력치를 아이템에 전달시키고자할 때, 유저의 입장에서는


'아이템에 기본으로 주어진 업그레이드 강화 횟수 내에서 몇번이나 강화가 될 것인가?'

에 대해 궁금할겁니다. 몇개의 주문서가 소요가 될 것인가?라는 물음에 대하여, 해당 주문서의 강화 결과는 성공/또는 실패인 베르누이 실행이므로 이를 업그레이드 가능 횟수만큼 실행하는 이항분포로 모델링할 수 있습니다. 그리고 평균 소요 횟수(=주문서의 개수)와 얻고자하는 옵션과 비교해서 의사결정을 내릴 수 있지 않을까? 하는 생각을 해보았습니다. 제가 기억하는 메이플 인기 아이템은 냄비 뚜껑입니다. 제가 플레이를 할 당시만해도 방패 아이템의 종류가 많지 않았고, 이 아이템의 옵션이 나쁜편이 아니라 고레벨 유저들도 많이 찾는 아이템 중 하나였습니다. 그런데, 냄비뚜껑은 저레벨의 몬스터에서 드롭이 되었기 때문에 저레벨유저들의 인생역전 아이템으로 여겨졌었죠. 이 아이템에 강화를 해본다고 가정해봅시다. 주문서 당 가격 등등 고려할 것이 많지만 간단히 모델링해봤습니다.


이미지 출처 : http://egloos.zum.com/chyren/v/3849093

  • 확률변수 X : 해당 아이템(냄비 뚜껑)의 제한된 업그레이드 가능 횟수(7회)에서 강화가 성공할 횟수

  • 강화 주문서 : 방패 방어력 10% 주문서(10%의 확률로 물리방어력 +20, 마법방어력 +10) (의로 했습니다.)

  • 문제의식 : 7번 중에서 한번이라도 성공해서 좋은 옵션을 붙일 것인가? 아니면 옵션이 조금 낮더라도 확률이 높은 주문서를 사용할 것인가?
  • 확률 분포 : B(n = 7, p = .1)

다음은 이를 구현한 code입니다.


같은 아이템을 30번 정도 시뮬레이션 강화를 시도해서 7번 중의 평균 성공횟수를 도출해보았습니다. 이론적인 기대값(npq)보다도 실제 실험 결과가 더 낮습니다. 10%보다는, 옵션이 더 낮더라도 확률이 더 높은 주문서를 사용하는 것이 낫겠네요. 제가 100번도 시행해봤지만 같은 결과를 얻었습니다. 아이템 강화는 조금이라도 확률이 높은 주문서를 사용하는 것이 낫겠습니다. (모델링하고 나서 보니까 방패 방어력 주문서가 굉장히 싸졌네요.. 이럴 거면 한방을 노려보는 것이 좋을 수도 있겠습니다)

2. 다항분포(Multinomial distribution)

베르누이 시행은 event가 성공과 실패, 두 가지 경우만 다루는데 때에 따라 2가지 이상의 결과에 대해 다루어야하는 경우도 있습니다. 주사위의 경우, 나올 수 있는 눈의 종류는 1~6까지 6개로 이와 같이 k(≤n)개의 outcome을 가질 수 있는 experiment를 n번 시행할 때, 확률 변수 Xi를 i번째의 outcome이 나온 횟수로 모델링한 분포가 다항분포(Multinomial distribution)입니다. 여기서 Xi는 서로 독립입니다. 앞서 말한 주사위로 예를 들자면, 확률변수 Xi는 주사위의 눈금에 따라 나온 횟수가 되겠네요. 그리고 pk는아래는 다항 분포의 pmf입니다.


3. 기하분포(Geometric distribution)

기하분포(Geometric distribution)는 베르누이 시행이 처음 성공할 때까지의 시행횟수를 확률변수 X라고 했을 때, 이 확률변수 X의 분포를 말합니다. 기하분포의 pmf는 정의만으로도 유추가 가능합니다. 1-p가 n-1만큼 반복되다가 마지막 n번째에 p의 확률을 가지면 되므로 우리는 pmf를 아래와 같이 쓸 수 있습니다.


앞서 살펴본 이항분포, 다항분포가 각각 n번의 시행 내에서 관심있는 사건이 발생한 횟수에 초점을 두었다면, 기하분포는 제한된 시행횟수가 아니라 관심있는 사건이 발생할 때까지의 횟수에 대해 다룹니다.

위의 메이플 예제를 기하분포로써 생각해보면, 1번만 주문서 강화가 성공해도 이익이라고 생각하고, 강화를 시도해본다고 합시다. 우리는 의사결정을 하기 위해서 이 문제를 다음과 같이 정의해 볼 수 있습니다.


  • 확률변수 X : 10% 주문서가 성공할 때까지의 시행 횟수
  • 확률분포 : Geo(p=.1)

이때, 기하분포의 평균은 1/p이므로, 평균 시행횟수가 10회임을 알 수 있으며, 이는 업그레이드 강화 횟수(7회)보다 많으므로 매우 도박적인 시행임을 깨달을 수 있습니다.

4. 음이항분포(Negative Binomial distribution)

음이항분포도 베르누이 시행을 기반으로합니다. 기하분포가 첫 성공에 관심이 있었다면, 음이항 분포는 k번의 성공 횟수에 중점을 둔 확률분포입니다. 확률변수 X를 k번 성공이 발생할때까지의 시행횟수라고 정의하면, 이 확률분포가 음이항분포(Negative Binomial distribution)입니다. 베르누이 시행의 확률 p와 성공횟수 k를 parameter로 한, 음이항분포의 pmf는 아래와 같습니다. 



전체 x번의 시행 중에 k번이 성공(p)이고, (x-k)번이 실패(1-p)입니다. 전체 x번의 시행 중에서 마지막 x번째에서는 성공으로 끝나므로 우리는 x번째에는 항상 성공(p)임을 알고 있는 상태입니다. 따라서, 나머지 (x-1)번 중에서 (k-1)개의 성공횟수를 조합으로 정해주면 pmf가 완성됩니다.



Reference

[1] https://ratsgo.github.io/statistics/2017/05/28/binomial/

[2] https://datascienceschool.net/view-notebook/56e7a25aad2a4539b3c31eb3eb787a54/

[3] http://blog.acronym.co.kr/440

[4] http://separk1031.tistory.com/entry/%EA%B8%B0%ED%95%98%EB%B6%84%ED%8F%AC-%EC%9D%B4%ED%95%AD%EB%B6%84%ED%8F%AC-%ED%91%B8%EC%95%84%EC%86%A1-%EB%B6%84%ED%8F%AC-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC

[5] http://godrag77.blogspot.com/2011/07/negative-binomial-distribution.html