이번 포스팅에서는 여러 자연현상이나 사회현상들을 통계적으로 다루는 데 있어서 필수적인 개념인 확률 (probability) 분포와 확률밀도함수 (probability density function)에 대해 알아봅시다. 이에 덧붙여 평균, 분산 및 표준편차를 구하는 방법에 대해서도 짚어보겠습니다.
평균, 분산 및 표준편차의 개념들이 생소하게 느껴지시는 분들은 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다.
여기서 설명하는 확률밀도함수의 개념을 이해하고 실용적으로 사용하기 위해서는 정적분에 대해 알고 있어야 합니다. 정적분의 정의와 미분 및 부정적분과의 관계에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다.
확률 분포
확률 분포는 서로 독립적이면서도 불연속적인 여러 사건들이 일어날 가능성이 각각 얼마나 되는지를 수치화한 개념이라고 할 수 있습니다. 독립성과 불연속성이라는 조건들이 좀 추상적으로 들릴 수 있는데요. 고전적인 예시인 정육면체 주사위의 예시를 통해 이를 좀 더 자세히 살펴볼 수 있습니다.
정육면체 주사위는 6개의 면을 가지고 있고, 1부터 6개 까지의 눈들이 각 면에 찍혀 있죠. 그래서 주사위를 한 번 던지면 맨 위에 나오는 면에 있는 눈의 갯수는 1부터 6 사이의 값을 가질 수 있습니다. 이 때 서로 다른 갯수의 눈이 나오는 사건들은 동시에 일어날 수 없으므로 서로 독립적입니다. 예컨대 3과 4가 동시에 나올 수 없는 거죠.
주사위의 눈의 갯수는 1부터 6까지의 자연수이므로, 6가지의 가능성만이 존재합니다. 예를 들어서 1.5 같은 숫자는 나올 수 없기 때문에, 주사위를 던져서 발생하는 사건들은 불연속성을 가지고 있는 것입니다.
독립성과 불연속성에 입각해서, 주사위를 한 번 던졌을 때 각 숫자가 나올 확률이 얼마나 되는지를 특정할 수 있게 되는데, 이것이 바로 주사위 눈의 확률 분포가 되겠습니다. 일반적으로 확률 분포는 여러가지 가능성 중에 특정한 사건이 일어날 확률을 숫자로 나타낸 것이며, 모든 경우의 수에 대한 확률을 더했을 때 1 (100%)이 되는 것이 특징입니다. 참고로 숫자로 나타낸 확률에 100을 곱하면 퍼센테이지 (percentage : %)단위로 변환이 됩니다. 예를 들어서 확률이 0.25라고 표현하는 것과 25%라고 표현하는 것은 동일한 것입니다.
정육면체가 가진 대칭성, 즉 서로 다른 방향에서 쳐다봐도 정사각형 모양이라는 점을 생각해보면 1부터 6까지의 숫자가 나올 확률은 1/6 (6 분의 1)으로 동일하다는 결론을 도출해낼 수 있습니다. 주사위를 N번 던지는 상황을 상정했을 때, N이 매우 크다면 각각의 숫자가 나온 횟수는 N/6에 수렴한다는 게 되는거죠.
확률 분포를 알고 나면, 이로부터 평균 (average 혹은 mean), 분산 (variance) 및 표준편차 (standard deviation)를 구할 수 있는데요. 표준편차는 분산의 제곱근으로 주어지며, 분포가 얼마나 넓게 퍼져 있는지를 수치화한 양이라고 볼 수 있습니다. 참고로 주사위 눈의 갯수의 평균은 3.5, 분산은 35/12 입니다만, 이 수치들의 실용적인 의미를 따지기는 좀 어렵죠. 어차피 주사위를 던져서 나오는 결과는 완전히 랜덤이니까 말입니다.
확률 분포를 구현해볼 수 있는 예시로는 FPS 게임에서의 데미지를 생각해볼 수 있습니다. 최근에 나오는 게임들에서 어깨에 스치는 것과 헤드샷을 맞는 것을 비교하면, 당연히 HP가 깎이는 정도가 다를 것입니다. 하지만 다른 조건이 동일한 경우라도 확률 분포에 따라 HP에 주는 데미지가 달라진다면, 게임 플레이에 있어서 불확정성이 생기고 그만큼 재미가 더해질 것 같습니다. 만약 이를 구현한다면, 밸런스에 따라 데미지의 평균값과 표준편차를 미리 정한 다음, 그에 맞는 확률분포를 상정해서 난수를 발생시키는 방식을 취하지 않을까 싶습니다.
확률분포의 개념은 보험료를 책정하는데 있어서도 사용할 수 있습니다. 사람의 수명을 x축으로 두고, 각각의 수명만큼 살았던 인구 비율을 y축으로 해서 히스토그램을 그려볼 수 있는데요. 이를 두고 수명의 확률 분포라고 생각할 수 있습니다. 다시 말해서 누군가가 특정 시간만큼의 수명을 가질 확률은, 실제로 그만큼 살았던 인구 수에 비례한다는 시각입니다. 물론 사고로 인한 변수가 있겠습니다만, 모집단이 되는 전체 인구수가 많고 질병으로 인한 사망을 고려하는데 있어서는 합리적이라고 볼 수 있죠.
이렇게 수명의 확률분포를 알고나면, 기대 수명을 산출할 수 있고 사람이 살아있는동안 보험료를 얼마나 받아야 회사 입장에서 이윤이 남는지를 따질 수 있게 됩니다. 물론 개인의 질병 관련 이력에 따른 변수가 있기 때문에, 실제로 보험사에서 계산을 하는 방식은 이보다 훨씬 더 복잡한 알고리즘을 가지고 있을 것입니다. 이런게 좀 비인간적으로 들릴 수 있습니다만, 회사도 이윤을 남겨야 직원들을 먹여살릴 수 있으니 어쩔수 없는 부분이 있다고 하겠네요.
확률밀도함수
확률밀도함수는 연속적인 값을 가지는 변수의 확률 분포를 나타내기 위한 개념입니다.
대표적인 예시로서 양자역학이 있는데요. 입자가 정확히 어디에 있는지 그 위치를 특정하는것은 불가능하지만, 대신에 그 입자가 서로 다른 위치에서 발견될 확률을 구할 수 있습니다. 그런데 입자가 정확히 기준점 혹은 원점에서 발견될 확률은 0으로 수렴하게 됩니다. 입자의 위치는 연속적인 값을 가지는 실수로 표현되고, 무한한 경우의 수가 있기 때문이죠. 원점 근처로 범위를 좁혀도 여전히 무한하게 많은 위치들이 있습니다.
따라서 특정 위치에 있을 확률을 정의하기보다는, 특정한 범위 내에 존재할 확률을 정의하는 것이 더 타당한 접근방법이라고 할 수 있습니다. 그리고 이는 위치에 대한 확률밀도함수의 정적분으로 주어지게 됩니다.
변수가 가질 수 있는 값의 전체 범위에 대해 확률밀도함수를 정적분 하면, 1이 됩니다. 이는 앞에서 언급한 대로 모든 경우의 수에 대한 확률을 더하면 1이 된다는 의미를 가지고 있죠. 불연속적인 값을 가지는 변수의 경우와 비슷한 논리에 따라서 평균, 분산 및 표준편차를 계산할 수 있습니다.
확률밀도함수에 대해 알아보는 김에, 누적분포함수 (cumulative distribution function, 줄여서 CDF)와 특성함수 (characteristic function)에 대해서도 같이 알아두면 좋습니다.
누적분포함수는 이름에서 유추할 수 있듯이 확률밀도함수를 변수의 최소값에서부터 특정한 값 까지 적분해서 얻어지는 함수를 말합니다. 비교 대상으로 삼고자 하는 변수의 기준값이 있고 확률분포나 확률밀도를 따르는 표본을 추출했을 때, 표본이 가진 변수의 값이 기존에 염두해두었던 기준값에 비해 작을 확률이 얼마인가를 나타내는 것이 바로 누적분포함수입니다. 당연히 이 확률은 기준값에 따라 달라지게 됩니다.
변수가 가질 수 있는 최소값을 인자로 주면 누적분포함수는 0이 될 것입니다. 추출된 표본이 가지는 변수의 값은 무조건 최소값보다 클 것이기 때문이죠. 반면에 변수가 가질 수 있는 최대값이 인자로 들어가면 누적분포함수가 1이 됩니다. 이 때는 기준값이 최대값이므로 표본이 가질 수 있는 값은 이보다 반드시 작은 것입니다.
특성함수는 변수의 확률 분포를 다른 시각에서 바라볼 수 있는 방법인데요. 수학적으로 특성함수는 확률밀도함수의 푸리에 변환으로 주어집니다. 분산과 표준편차가 유한한 값을 가지는 확률밀도함수를 가지고 특성함수의 형태를 알아낼 수 있을뿐만 아니라, 푸리에 역변환을 통해 특성함수로부터 확률밀도함수를 계산하는 것도 가능합니다.
컴퓨터를 이용한 시뮬레이션을 할 때 특정한 확률밀도함수를 따르는 변수의 표본을 추출해야 하는 경우가 있습니다. 확률밀도함수와 누적분포함수의 형태가 복잡한 경우, 직접적으로 난수를 생성하는 것은 상당히 어렵겠죠. 이 때 사용해볼 수 있는 방법 중 하나로서 기각 샘플링이 있는데요. 구체적인 알고리즘과 예시는 다음 포스팅에 소개되어 있습니다.
이공계 뿐만 아니라 사회과학 분야에서도 널리 쓰이는 확률분포 중의 하나가 정규 분포 (normal distribution)입니다. 연속적인 값을 가지는 변수의 확률밀도함수가 가우스 함수로 주어지는 경우를 이야기하는데요. 가우스 함수의 정의와 특징에 대한 더 자세한 사항은 다음 포스팅에 소개되어 있습니다.
이번 포스팅에서는 하나의 변수에 대한 확률 분포에 대해서 다루었습니다만, 관심사가 되는 변수가 여러개인 경우에 대해서도 확률 분포나 확률밀도함수의 개념을 일반화할 수 있습니다. 그러면 상관계수를 통해서 서로 다른 변수들이 서로 얼마나 연관이 있는지를 수치화할 수 있게 되는데요. 상관계수에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다.
앞에서 확률밀도함수가 등장하는 예시로서 양자역학을 언급했었는데요. 확률밀도함수는 파동함수의 절대값의 제곱으로 주어지고, 파동함수는 슈뢰딩거의 파동방정식에 따라 결정됩니다. 여기에 대한 더 자세한 내용은 다음 포스팅에 소개되어 있습니다.
물이나 공기 같은 유체를 이루는 분자들이 확산되는 현상을 수학적으로 다루는 데 있어서도 확률밀도함수가 필요합니다. 주어진 시간동안 분자가 특정한 거리만큼 이동할 확률을 정의하기 위해 변위에 대한 확률밀도함수가 개입하는데요. 이를 통해 입자들이 확산되면서 갯수 밀도가 어떻게 변하는지를 도출해낼 수 있습니다. 다음 포스팅에 더 자세한 내용이 소개되어 있습니다.