데이터과학, 베이즈 통계, 그리고 수학

요즘 내 고민 중의 하나는 데이터과학과 사회 통계를 인문사회과학도에게 어떻게 하면 쉽게 전달할까 하는 문제이다. 문제는 수학 지식이다.

그런데 데이터과학과 베이즈통계 등 최근에 대세가 되고 있는 분야를 아무리 둘러봐도 고등학생 시절 반에서 몇 등 정도 공부했던 인문사회과학도가 이해하지 못할 정도의 고난도 수학은 거의 없다. 문제는 세 가지라고 생각된다.

첫째, 수학적 사고에 익숙하지 못하다.수학적 사고에 익숙해지려면 주어진 문제나 자신의 생각을 자꾸 수학적으로 표현해 보아야 한다. 물론 그런 사고를 뒷받침할 수 있도록 수학 공부를 별도로 해야 하겠지만. 학교에서 이러한 습관을 길러주면 가장 좋겠지만, 개인적인 노력으로도 충분히 목표를 이룰 수 있다. 그런데 현실에서는 수학적 사고를 기르기는 커녕 일찍부터 수학에 문을 닫아버리는 경우가 너무 많다. 수학은 이공계 전공자들의 전유물이라고 간주해버리는 것이다. 

둘째, 어느 분야의 지식이라도 기꺼이 배우겠다는 적극적인 태도가 필요하다. 인문계니 자연계니 하는 것은 편의적 구분일 뿐이다. 현실 문제에서 그런 구분이 어디 있겠는가? 현실 문제를 해결하는데는 인문적 사고도 필요하고 자연과학적 혹은 공학적 사고도  필요할 때가 부지기수이다. 인문-자연 구분은 창의적 발상과 효과적인 접근에 방해요소일 뿐이다. 문제는 해결하거나 못하거나 둘 중 하나이다. 문제가 접근하는 사람의 사정을 봐가면서 제기되지는 않는다.

셋째, 인문사회과학도가 알아들을 수 있을 만큼 친절한 강의가 필요하다. 언젠가는 인문사회과학도가 충분히 이해하고 즐길만한 데이터과학이나 베이즈 통계 교재가 나오겠지만 아직은 아닌 것 같다. 이점도 큰 장애요인 중 하나이다. 수학을 사용하되 인문학 혹은 사회과학적 접근을 유지하는 교재가 얼른 출간되면 좋겠다. 그런데 그게 그다지 전망이 밝지 않다. 그런 교재를 쓸 능력을 지닌 젊은 인문학자나 사회과학자는 다른 일에 바빠서 교재를 쓸 의사나 시간이 없고, 의사나 시간이 있는 노학자들은 데이터과학이나 베이즈 통계에 관한 교재를 작성하기는 커녕 새로운 학문을 소화하기조차 어렵다.

필자도 공부해보니 많이 어렵다. 수학 지식도 일천하고 수학적 사고도 별로 없는 사람이다보니 데이터과학이나 베이즈 통계에 대한 공부가 무척 어렵다. 교수직을 수행하면서 짬을 내어 공부하는 정도로는 너무 어려웠다. 다행히 일찍 교수직을 그만 둔 덕분에 시간이 좀 많아져서 집중 학습이 되니 배움의 속도가 확실히 빨라졌다. 효율성이라곤 하나도 없는 독학지만 좌충우돌하면서도 진전은 있다. 이제 공부의 9부 능선 정도는 올라가지 않았나 싶다. 사명감을 갖고 계속 전진하자. (2020-11-07)

전원과 도시는 양자택일이 아니다

전원생활을 해보지 않은 사람들은 전원에 살면 도회지의 삶을 모두 포기하는 것처럼 생각할 수 있다. 물론 전원에서 살면 생활의 중심이 도시에서 전원으로 이동한다. 하지만 도시적 삶이 일상에서 영 멀어져 버리는 것은 결코 아니다. 라이프 스타일은 분명 어느 곳에서 사느냐에 의해서 크게 영향을 받지만 자신이 어떤 삶을 원하는가 라는 선호에 의해서도 그에 못지 않게 영향을 받는다.

아내와 나는 대도시에서 30-40km쯤 떨어진 곳에 터를 잡았다. 서울로 치면 강남에서 분당 정도의 거리이다. 거리상 전원이라기보다 교외라고 말할 수 있겠다. 하지만 이곳은 전원이라고 보는 편이 정확하다. 자동차 소리조차 들리지 않는 적막한 시골 촌락이니 말이다. 우리는 대도시에 자주 나가지도 않는다. 한달에 두세 번 도시를 방문할 뿐이다. 도시 외출은 일상이라기보다 하나의 행사이다.

도회지에서 가져온 생활 습관 중 하나는 커피 마시기이다. 특별한 일이 없는 한 우리는 하루 한 차례 커피를 마신다. 직접 원두를 갈아서 정성들여 내린 커피를 쿠키와 함께 먹는다. 커피 끓이기는 내 몫이다. 원두는 광주나 목포에 있는 스타벅스에서 사오고 쿠키는 목포 수문당에서 사온다. 처음에는 이곳 저곳에서 원두를 사고, 쿠키도 여기저기에서 샀지만 몇 년만에 스타 원두에 수문 스콘/브라우니로 정착했다. 수 년 동안에 우리는 그보다 더 좋은 콤비를 찾기 어려웠다. 아내는 내가 내린 커피가 서울 강남이나 분당 정자에서 마셨던 핸드드립 커피에 못지 않게 맛있다고 좋아한다. 수문당의 쿠키는 대체가 불가할 정도로 맛있다. 사람이 만드는 것이니 항상 그렇지는 않지만 대부분 그렇다.

우리의 일상의 90%는 마을 안에서 이루어지고 나머지 대부분은 차로 10~20분 거리에서 충족된다. 발달한 택배 서비스 덕분에 가능한 일이기는 하지만 그렇지 않다고 하더라도 그냥 적응하고 살았을 것이다.

우리에게 전원과 도시는 양자택일이 아니다. 자신의 입맛대로 적당히 섞어서 살 수 있다는 말이다.

올 가을 첫 서리가 내렸다. 겨울이 온다는 신호이다. 어제 도동 어른이 선인장을 가지고 오셨는데, 즉시 화분에 심어서 실내로 들여 놓았다. 그렇지 않았더라면 얼었을 뻔 했다.

두 달 전에 소장을 길게 잘라내는 수술을 받고 사경을 헤매던 장모님이 건강을 많이 회복했다. 음식도 상당히 잘 드시고 재활운동도 열심이시란다. 자식들 효성에 감동한 저승사자가 발길을 돌렸나보다.

오지랖이 넓으면 시골에 살기 어렵다. 기존의 대인관계를 대충 대충 포기하면서 살 수밖에 없다. 흔히 하는 말로 사람 구실을 대충 포기하고 살아야 한다. 그렇다고 그것을 그렇게 아쉬워 할 필요가 있겠는가. 결국 머지않아 우리의 영혼은 다른 행성 여행을 시작하고 우리의 몸뚱아리는 5리터 항아리 속이나 0.5 입방미터도 되지 않은 나무 상자 속으로 들어가야 하는 운명이거늘. (2020-11-05)

베이즈 통계(9): 확률밀도, 연속확률분포, 공액사전분포, 퍼라미터 추정

퍼라미터 추정에 관한 사례를 하나 더 보자. 사전 약속 없이 일반인이 백악관에 들어갈 수는 없다. 그런데 아주 유명한 사람, 예컨대 전설적인 농구 선수인 샤킬 오닐(Shaquille O’Neal)이라도 그럴까? 사전 예약 없는 유명인이 백악관 입장에 성공할 확률을 묻는 질문이다.

