인공지능관련/PET 프로젝트

MLE 실제 구해보기

학위논문통계 2016. 4. 2. 10:07

 

 

 

1. 여기 블로글 방문하시는 분들 중에서 MLE를 실제로 어떻게 구하는지에 대해 관심이 있는 분들이 많으신 것 같습니다. 그래서 실제 MLE 구하는 방법에 대해 간단한 예를 통해 설명해 드리겠습니다. MLE 구하는 방법은 학부 1학년 수준의 기초통계학에서는 아마 배우지 않을 겁니다. 급하신 분은 마지막에 있는 예제부터 보시면 됩니다.

 

통계학과에서는 통상 3학년 과정인 수리통계학에서 배웁니다. 좀 어려운 과목이고 이론 통계학의 핵심적인 과정이라 일반 사회과학 공부하시는 분들은 강의 듣기가 좀 힘들고 이해하기도 힘듭니다.

 

또 일반사회과학에서 논문용 통계 강의하시는 분들도 잘 알지 못하고, 그러나 가끔 통계분석용 책이나 통계 프로그램에서 MLE라는 용어가 나오니까 궁금해 하시는 분들이 많다고 생각합니다.

 

 

2. MLE는 Maiximum likelihood estimator의 약자이고 우리나라에서는 일제 시대의 영향을 받는 노땅 교수들 때문에 최우 추정량이라 번역을 많이 하는데 저는 최대가능 추정량이라고 혼자 주장합니다. 

 

우선 추정한다는 의미를 먼저 아셔야 합니다. 개념은 간단합니다. 간단한 예로 현재 유력한 대통령 후보 정치인 A의 지지율을 알고 싶다고 생각하죠. 이 사람의 진짜 지지율을 라 하죠. 정확한 값은 모르지만 당연히 1과 0 사이에 있겠죠. 이 잘 모르는 지지율을 정확히 알기 위해 투표권을 가지고 있는 대한민국 성인들을 대상으로 전부 찾아가 일일이 지지하는지 반대하는지 물어 봐야 합니다. 이런 걸 전수조사라 하고 사실상 시간과 돈 낭비가 심하고 실제로 완벽한 전수조사는 불가능합니다.

 

그래서 몇 사람을 적당히 선택해서 선택한 사람들에게만 정치인 A의 지지율을 물어봅니다. 이게 흔히 이야기하는 표본조사이고 여론조사의 실체입니다. 만약 1000명을 조사하였다고 하면 이 사람들의 A의 지지여부를 일일이 기록합니다. 즉,

 

X1=1, X2=1, X3=0, X4=0, X5=1, ....., X1000=0

 

X1=1이라는 것은 첫 번째 사람이 A를 지지하는 경우이고, X3=0이라는 3번째 사람은 A를 반대한다는 의미이죠.

 

그럼 여러분은 당연히 A의 지지율을 이렇게 계산하겠죠.

 

A의 지지율=(A를 지지하는 사람의 수)/전체 표본 수

=(X1+X2+X3+.....+X1000)/n

 

이게 표본지지율이고 공식을 자세히 보면 여러분이 중고등학교에서 배운 평균 공식이랑 같습니다.

 

그래서 구한 값이 0.372로 나왔다고 하면 우리는 A의 지지율은 37.2%라고 이야기하고 실제 지지율, , 즉 모르는 값을 0.372, 즉 37.2%라 추측합니다. 이때 모르는 값 를 일반적으로 모수(parameter)라 하고 위에 나온 0.372를 추정치(estimate)라 하고 이런 값이 나오는 공식, 즉 위의 표본 평균식을 추정량(estimator)라 하고 이런 과정을 추정한다고 합니다. 즉 표본 조사를 통해 모르는 모수값을 추측하는 것을 추정한다고 이야기한다는 것이죠.

 

그럼 문제는 이것입니다. 모르는 모집단의 비율을 추측하기 위해서 통계학을 전혀 모르는 사람도 표본비율을 사용하는데 그럼 왜 이 표본비율을 사용해야 하는지, 또 이게 왜 좋은 것인지 여기에 대해서는 잘 모른다는 것이죠. 그리고 통계학이 학문으로 남으려면 여기에 대해 합리적인 설명을 해야 한다는 것이죠.

 

 

 

3. 이와 같이 모르는 모수 를 추정하는 방법으로 통계 이론에는 여러 가지 방법이 있습니다. 그러나 주류 통계학에서는 크게 2가지 방법이 있습니다.

 

첫 번째가 최소 분산 불편추정량(MVUE)이고 또 하나가 MLE입니다. 이 중 주류 중의 주류가 MVUE이고, 주류 중 비주류가 MLE입니다. 그래서 통계 이론 책의 대부분이 MVUE에 관한 설명이 많습니다. 그러나 현실은 이것입니다. 현실적으로 MVUE를 구할 수 있는 경우가 거의 없습니다. 이론적으로는 그럴 듯하지만 문제가 조금만 복잡해지면 MVUE는 구하기 힙듭니다. 그 대신 MLE는 매우 직관적인 방법이고 대부분 구할 수가 있습니다. 그래서 현실에서는 MLE가 주로 사용됩니다.

 

또한 MLE는 BAN(Best Asymptotic Normal)이라는 매우 바람직한 성격을 가지고 있습니다. 즉 표본수가 많아지면 MLE는 변동이 매우 작은 정규분포 형태를 취합니다. 이 성질을 이용해서 신뢰구간이나 가설검증을 할 수 있습니다. 

 

 

 