실험의 결과가 성공과 실패 두 가지이고, 시행들이 상호독립적이라면, 앞 게시글에서 공부한 이항확률분포를 적용할 수 있으나 이항확률분포는 이산확률변수에만 적용된다. 우리가 다루는 성공 확률은 0부터 1 사이의 어떤 값도 취할 수 있기 때문에 연속확률변수(continuous random variable)이다. 성공 확률 자체가 확률변수인 경우 적절한 분포는 베타확률분포(Beta probability distribution)이다. 이항 분포에서는 성공의 횟수가 확률변수인데, 베타분포에서는 성공의 비율이 확률변수이다. 베타분포하면 야구선수의 타율을 떠올리면 좋다. 베타(beta)와 배트(bat)를 묶으면 기억하기 편하다. (베타분포에 관해서는 확률분포(6): 베타분포 를 참조하시오.)

이산확률변수에서 연속확률변수로의 확장는 심각한 도약이다. 그러나 그것은 반드시 건너야 하는 강이다. 그 강에 놓인 첫번째 허들은 확률밀도와 확률밀도함수라는 개념이다.

과연 섁(Shaq)이 예약없이 백악관에 들어갈 수 있을까? 이 질문에 대한 합리적인 대답은 그렇다 아니다라는 양자택일이 아니라 확률로 표현될 수 있을 것이다. 섁의 백악관 입장이 허용될 확률이 0.01이다, 0.001이다, 0.0001이다, 0.2다, 0.3이다, 0.5다, 0.7이다…0.9999 따위로 추정되는 것이 합리적이라는 말이다. 섁의 백악관 입장이 허용될 확률(성공확률)을 라고 표기하자. 보다 정확히 말하자면, 는 섁의 백악관 입장이 허용되는 것에 대한 우리 믿음(짐작)의 정도이다. 는 우리가 추정하려는 퍼라미터이다. 의 값은 무수히 많을 수 있다. 성공가능성이 전혀 없다는 믿음을 의미하는 0에서부터 100% 성공가능하다는 믿음을 의미하는 1 사이에 존재하는 무수히 많은 수가 모두 퍼라미터가 될 가능성이 있다는 말이다.

이산확률분포의 경우 확률함수는 이항확률분포에서 보았듯이 확률변수의 각 값에 대한 확률을 부여한다. 그런데 연속확률변수의 경우 아무리 작은 범위일지라도 확률변수 값은 무수히 많기 때문에 각 확률변수 값은 거의 0에 가까운 확률을 가질 것이다. 그렇다면 연속확률분포에서 특정한 확률변수 값의 확률은 0인가? 만약 0이라고 한다면 연속확률분포의 면적이 1이 되어야한다는 정의에 문제가 발생한다. 개별확률변수값의 확률을 모두 더하면 1이 되어야 하는데, 개별 확률변수 값의 확률이 0이라면 그 값들의 총합은 1이 아니라 0이 되어 버리는 것이다. 그래서 확률은 0에 아주 가깝돼 정작 0은 아니어야 한다. 그래서 확률밀도함수(probability density function)는 아래와 같이 정의되고 우변이 확률밀도이다.

확률밀도(probability density)는 확률(probability)과 구분하기 위해 물리학에서 밀도라는 개념을 차용하여 만들어진 개념이다. 이산확률분포에서 높이가 확률인 것처럼 연속확률분포에서는 높이가 확률밀도이다. 아래 그림에서 오른쪽 그래프는 이산확률분포의 확률가 높이임을 보여주고, 왼쪽 그래프는 연속확률분포의 확률밀도가 높이임을 보여주고 있다.  ( 대신 라는 적분 기호로 표시되어 있으나 둘 다 0에 가까울 정도로 아주 미세한 크기의 밑변을 가리킨다.)

Probability density function

연속확률함수에서  혹은 는 확률이 아니라 확률밀도이다. 즉, 는 확률변수 의 값이 일 때의 확률밀도이다. 연속확률분포에서는 이산확률분포에서 사용되는 의미의 확률이 없다고 생각해도 무방할 것이다. 연속확률분포에서 확률분포(함수)는 항상 확률밀도를 낳는다. 섁의 성공확률밀도를 베이즈 정리로 표현하면 아래와 같을 것이다. 아직 이 식을 다 이해하지 못해도 상관없다. 곧 설명될 것이다.

좌변은 우리가 추정하려고 하는 사후확률밀도(posterior probability density)이다. 분자와 분모에 파란 글씨로 된 부분은 사전확률밀도이고 빨간 글씨로 된 부분은 우도이다. 우도와 사전확률의 곱은 결합확률이며, 분모에 0부터 1까지의 적분은 해당된 모든 결합확률밀도를 합하라는 지시이다. 이산확률분포를 설명할 때 언급했듯이 분모는 전체 합인 주변확률을 1로 만들어 분수의 값을 확률로 만들어 주는 정규화 상수(normalizing constant)이다. 연속확률변수에서는 주변확률밀도를 1로 만들어 분수의 값을 확률밀도로 만들어 주는 정규화 상수이다. 이산확률변수에서는 가 합을 나타내지만, 연속확률변수에서는 이 합을 표현한다.

베이즈 추론에서 이산확률분포에서 연속확률분포로 넘어가는 두번째 허들은 사전확률의 설정이다. 연속확률변수이니 하나의 사전확률이 있을 수 없고 무수히 많은 사전확률밀도가 존재하니 사전 확률(prior)은 사전확률분포(prior probability distribution)로 제시되어야 할 것이다. 그런데 성공확률의 확률분포로 베타 분포가 사용되니 사전확률분포로 베타확률분포을 채택하면 되겠다. 사전확률밀도가 베타확률분포를 따른다는 명제는 다음과 같이 간략히 표현될 수 있다.

에 아래첨자 0을 붙인 것이 사전확률밀도임을 나타내기 위해서이다. 베타확률분포는 퍼라미터 의 크기에 따라 아래와 같이 다양한 모습을 갖고 있다. 사전확률분포의 모습을 결정하는 퍼라미터인  를 우리가 구하려고 하는 미지의 퍼라미터(unkown parameter)인 와 구분하기 위해 하이퍼퍼라미터(hyper-parameter)라고 부른다.

Beta distribution - NtRand

이렇게 다양한 베타분포 중 우리 문제에서는 어떤 것을 사전확률분포로 채택할까? 두 개가 후보로 떠오른다. 하나는 보라색 그래프인데 그것은 연속균일분포이다. 사실 베타분포에서 하이퍼퍼라미터의 값이 둘 다 1이면 연속균일분포이다. 그 그래프는 0과 1사이에서 확률변수의 확률밀도 값이 모두 동일하다는 의미이다. 앞 게시글에서 균일분포가 비정보적(non-informative) 사전확률을 나타내는데 가장 많이 사용된다고 설명했다. 그런데 베타분포의 경우를 보면 비정보적이라는 말이 상대적이어서 베타분포의 여러 모양 중 가장 비정보적이라고 할 수도 없음을 알 수 있다. 그래프 중 U자 모양인 빨간색 그래프는 하이퍼퍼라미터가 둘 다 0.5일 때이다. 그것은 확률변수의 값이 0에 근접할 때와 1에 근접할 때 확률밀도가 가장 크고, 그 사이 값들에서는 확률밀도가 유사함을 보여준다. 이 그래프는 섁과 같은 유명인은 백악관 출입이 항상 허용될 것이라는 믿음(확률밀도가 1에 가까움)과 섁과 같은 대단한 유명인이라도 백악관 출입은 초청이나 사전 예약 없이 불가능할 것이라는 믿음(확률밀도가 0에 가까움)을 함께 나타내주는 것으로 볼 수 있다. 사실 이 그래프도 균일분포에 못지 않게 비정보적이다. 이 문제에 관해 우리는 둘 중에 후자인 를 사전분포로 채택하겠다. 그것은 아래와 같은 그래프이다.

사전확률분포를 정했으니 이번에는 우도 값을 정해야 한다. 우리가 손에 쥐게 되는 데이터는 시행 중 성공횟수가 될 것이다. 즉, 섁이 한번 시도해서(), 백악관에 들어가는 데 성공하거나(), 실패할 것이다(). 즉, 우도 값은 한번 시도한다면 베르누이 분포, 여러 번 시도한다면 이항분포를 따를 것이다. 즉, 베르누이 분포나 이항분포를 가지면 우도를 계산할 수 있다. 문제는 퍼라미터()가 무한히 많은 수라는 사실이다.  하나의 사전확률이 아니라 사전확률분포가 주어졌을 때 우도를 계산해야 한다. 그래서 우도도 아래와 같은 이항확률함수로 된 확률밀도함수(probability density function, pdf)로 정의되어야 한다.

만약 우리가 얻은 데이터가 섁이 한번 시도해서 백악관에 들어가는 데 실패했다는 것이라면, 일 것이므로 이항확률함수는 아래와 같을 것이다.

이제 사전확률분포와 우도함수를 구했다. 이제 식 (1)에서 보듯이 사후확률밀도를 계산하려면 정규화 상수를 구해야 한다. 그런데 거기에 적분이라는 엄청난 복병이 숨어있다. 적분 계산을 통해서 정규화 상수를 구하는 것은 대단히 번거롭고 심지어 때로는 불가능하기조차 하다. 사실 그것은 오랫동안 베이즈 추론이 널리 사용되지 못한 이유이기도 하다. 그래서 학자들은 적분을 우회할 수 있는 길을 찾아냈다. 그것의 첫번 째가 공액이라는 기법이다.

공액(켤레라고도 부름, conjugacy)이란 사전확률분포를 우도함수와 동일 계열의 확률분포로 설정하는 것을 말한다. 공액으로 설정된 사전확률분포를 공액사전확률분포(conjugate prior probability distribution, 혹은 간단히 conjugate prior)이라고 부른다. 위의 백악관 출입 허가 문제에서는 베타-이항 공액(beta-binomial conjugate)이 적용되었다. 베타 사전분포(beta prior distribution)와 이항 데이터(binomial data)를 결합하면, 베타사후분포를 얻는다. 사전분포와 사후분포가 하이퍼 퍼라미터만 다른 베타분포인 것이다. 이 사례의 경우 미지의 퍼라미터에 대한 우리의 믿음이 데이터를 얻은 후 베타분포의 하이퍼퍼라미터가 달라지는 방식으로 업데이트된 것이다. 이를 공식으로 표현하면 다음과 같다.

우리가 사전확률분포로 가정한 베타분포의 하이버퍼라미터가 이다. 그런데, 섁이 한번 시도해서 실패했으므로, 이다.그러면,

사후확률분포는 아래 그림과 같은 베타확률분포가 될 것이다.

사전확률분포와 사후확률분포의 모습이 사뭇 다르다. 사전확률분포에서는 극단적인 확률변수 값들의 모두 큰 확률밀도(높이가 높음)를 보였으나, 섁이 백악관 진입에 실패했다는 데이터를 얻은 후에 구한 사후확률분포에서는 0쪽에 가까운 확률변수 값들의 확률밀도는 그대로나 1쪽에 가까운 확률변수 값들의 확률밀도는 크게 낮아졌다. 다시 말해 섁이 한번 실패한 후에는 유명인이 백악관에 사전 약속 없이 들어갈 수도 있다는 데 대한 우리의 믿음이 크게 떨어졌다.

공액 덕분에 사후확률분포를 충격적일 정도로 쉽게 구했다! 확률 계산이 항상 이렇게 쉬우면 좋으련만….

만약 우리가 사전확률분포로 을 택한다면, 사후확률분포가 어떻게 될까? 데이터는 동일하다고 하자. 사전확률분포는 균일분포 모습일 것이다. 그렇다면 사후확률분포의 모습은 어떨까? 하이퍼퍼라미터를 계산하면 아래와 같다.

그래프로는 아래와 같다.

사후확률분포가 사선이다. 확률변수 값이 0에 가까울수록 확률밀도가 커지고 1에 가까이 갈수록 확률밀도가 작아진다. 앞에서 구한 사후확률분포와 비교해 보면 확률변수 값이 0에 가까울수록 확률밀도가 커지고, 1에 가까울수록 작아진다는 점에서는 유사하지만, 확률변수 값이 중간 지대에 속할 때는 확률밀도가 좀 많이 다르다. 분명한 점은 동일한 데이터가 주어졌을지라도(즉, 동일한 우도일지라도) 우리가 선택한 사전확률분포에 따라 사후확률분포가 달라진다는 사실이다.

셱이 다시 두 번 더 백악관 진입을 시도했다가(), 결국 한 번 성공했다()고 하자. 그런데 만약 처음 진입을 시도했을 때와 같은 경비라면 시행이 독립적이라고 보기 어려울 것이다. 때문에 매번의 시도가 서로 독립 사건이라고 가정하자. 그러면 사전확률분포가 일 경우 사후확률분포의 하이퍼 퍼라미터는 아래와 같을 것이다.

결과는 마찬가지이겠지만, 한번의 시행으로 업데이트된 하이퍼퍼라미터를 새로운 시행으로 업데이트하는 식으로 접근할 수도 있다. 그러면 1차 업데이트된 하이퍼퍼라미터가 2차 업데이트에서는 사전확률분포의 하이퍼퍼라미터가 된다. 사전확률분포의 하이퍼퍼라미터는 다음과 같다.

이 하이퍼 퍼라미터를 새로운 데이터로 업데이트하면 아래와 같게 된다.

(3)과 (4)의 결과가 동일하다. 이 업데이트 결과를 그래프로 표시하면 아래와 같다.

베타분포가 다시 업데이트되었음을 한 눈에 알 수 있다. 한 번의 성공이 확률밀도의 분포를 상당히 바꾸어 놓았다. 확률변수 값이 0과 1에 근접하면 확률밀도가 거의 0이고, 확률변수 값이 0.35 전후일 때 확률밀도가 가장 크다. 동일한 사전확률분포일 때라도 얻어진 데이터에 따라 사후확률분포(사후확률밀도함수)가 크게 다름을 알 수 있다. 또한 새로운 시행을 통해서 데이터가 계속 수집되면 사후확률분포도 지속적으로 업데이트될 수 있음을 알 수 있다.

새로 구해진 사후확률분포는 위에서처럼 그래프로 제시될 수도 있지만, 모멘트(예컨대 평균과 분산)를 추가하면 좋을 것이다. 베타분포의 평균과 분산은 다음과 같은 공식으로 구할 수 있다.

(4)에 제시된 하이퍼퍼라미터 를 위 공식에 대입하면 아래와 같은 값을 얻는다.

이상 공액이 베이즈 추론의 아주 편리한 지름길을 제공하고 있음을 살펴보았다. 베이즈 추론에 자주 사용되는 공액사전분포(conjugate priors)는 beta prior + binomial data –> beta posterior의 경우 외에도 여러 가지가 있다.

gamma prior + Poisson data –> gamma posterior

normal prior + normal data –> normal posterior

공액분포의 자세한 리스트는 아래의 위키피디아 링크를 참조하기 바란다.

Table of conjugate distributions