4. 앞에서 MLE가 직관적이고 현실적이고 이야기했지만 논리적으로 심각한 문제가 있는 방법론입니다. MLE에 대한 비판적 입장이 통계학의 비주류인 베이지안 학파입니다. 그러나 통계 전공도 아니고 논문 쓰시는 분들이 이런 것까지 관심을 가질 필요가 없겠죠. 실제 MLE을 구하는 구체적인 과정을 보고 싶은 것이죠. 그래서 우선 위의 표본비율이 나오는 과정하고 그리고 가장 많이 쓰이는 정규분표에서의 평균과 표분편차를 MLE로 구하는 방법을 구체적으로 설명하겠습니다.

 

 

 

5. MLE 구하는 과정

 

 

1) 확률밀도확수 f(x1, x2, ...,xn;)를 구합니다. 대부분의 경우 표본이 독립적이라는 가정을 하기 때문에 이 확률밀도함수는 다음과 같이 됩니다.

 

f(x1, x2, ...,xn;)=f(x1;)*f(x2;)*f(x3;)*...*f(xn;)=

 

 

MLE를 구할 때 결합밀도함수를 특별히 우도함수(likelihood function)이라 합니다. 저는 가능성 함수라 표현하지만요.

 

2) 로그 우도함수, ,를 구합니다. 그러면

 

                                                                              

=

 

이렇게 로그 우도함수를 구하는 이유는 두 가지 이유때문입니다. 나중에 미분을 해야 하는데 곱하기 형태는 미분하기가 좀 힘듭니다. 더하기 형태는 미분이 쉽고요. 그리고 대부분 분포는 지수분포의 형태를 취하는데 로그를 취하면 식이 매우 간단히 됩니다.

3) 로그 우도함수를 모수 에 관해 미분하고 미분한 방정식을 0에 놓고 풉니다. 즉 로그우도함수를에 관한 함수로 보고 최대가 되는 점을 찾는 것입니다.

생각보다 간단하죠.

 

 

6. 실제 예

 

표본비율이 나오는 이항분포하고 여러분이 가장 익숙한 정규분포의 경우, 즉 표본평균과 표본의 분산이 나오는 과정을 살펴보겠습니다.

 

 

 

 

1) 이항분포(binomial distribution)

 

이항분포의 일반 확률밀도함수는

 

f(x;)=nCx

 

요기서 x는 N번 실험을 했는데 1이 나온 개수입니다. 즉 여론조사에서 1000명 조사했을 경우 n=1000이고 여기서 정치인 A를 지지하는 사람의 수가 x가 됩니다.

 

이 식에서 log을 취합니다.

 

log(f(x;))=log(nCx)+xlog()+(n-x)log((1-))

이걸 에 관한 함수로 보고 미분하고 0으로 놓고 방정식을 풉니다.

 

미분log(f(x;))=(x/)+(x-n)/(1-)=0

그럼 =x/n , 표본비율이 나옵니다. 즉, 전체 설문대상자 n 명 중에서 정치인 A를 지지하는 사람의 수 x입니다.  그래서 우리가 흔히 쓰는 표본비율은 이 MLE로서 구해집니다.

 

 

주위: 위에 MLE 구하는 과정처럼 하려면 이항분포에서 출발하는 것이 아니라 베루니이 시행에서 출발해야 합니다. 즉 베르누이 시행 분포를 구한 다음 이걸 n번 곱하면 위의 이항분포 모양이 나옵니다.

 

 

 

 

2) 정규분포

 

 

 

정규분포 일반 확률밀도함수는 다음과 같습니다. 정규분포는 모수가 평균과 표준편차 등 2개입니다.

 

f(x;)=

 

 

여기서 독립적인 표본 n명을 조사하였다면

 

f(x;)=

 

여기서 로그를 취해 로그 우도함수를 구합니다.

 

log(f(x;))=n*

이걸에 대해 각각 미분하여 0으로 놓고 2개의 방정식을 풉니다. 그럼

 

                                      

=(x1+x2+,...,+xn)/n,  즉 표본의 평균이 되고

                                                                             

=, 즉 표본의 분산이 됩니다.

 

여기에서 나온 공식에 여러분이 설문조사한 값, 또는 관찰한 값을 x1, x2, ..., xn에 대입하면 구하고자 하는 모수에 대한 추정값이 나옵니다. 위 공식은 여러분이 중고등학교에서 배운 공식이랑 같죠.

 

 

주의: 통계 프로그램에서 표본의 분산은 디폴트로

                                                                             

=

 

로 계산합니다. 즉 위처럼 n으로 나우지 않고 (n-1)로 나눕니다. 이게 주류 중에 주류인 MVUE 방식으로 구한 추정치입니다. 여러분이 중고등학교에서 배운 공식이라 다르죠.

'인공지능관련 > PET 프로젝트' 카테고리의 다른 글

인공지능, EM 알고리즘, MIxture Model, Pet  (0) 2021.09.10
EM의 예, 결측값의 경우  (0) 2014.06.29
EM 알고리즘 2  (0) 2014.06.20
EM 알고리즘 1  (0) 2014.06.18
여행하는 세일즈 문제 1  (0) 2013.07.14