공액이 편리한 기법이기는 하지만, 모든 베이즈 추론 문제에 공액사전분포가 적용될 수 있는 것은 아니다. 그래서 다음 포스팅에서는 공액분포 적용 사례를 좀 더 살펴보고 나서 베이즈 정리의 분모에 있는 적분을 우회하는 또 하나의 방법인 시뮬레이션, 그 중 MCMC (Markov Chain Monte Carlo) 방법을 공부하겠다. (2020-11-03)

노년…상자 속의 삶

노년의 삶이란 여러 모로 상자 속의 생활이다. 무엇보다 재정적으로 그렇다.

아주 소수를 제외하고 노인들은 매달 고정된 수입 속에 살아야 한다. 그것도 넉넉치 않은 수입으로 말이다. 연금 생활자가 특히 그러하다.  통상 연금 액수는 사회생활을 시작한 지 얼마 되지 않은 사회 초년생이 버는 정도의 수입을 넘지 않는다. 그런데 사회 초년생과의 다른 점은 수입이 늘 가능성보다 오히려 줄어들 가능성이 훨씬 높다는 사실이다.

어느 달 지출이 갑자기 증가하면 노인들은 그 후유증을 오래 앓아야 한다. 물론 이론적으로는 안정된 수입이 있기 때문에 별다른 일이 발생하지 않고 생활비를 아껴쓰면 돈을 조금씩이나마 채곡채곡 모을 수도 있다. 하지만 우리네 삶이란 게 어찌 그렇게 되던가. 살다보면 늘 예상치 않은 지출이 생기기 마련이다. 그래서 노인은 가난하다.

노년의 삶이 재정적으로만 박스 안인 것은 아니다. 노화로 인해 체력이 약화되고 의욕이 줄어들면서 재력이 있어도 노인은 상자 안에 갇히게 된다. 늙어갈수록 박스는 점점 더 작아지고 언젠가는 누구에게나 그 박스가 요양원의 침대 정도로까지 축소되고 만다.

그래서 노년을 보낼 곳을 잘 택해야 한다. 어떤 환경이 좋은가에 대해 누구에게나 맞는 정답은 없을 것이다. 그것은 노인 각자의 선호에 달려 있다. 자연이 좋은 사람은 자연 속에, 도회적 삶이 좋은 사람은 도시 속에 터를 잡아야 할 것이다. 외로움을 많이 타는 사람은 가족이나 친지, 친구가 가까이 있는 지역이 좋을 것이고, 혼자서도 잘 지내는 사람은 호젓한 산 속이라도 문제가 없을 것이다. 추위를 많이 타는 사람은 따뜻한 곳이 좋을 것이고, 추위에 잘 견디는 사람은 기후가 크게 문제되지 않을 것이다. 집을 따뜻하게 하고 살면 되지 않는가 라고 생각할 수도 있겠지만, 겨우내내 집안에만 머물 수도 없지 않은가. 우리나라에는 겨울에 영하 10도는 말할 것도 없고 수시로 영하 20도까지 내려가는 지역이 드물지 않다. 반면에 겨우내내 영하 5도 이하로는거의 내려가지 않은 지역도 적지 않다. 이 작은 나라에서 기후와 기온이 지역에 따라 놀랍도록 큰 차이를 보인다. 특히 전원의 기온은 기상청이 공표하는 기온과 몇 도씩 차이가 난다는 점에 유의해야 한다. 끝으로 누구에게는 공통적이겠지만 병원들이 가깝고 근처에 훌륭한 요양시설이 있으면 금상첨화일 것이다.

노인들에게는 이사도 이동도 쉽지 않다. 노후에 지낼 지역은 신중히 선택되어야 한다. 충동적인 결정은 마음에 들지 않는 곳에 노년을 영영 갇히게 만들 수도 있다. 특히 전원 주택은 거래가 쉽게 이루어지지 않기 때문에 지역이 더욱 신중하게 선택되어야 한다.

어느 곳이라도 100% 만족스러울 수 있겠는가.  그리고 우리는 결국 현재의 환경을 받아들이고 거기에 적응하게 될 것이다. 그러나 기왕이면 아쉬움이나 불편함이 적은 곳이 좋지 않겠는가.

오늘도 나는 동네라는 박스 속에서 산다. 그러나 그 박스 밖의 세상을 일주일에 한 두번만 나가도 즐겁게 지낼 수 있는 곳에서 노년을 보낼 수 있음에 감사한다. 창 밖으로는 사시사철 아름다운 풍경이 보이고 문밖에만 나가면 한 겨울에도 별로 추위를 느끼지 않고 걸을 수 있으며, 소리에 민감한 내가 온갖 소음–특히 자동차 소음–으로부터 자유로운 곳에서 살 수 있음에 감사한다. (2020-11-02)

베이즈 통계(8): 우도와 퍼라미터 추정

앞 게시글에서 이항분포를 소개했다. 이번에는 그것을 퍼라미터와 우도(likelihood)의 관점에서 살펴보자. 이항분포는 두 개의 퍼라미터를 가진다고 했다. 동전을 3번 던졌을 때 윗면이 2번 나왔다. 그렇다면 성공확률()은 얼마일까? 성공확률은 이항분포의 퍼라미터 중 하나이다. 따라서 이 문제는 퍼라미터를 추정하라고 요구하고 있다. (시행횟수 n도 퍼라미터이지만 그것이 궁금할 일은 거의 없을 것이다.) 이 이항분포의 pdf는 다음과 같다.

이 pdf를 가지면 우리는 어떤 성공확률이든 우도를 계산할 수 있다. 위 식에서 성공확률을 넣으면 우도가 구해진다. 만약 성공확률이 0이라면(물론 실제로 그럴리는 없겠지만), 우도는 0이다. 조건부확률로 표현하면, 퍼라미터인 성공확률이 0일 때 동전을 3번 던져 2번 나오는 데이터를 관찰할 확률이 0이라는 말이다. 그렇다면, 성공확률이 0.1, 0.2, 0.3, 0.4,…1일 때의 각 성공확률을 같은 방식으로 추정할 수 있다. 아래는 그렇게해서 얻은 결과를 가지고 구성한 표이다.

성공확률() 우도(likelihood)
0 0
0.1 0.027
0.2 0.096
0.3 0.189
0.4 0.288
0.5 0.375
0.6 0.432
0.7 0.441
0.8 0.384
0.9 0.243
1 0

여기서는 11개의 경우만 제시했지만, 확률은 0부터 1 사이의 어떤 값도 가질 수 있으므로 사실 성공확률 값의 종류는 무한대이다. 퍼라미터가 무한대 존재한다는 말이다. 빈도주의 통계에서는 듣도보도 못한 현상이다.

편의상 두 가지 가설만 존재한다고 가정하자. 동전이 정직하다(p = 0.5이라고 두자)는 가설과 동전이 정직하지 못하다(p = 0.4이라고 두자)는 가설. 그리고 각 가설이 진실일 확률은 동일하다(각 0.5)고 가정하자. 각 가설의 사전확률(priors)이 각각 0.5라는 말이다. 그리고 동전던지기의 경우 우도함수가 이항확률함수이다.

그러면 베이즈 정리를 이용해서 먼저 동전이 정직하다는 가설부터 살펴보자. 동전을 3번 던져 2번 윗면이 나왔을 때 동전이 정직할 확률, 즉, 사후확률(posterior)을 구할 수 있는 사전확률(0.5)과 우도(0.375)가 구해진 것이다. 성공확률()이 0.5일 때 동전을 세번 던져서 두번 윗면이 나올 확률, 즉, 우도는 위 표에서 보듯이 0.375이다.

사전확률과 우도의 곱이 분자이니 쉽게 계산되고 이제 분모만 구하면 된다. 그런데 분모는 각 퍼라미터(가설)의 결합확률을 모두 합한 값이다. 그런데 계산을 간단히 하기 위해 동전이 정직하지 못한 경우 성공확률이 0.4라고 가정했다. 그러면 두 가지 경우만 있으니 분모 값은 아래와 같이 구해질 것이다. 퍼라미터가 0.5일 때 결합확률의 합이므로,

그렇다면, 동전이 정직하다는 가설의 사후확률은 다음과 같이 계산될 것이다.

사전확률은 0.5인데, 사후확률이 0.57이다. 동전던지기를 해서 세 번 중 두 번 윗면이나온다 라는 데이터를 얻고 나니 동전의 정직성에 대한 우리의 믿음이 0.5에서 0.57로 높아졌다.

반면에 동전이 정직하지 못하다는 가설의 경우, 분모는 퍼라미터가 0.5일 때 결합확률의 합이므로 앞의 경우와 동일하다. 따라서 사후확률은 아래와 같이 계산된다.

동전이 정직하지 못하다는 가설에 대한 우리의 믿음은 0.5에서 0.43으로 낮아졌다. 데이터가 수집되어 동전의 정직성에 관한 우리의 믿음이 갱신된 것이다.

다음 포스팅에서는 좀 더 복잡한 사례를 가지고 퍼라미터 추정을 보자. (2020-11-01)

백양사…여유…마음의 눈

어제 오후 늦은 시간에 백양사에 갔다. 둘째가 기분전환이 필요하다고 했다. 4-5년 전만 같아도 광주나 전주로 나갔겠지만 이제 둘째도 나이가 들어서인지 취향이 좀 바뀌었다. 물론 팬데믹 탓도 있겠지만.

백양사는 집에서 차로 20분 남짓이면 갈 수 있는 곳이니 나들이랄 것도 없다. 그래도 기분전환에는 좋은 곳이다. 봄에는 길가에 벛꽃이 우거지고, 가을이면 단풍이 가득해 특별히 좋지만, 사실 아무 때나 찾아가도 수십년 심지어 수백년 된 나무들, 그리고 백암산의 고혹적인 자태를 만날 수 있어 가성비가 최고인 곳이다.

더구나 백양사 근처에는 우리 식구가 즐겨가는 맛집도 몇 군데 있어 금상첨화이다. 어제는 저녁 식사 후에 맛있는 전통차를 파는 가게를 들렀다. 늦은 시간이라 그런 지 손님이 우리밖에 없었고, 주인 아주머니가 정성을 다해 준비한 차와 디저트를 내왔다. 20년 된 찻집이라는데 이렇게 좋은 곳을 어떻게 이제야 오게 되었을까. 차를 마신 후에는 보름달을 바라보며 산책까지 마치고 돌아왔다.

결국 마음이 문제였고, 여유가 관건이었다. 평생동안 나는 나들이를 가도 늘 쫓기듯이 다녔으니 제대로 보지도 느끼지도 못하고 다녔던 것이었다. 아마도 대학 1학년 때 이후 45년만에 처음으로 진정한 여유를 찾은 것 같다. 세상은 결국 눈이 아니라 마음으로 보는 보는 것이며, 세상을 보는 마음은 여유에서 나오는 것이리라.

대학을 졸업하고 세상 살이를 시작한 지 37년만에 은퇴하고 나는 비로소 세상을 관조하는 여유를 얻었다. 이보다 고마운 일이 어디 있겠는가.

덕분에 하루를 마치 천일처럼 산다. 살아있음을 마음껏 느낀다. 오늘이 마치 지구 여행의 마지막 날인 것처럼. 지나간 것을 안타까워하거나 아쉬워 하지 말고 매순간 새롭게 주어지는 현재를 사랑하고 만끽하자. 이렇게 살 수 있음을 하느님과 조상, 그리고 아내에게 감사하면서. (2020-10-31)

베이즈 통계(7): 함수, 확률변수, 확률함수, 확률분포

먼저 함수에 대해 분명하게 정의하자. 함수(function)는 어떤 변수의 입력값에 대해 유일한 출력값을 관계시키는 수학적 과정이다. 좀 더 세련되게 표현하면, 입력값에 대해 출력값을 매핑(mapping)하는 수학적 과정이다. 함수의 출력값은 종속변수라고 부르는 또 하나의 변수일 수 있다.

What is a Function

함수가 실제로 표시되는 방식은 의 예에서 보듯이 좌변은 입력값()의 함수값(function value) 을 표기하고, 우변은 입력값을 가지고 무슨 조치를 해야하는가를 말해주는 일련의 지시(instructions)를 표기한다. 이 예에서는 입력값을 제곱하라는 지시가 주어져 있다. 만약 그 지시를 따라서 구한 함숫값(function value)이 다른 변수값(예컨대 )으로 간주된다면 그 경우 함수는 다음과 같이 표기될 수 있다.

이 경우 함수는 어떤 변수(흔히 독립변수라고 함)의 값에 대해 다른 변수(흔히 종속변수라고 함)의 값을 일대일로 대응시키는 수학적 과정이다.

확률변수(random variable)는 표본공간의 각 원소에 대해 하나의 실수값을 대응시켜주는 함수이다.  표본공간(sample space)확률실험(random experiment)의 결과로 나오는 모든 사상(events)의 집합이다.

예컨대 두 개의 동전을 던지는 실험을 보자. 실험의 결과가 오직 우연에 의해 결정되므로 그것은 확률실험이다. 윗면(인물 형상이 있는 면)이 나오면 H, 아랫면이 나오면 T라고 하면, 나올 수 있는 실험결과는 로 네 가지일 것이다. 이것의 집합인 가 표본공간(sample space)이다. 이 표본공간의 원소를 숫자로 표현하려면, 윗면의 수(혹은 아랫면의 수)처럼 변수를 규정해주어야 한다. 그러면, 각 원소에는 2, 1, 1, 0이라는 수가 부여될 것이다. 이 때 윗면의 수가 바로 확률변수이다. 그것은 두 개의 동전 던지기라는 확률실험의 결과에 대해 일정한 수를 부여하는 함수이다. 이 예는 함수의 입력값이 문자로 되어 있지만, 만약 표본공간이 숫자로 되어 있다면, 입력값과 출력값이 동일할 것이다.

확률변수의 값은 확률을 갖는다. 여기서 확률은 표본공간에서 특정 원소가 차지한 비율이다. 위 예를 가지고 보면, 확별변수 값의 확률은 다음과 같다.

확률변수의 값(윗면의 수) 표본공간의 원소 확률(해당 원소의 비율)
2 HH 1/4 = 0.25
1 HT, TH 2/4 = 0.5
0 TT 1/4 = 0.25
1.00

이 표를 확률분포표(probability distribution table)라고 부른다. 그런데 확률분포를 나타내는데 있어 확률분포표는 그다지 효율적이 아니다. 확률변수의 값이 많아지면 표를 작성하는 일이 아주 번거로울 것이다.

그래서 확률함수(probability function)가 필요하다. 확률변수의 값에 대응하는 확률을 하나의 함수로 표기할 수 있다면 아주 간명하고 효율적일 것이다.  위의 동전던지기 실험은, 확률실험의 결과가 두 가지(윗면과 아랫면, 성공과 실패)이고, 각 시행은 독립적이며, 성공 확률이 바뀌지 않는다는 특징을 가지고 있다. 이러한 속성을 지닌 확률분포는 이항확률분포(binomial probability distribution)이며, 이항확률분포는 이항확률질량함수(binominal probability mass function, binomial pmf)로 표현된다. 이산변수와 연속변수를 구분하지 않고 확률밀도함수(probability density function, pdf)라고도 표기하므로 이항확률밀도함수(binomial probability density function, binomial pdf)라고 불러도 무방하다(이항확률분포에 관해서는 확률분포(1): 이항확률분포 를 참조하시오). 전에 올린 확률분포들에 관한 글들에서도 그랬듯이 필자는 후자를 따르겠다. 이항확률밀도함수는 아래와 같이 표기된다.

함수값을 대신에 로 표기했다. n번 시행에서 성공 확률이 p일 때 y번 성공할 확률을 의미한다. 여기서 np퍼라미터(parameter, 우리말로 모수라고 함)라고 부른다. 퍼라미터는 확률분포의 모양을 결정짓는다. 즉, 퍼라미터의 값에 따라 확률분포의 모양이 결정된다.

위의 사례를 이항함수 식의 관점에서 다시 살펴보면, 동전이 정직하다고 가정했을 때 성공확률(윗면이 나올 확률) p은 0.5이다. 만약 동전을 두 번 던졌는데 윗면이 2번 나왔다면 성공횟수 y는 2이고, 시행 횟수 n은 2이다. 그렇다면 퍼라미터의 값은  가 될 것이다. 이항함수 공식에 이 퍼라미터 값을 넣으면 아래 식을 얻는다.

이 식만 가지면 앞에서 제시한 확률분포표를 재현할 수 있다.

2 0.25
1 0.5
0 0.25
1.00

퍼라미터의 값을 바꾸면 다른 모습의 확률분포를 얻는다. 예컨대 시행횟수를 3으로 바꾸면, 퍼라미터는  이 되고, 확률밀도함수(pdf)는 아래와 같다.

이 식을 가지고 확률분포표를 구하면 아래와 같다.

3 0.125
2 0.375
1 0.375
0 0.125
1.000

성공확률 p의 값을 변경할 수도 있다. 정직한 동전이니 성공확률이 0.5이지만, 성공률을 낮추기 위해 조작된 동전이라면 성공확률이 0.4일 수도 있다. 그러면 확률밀도함수는 다음과 같을 것이다.

베이즈 추론은 퍼라미터를 추정(estimate)하는 경우가 많다. 베이즈통계를 위해 확률밀도함수가 필요한 또 다른 이유이다. 다음 게시글에서는 베이즈 추론을 통해서 퍼라미터를 추정해 보자. (2020-10-30)

베이즈 통계(6): 데이터와 우도

베이즈 추론에서 사전확률분포와 더불어 꼭 필요한 요소가 우도(likelihood)이다. 우도는 베이즈 추론 과정에 데이터가 들어오는 방식이다. 빈도주의 통계에서 데이터는 무작위(random)를 원칙으로 수집된 표본의 순서쌍 데이터 혹은 그것으로부터 도출된  표본 통계(sample statistics)의 형식으로 추론 과정에 들어간다. 그런데 베이즈 통계에서는 데이터가 우도라는 특수한 형식을 취하면서 추론 과정에 들어가는 것이다. 앞 게시글에서 베이즈 추론을 다음 식으로 제시했다.

이 식에서 빨간 글씨로 표시된 부분이 우도이다. 주어진 가설이 진실일 때 데이터가 관찰될 확률이 우도이다. 우도는 데이터가 수집되기 전에 예측되는 확률이 아니라 이미 수집된 데이터를 가지고, 가설이 진실이라는 조건 아래에서 회고적으로(retrospectively) 바라보는 확률이다. 사전확률과 달리 우도는 데이터가 손에 들어와 있어야 상상 가능하다.

우도는 우리가 궁극적으로 구하고자 하는 사후확률이라는 조건부확률의 역조건부확률(inverse conditional probability)이다. 우도에서는 가설과 데이터의 위치가 사후확률의 그것과 반대이다. 사후확률은 데이터가 관찰되었을 때 가설이 참일 확률이다. 즉, 데이터가 조건에 해당된다. 그런데 우도는 가설이 참일 때 데이터가 관찰될 확률이다. 즉, 가설이 조건으로 제시된다.

앞에서 든 예들을 상기해 보면, 유방암 문제의 경우, 유방촬영검사 결과가 양성일 때 유방암에 걸렸을 확률을 구하는 것이었고, 그 추론을 위해서는 유방암 환자가 유방촬영검사에서 양성일 확률이라는 역조건부확률을 구해야 했다. 스펠 체크 예제는, radom이라는 타이핑이 진짜 radom을 의도했을 확률, random의 오타일 확률, radon의 오타일 확률을 구해서 비교하는 문제였고, 그 추론을 위해서는 의도가 radom일 때 radom이라고 타이핑할 확률, random일 때 radom이라고 타이핑할 확률, radon일 때 radom이라고 타이핑할 확률이라는 역조건부확률이 필요했다.

예제에서는 풀이를 단순화하기 위해 역조건부확률을 그냥 제시했지만, 사실 현실에서 그것을 구하기 쉽지 않다. 병원 데이터베이스에서 역조건부확률에 해당되는 통계를 찾아내기도 하고, 여론조사 결과에서 데이터를 가져오기도 한다. 그런데 결합확률표만 이용가능할 때도 있고, 빈도의 교차표만 이용 가능할 때도 있다. 그런 경우에는 곱셈법칙을 이용해서 역조건부확률을 구해야 한다. 그도 저도 아닌 경우에는 사후확률에 대한 역조건부확률이 무엇인지를 분명히 하고, 그에 적합한 데이터를 수집해야 할 것이다.

우도와 관련된 다른 한 가지 중요 포인트는 데이터로 포착되는 확률변수가 하나 이상일 때 어떻게 처리해야 하는가 하는 문제이다. 예컨대 베이즈 통계(2): 조건부 확률 가지고 놀기라는 포스팅에서 사용했던 경찰관 승진 사례에서 경찰관의 성별이 승진 여부에 미치는 영향이었다. 그런데 만약 인종(race)도 승진에 영향을 미친다면, 소위 독립변수가 두 개가 될 것이다. 빈도주의 통계의 다중회귀분석(multiple regression)에서처럼 독립변수가 2개 이상일 수도 있다. 그런 경우에는 우도함수를 어떻게 구할 수 있을까?

그 경우의 우도는 결합우도(joint likelihood)이라고 불리는데, 그것은 결합확률(joint probability)을 구할 때처럼 하면 된다. 즉, 두 확률변수(혹은 데이터 원천)가 상호독립적이면, 각 확률변수의 우도를 구한 다음 곱해주면 결합우도가 계산된다. 두 확률변수나 데이터 원천이 상호독립적이 아닐 때면 계산이 좀 복잡해 질 것이다.

예를 하나 보자(Donovan and Mickey, 2019). 다음은 베이즈 정리를 발견한 토마스 베이즈(Thomas Bayes)의 초상으로 널리 인정받는는 그림이다. 그런데 이 초상화의 인물이 정말로 토마스 베이즈인가에 대해서는 논란이 있다. 어떤 학자가 베이즈 추론을 사용해서 이 초상이 토마스 베이즈의 것인가에 대한 확률을 계산했다.

Thomas Bayes - Wikipedia

초상에 있는 남성이 토마스 베이즈일 우도를 직접 계산할 수는 없지만, 초상화 속의 중년 남자가 1750년대 가발(wig)을 쓰지 않은 목사(minister)일 우도는 계산할 수 있다. 초상화 속의 인물을 가발을 쓰지 않고 있다. 그런데 당시 목사들은 대부분 가발을 썼으며 일부 종파의 목사만 가발을 쓰지 않았다고 한다. 만약 당시 목사들이 가발을 얼마나 착용했는지에 대한 데이터가 있다면 초상화 속의 인물이 가발을 쓰지 않은 목사일 우도를 계산할 수 있을 것이다. 이것은 하나의 추론 근거이다.

다른 하나의 추론 근거는 초상화 속의 인물이 토마스 베이즈의 아버지인 조슈아 베이즈(Joshua Bayes)와 얼마나 닮았는가이다. 아래는 조슈아 베이즈의 초상이다.

Great Christian Library: Joshua Bayes 1671-1746

이 두 초상의 유사도(similarity index)가 55라고 하자. 그렇다면 우리가 손에 쥔 데이터는 가발 착용 여부부자 초상간 유사도 두 가지이며, 그것은 아래와 같이 요약된다. 이 두 가지 변수는 상호독립적이다.

가발 = 0,     유사도 = 55

우리에게는 두 가지 가설이 있다: 토마스 베이즈의 초상이다, 토마스 베이즈의 초상이 아니다.

토마스 베이즈의 초상이라는 가설이 참일 때 가발을 쓰지 않고 있을 우도를 구하고, 토마스 베이즈의 초상이라는 가설이 참일 때 유사도가 55(혹은 그 이상)일 우도를 구한 다음 그 둘을 곱하면 결합우도를 구할 수 있다. 먼저 1750년대의 초상화 속에서 중년 남성의 가발착용여부에 관한 데이터를 구해야 할 것이다. 100명에 관한 자료를 구했다고 가정하자. 아래는 그 데이터의 일부이다.

Person Minister wig
1 0 1
2 1 0
3 0 1
4 0 1
5 1 0
6 1 0
7 1 1
8 1 0
9 1 1
10 0 1

이 데이터를 가지고 다음과 같은 교차표를 만들 수 있을 것이다.

Wig No Wig Sum
Ministers 8 2 10
Non-ministers 15 75 90
Sum 23 77 100

토마스 베이즈의 초상이라는 가설이 참일 때, ‘가발을 착용하지 않은 목사’의 우도는 위 교차표를 참고하면  2/100 = 0.02로 추정될 수 있다.

다음은 부자간 닮은 정도(유사도)에 관한 우도이다. 영국에서 1천명의 부자인 경우 유사도 점수를 구했고, 1천명의 부자가 아닌 경우 유사도 점수를 구했다고 가정하자. 그중 10 개 사례의 데이터는 다음과 같다.

Pair Related Similarity
1 0 31
2 0 80
3 0 29
4 0 71
5 1 60
6 1 61
7 1 26
8 1 39
9 1 29
10 1 75

55점은 부자간 유사도의 최소 점수이니 우도를 계산할 때는 55점 이상을 기준으로 하자. 토마스 베이즈의 초상화라는 가설이 참일 때 유사도가 55점 이상일 우도는 0.69로 계산되었다. 반면에 토마스 베이즈의 초상이 아니라는 가설이 참일 때 유사도가 55점 이상일 우도는 0.01로 계산되었다.

이 두 가지 정보가 상호독립적이라는 가정 아래 그 둘을 곱하면 결합우도를 구할 수 있다. 토마스 베이즈의 초상이라는 가설은,

가발착용여부의 증거는 0.02이고, 유사도 점수의 증거는 0.69이므로,

토마스 베이즈의 초상이라는 가설이 참일 때 이 데이터를 관찰할 우도는

토마스 베이즈의 초상이 아니라는 가설이 참일 때, 각각의 증거(우도)는,

가발착용여부의 증거는 0.77, 유사도 점수의 증거는 0.01이므로,

토마스 베이즈의 초상이 아니라는 가설이 참일 때, 이 데이터를 관찰할 우도는

이렇게 해서 사후확률을 구하는데 필요한 우도를 계산했다.

데이터를 구하기 전에 토마스 베이즈의 초상이라는 가설과 토마스 베이즈의 초상이 아니라는 가설이 참일 가능성이 동일하다고 간주하여 사전확률을 각각 0.5, 0.5로 부여했다면 아래 표에서와 같이 사후확률이 계산될 수 있을 것이다.

Prior Likelihood Prior*Likelihood Posterior
Thomas Bayes 0.5 0.0138 0.0069 0.64
Not Thomas Bayes 0.5 0.0077 0.00385 0.36
1.0 0.01075 1.00

토마스 베이즈로 간주되는 초상화가 주어졌을 때, 그것이 진짜로 토마스 베이즈의 초상일 확률은 0.64이고, 토마스 베이즈의 초상이 아닐 확률은 0.36이다. 그 초상이 토마스 베이즈의 것이라고 100% 확신할 수는 없지만, 이상의 베이즈 추론은 다른 반증이 없는 한 그것을 토마스 베이즈의 초상으로 간주해도 무방하다 증거를 제공한다.

이러한 방식으로 두 개(혹은 그 이상의) 독립변수 혹은 두 개 이상의 데이터 원천이 제공하는 증거로부터 베이즈 추론에 필요한 우도를 계산할 수 있다. 이상의 논의에서 독자들은 베이즈 추론에 필요한 데이터가 우도라는 형식으로 확보되어야 하며, 두 개(혹은 그 이상)의 확률변수 데이터로부터 우도를 도출할 수 있음을 알 수 있었으리라 생각한다. (2020-10-29)

참고 문헌

Donovan, Therese M. and Ruth M. Mickey. 2019. Bayesian Statistics for Beginners. Oxford University Press.

꿈…커튼…일상

거실 커튼을 달았다. 겨울 준비의 일환이다. 봄부터 가을까지는 블라인드로 충분하지만 겨울에는 찬기운을 막아줄 커튼이 필요하다.

두 겨울을 난 커튼이라 세탁을 해서 매달았다. 아내와 함께 광주 양동시장에 가서 맞춘 커튼이다. 하얀 레이스는 내 아이디어었다.

젊은 시절 크고 높은 집에 사는 게 꿈이 되었나보다. 유학 시절 미국의 남부 사우스캐롤라이나 주에서 2년반을 살았는데, 남부에는 넓은 대지 위에 지어진 큰 집들을 쉽게 볼 수 있었다. 아마도 그 때 그런 모습이 부러워서 슬며시 꿈으로 들어왔는 지 모르겠다. 아니면 젊은 시절 단칸 방에서의 생활이 답답해서 생긴 꿈인지도 모른다. 내겐 물욕이 없다고 생각했었는데, 마음 속 깊은 곳에 큰 집 욕심이 들어와 있었던 모양이다.

어쨋든 그 시절의 소망대로 넓은 곳에 천장이 높은 집을 짓고 산다. 그런데 겨울철에는 난방이 쉽지 않다. 그렇다고 작은 집으로 돌아갈 생각은 전혀 없다. 인생의 황혼에 와서야 실현된 로망을 비용 절약하자고 포기할 필요가 있겠는가.

오늘 아침에는 스크램블 에그를 만들었다. 자꾸 해야 맛있게 만들텐데 어쩌다 한 번씩 하니 감을 잃었다. 아내가 고소함이 덜 하단다. 둘째가 아침식사를 함께 해서 달걀을 하나 더 풀었으니 버터를 좀 더 넣었어야 했다.

커피도 향이 좀 약했다. 매일 내리는 커피인데도 식수 인원이 바뀌면 재료의 양을 조절하는 게 쉽지 않다.

아침 일찍 잠이 깨었다. 침대에 엎드려 책을 좀 읽고 날이 밝자마자 나가서 정원을 가꾸었다. 아내와 함께 아침을 준비하고 둘째와 셋이서 커피를 마셨다. 반복되는 일상이지만 변화가 없지 않다. 그 작은 변화가 주는 신선함을 느낄 수 있어 감사하다.

은퇴자의 삶은 그렇게 같은 것처럼 보이면서도 같지 않은 일상으로 채워져 있다. (2020-10-28)

베이즈 통계(5): 가설과 사전확률분포

베이즈 정리에 관한 빈도주의 통계의 개념에서 사전 확률(prior)이란 주변확률(marginal probabilities)에 불과하다. 그러나 베이즈 통계에서 사전 확률은 각 대안적 가설(alternative hypothesis)이 진실일 사전적(a priori) 확률이다. 사전적이라는 데이터 수집 전이라는 의미이다.

참고로 사전 확률이야말로 베이즈 통계를 빈도주의 통계와 구분짓는 가장 중요한 차이이다. 빈도주의 통계에는 단지 사전 확률이 없는 정도가 아니라 사전 확률이라는 개념적 접근을 강력히 부정한다.

앞에서 예로 든 유방암 사례에서는 두 개의 가설이 있었다. 유방암에 걸렸다는 가설과 유방암에 걸리지 않았다는 가설이다. 그런데 베이즈 통계에서는 2개 이상의 대안적 가설을 검증하는 경우가 흔하며, 각 가설에 대해서 사전 확률이 부여된다.

다수의 대안적 가설에 대해 확률이 부여되면 그것은 확률이 아니라 확률분포로 개념화되어야 한다. 대안적 가설이 하나의 확률변수가 되는 것이다. 확률이 부여된 대안적 가설이 구성하는 분포가 사전확률분포(prior distribution)이며, 사전확률분포 없이 베이즈 추론은 불가능하다.

만약 확률변수가 이산적(discrete)이라면 베이즈 정리는 다음과 같이 표기될 수 있을 것이다. 가설을 보다 일반적인 용례를 따라서 θ라고 표기한다.

말로 풀어보면, 구하고자 하는 사후확률 는 데이터가 주어졌을 때 특정한 가설 가 진실일 확률이다. 이 사후확률은 하나의 비율로 표시된다. 분자는, 특정한 가설 일 때 데이터를 관찰할 확률(우도) 에 사전확률 를 곱한 값이다. 분모는, 주어진 데이터의 주변확률, 즉, 모든 가설의 결합확률을 합한 값이다. 각 가설의 결합확률은 해당 가설의 우도 곱하기 해당 가설(분자에 결합확률들 중 하나가 있음)의 주변확률이다. 이는 각 가설에 대해 사전확률과 우도(likelihood)가 존재함을 함축한다.

표기 다소 혼란스럽게 느껴질 것이다. 의 아래 첨자가 도 있고, 도 있다. 그것들이 가리키는 의미를 분명히 하자면, i는 특정한 가설을 나타내고, j는 합산을 위한 인덱스이다.

예컨대 맞춤법 정정(spelling correction) 프로그램이 표기의 정확성이 분명치 않은 단어를 분류하는 문제를 생각해보자. 어떤 사람이 ‘radom’이라는 단어를 입력했다. 그것은 ‘random’의 잘못된 입력일 수도 있고, ‘radon’이나 어떤 다른 단어의 잘못된 입력일 수도 있으며, 의도적으로 ‘radom’이라고 입력한 것일 수도 있다. 문제를 간단히 하기 위해 가능성이 ‘radom’, ‘random’, ‘radon’ 세 가지 경우만 있다고 하자.

그렇다면, 데이터는 이고, 가설이 세 개(n = 3)이다:

먼저 원래 의도한 단어가 radom일(가설 1) 가능성을 계산하면 아래와 같을 것이다.

다음 의도한 단어가 random일(가설 2) 확률은 다음과 같다.

그리고 의도한 단어가 radon일(가설 3) 확률은 다음과 같다.

위 식들을 보면, 가 분자에서 특정한 가설을 가리키기 위해 사용되었음이 분명하고, 는 분자에서 합산을 위한 인덱스로 사용되었음이 분명하게 보인다. 로 역할을 구분하기는 했지만 일련번호는 동일하다. 의 아래 첨자 1은 도 되고 도 된다. 분자와 분모에서 역할을 구분하기 위해 다르게 표기했을 뿐이다. 분자에서는 관심을 갖는 가설이 바뀔 때마다 아래 첨자가 변했지만 분모에서는 아무런 변화가 없다. 가설 세 개의 결합확률을 모두 더 하기 때문이다. 분모는 좌변의 값을 0부터 1사이의 확률로 만들어 주기 위한 정규화 상수(normalizing constant)이기 때문에 관심을 갖는 가설이 바뀌어도 그 값이 일정하다.

다른 정보가 없다면, 사전 확률분포는 어떤 데이터베이스에서 이 세 단어의 상대 빈도를 가져오면 될 것이다. 구글(Google)의 연구자들이 제공한 위 세 단어의 상대 빈도(확률)은 다음과 같다.

radom이라는 단어가 폴란드에서 한 도시의 이름이기도 하고 어떤 권총의 비공식적인 이름이기도 하다.

이렇게 각 가설에 대해 사전확률을 부여할 수 있으면, 그러한 사전확률분포을 정보적 사전확률분포(informative prior distribution)라고 부른다.  ‘정보적’이란 사후확률분포의 결정에 영향을 미친다는 의미이다. 이 사전확률분포는 아래의 우도 함수와 함께 사후확률분포를 결정짓는다.

각 가설에 대한 우도는 아래와 같은 Google의 스펠링 체크 통계를 가져올 수 있다.

이 우도 함수(likelihood functions)는 하나의 확률분포가 아님을 기억해 두자. 그것은 세 개의 서로 다른 확률분포로부터 나온 조건부 확률이다.

이 우도 값들은 현실성이 있는 수치이다. radom이 올바로 타이핑했을 확률이 97.5%이고, random을 미스타이핑했을 확률이 0.2%이며, radon을 미스타이핑했을 확률은 0.01%이다.

사전확률분포와 우도함수를 구했으니 베이즈 정리를 이용해서 아래 표와 같이 사후확률분포를 계산할 수 있다.

조금 다른 예를 하나 더 보자. 어떤 여성이 몇 월에 태어났는 지를 알아맞추는 문제가 있다고 하자. 생일은 1월부터 12월까지 모두 가능하니 가설은 12개()이다. 그 가설은 각각 1월 가설(January hypothesis), 2월 가설,…12월 가설로 명명될 수 있을 것이다. 위의 식 (1)에서  , 가 된다.

만약 생일에 관해 아무런 힌트가 없다면, 사전확률분포는 어떻게 될까? 각 가설에 대해 동일한 확률을 부여하는 것이 사전 정보가 없다는 사실을 반영하는 하나의 방법이 될 수 있다. 그러면 각 달은 의 확률을 가질 것이다.  이 경우 확률분포는 다음과 같은 균일분포(uniform distribution)일 것이다.

이러한 사전확률분포를 비정보적 사전확률분포(non-informative prior distributions)라고 부르며, 그것은 모든 가설에 대해 동일한 확률을 갖게 한다. 즉, 각 달이 Mary의 생월이 될 사전확률이 동일하다. 비정보적 사전확률을 추정하는 것은 전적으로 우도에 의지해서 사후확률을 추정하겠다는 의지를 나타낸다. 비정보적 사전확률은 베이즈 추정에 있어 어떤 정보도 추가하지 않는다는 의미이다.

정보적 사전확률분포와 비정보적 사전확률분포 중 어느쪽을 택할 것인가? 이에 관한 원칙은 사전확률분포는 데이터를 보기 전에 당신이 확보할 수 있는 최고의 지식을 반영해야 한다는 것이다. 당신이 사후확률분포를 결정하는데 있어 상당히 중요한 정보를 알고 있음에도 불구하고 비정보적 사전확률분포를 사용하는 것은 정당화될 수 없다. (2020-10-26)