12. 우도와 최대우도추정 (Likelihood and Maximum Likelihood Estimation)
<가능도 혹은 우도(Likelihood)>
오늘은 통계학에서 자주 등장하는 개념인 가능도(likelihood)에 대해 알아보자.
가능도는 우도라고 부르기도 하는데 개인적으로는 가능도라는 말이 더 와닿는 것 같다.
가능도의 정의는 책마다 다르고, 네이버 사전에서는 다음과 같이 정의한다.
우도는 나타난 결과에 따라 여러 가능한 가설들을 평가할 수 있는 측도이며, 각 가설을 지지하는 정도로 볼 수 있다.
우도의 개념은 확률(probability)과 구분할 필요가 있다. 확률은 관측값 또는 관측 구간이 주어진 확률분포 안에서 얼마만큼 나타날 수 있는가에 대한 값이다. 그런데 우도는 이와 달리 어떤 특정한 값을 관측할 때, 이 관측치가 어떠한 확률분포에서 나왔는가에 관한 값이다. 다시 말하면, 모수로부터 특정 현상이 관찰되는 것을 확률의 문제라고 한다면, 우도는 바로 확률의 반대 개념으로 이해할 수 있다. 또한 우도 함수는 확률 분포가 아니며, 합하여 1이 되지 않을 수 있다.
[네이버 지식백과] 우도 (AI 용어사전)
<최대우도추정법(Maximum Likelihood Estimation)>
아래에 있는 예시를 읽으면 최대우도추정법(maximum likelihood estimation)을 직관적으로 이해할 수 있다.
예를 들어 최대우도추정법을 설명하면 다음과 같다.
A 주머니에 100원짜리 동전 2개와 10원짜리 동전 2개가 들어 있고, B 주머니에 100원짜리 동전 3개와 10원짜리 동전 2개가 들어 있다고 하자. A, B 두 개의 주머니를 임의로 택한 후 2개의 동전을 꺼내보니 2개 모두 100원짜리 였다고 한다. 그러면 어떤 주머니에서 이 동전들이 나왔을 가능성이 큰가? 대답은 B 주머니이고 그 이유는 A 주머니로부터 2개의 100원짜리 동전을 꺼낼 확률은 1/6이고 B 주머니로부터 꺼낼 확률은 3/10이기 때문이다. 선택한 주머니를 θ, Xi를 i번째 꺼낸 동전의 값이라고 할 때 이를 수학적으로 표시하면 X1 = 100, X2 = 100으로 관찰될 확률은 f(100, 100|θ)이다. 이 확률값을 최대로 하는 θ는 B 주머니이다. 다시 말하면 f(100, 100|θ)를 최대로 하는 θ가 B 주머니라는 것은, 관찰된 2개 동전이 모두 100원짜리 일 때 B 주머니로부터 나왔을 가능성이 가장 높다(maximum likelihood) 것이다.
이러한 의미에서 주머니 B를 θ의 최우추정치(maximum likelihood estimation)라고 하고 θ를 구하는 방법을 최대우도추정법(the method of maximum likelihood estimation)이라 한다.
[네이버 지식백과] 최대우도 추정법 [最大偶度推定法, the method of maximum likelihood estimation] (교육학용어사전, 1995. 6. 29., 서울대학교 교육연구소)
확률은 "확률분포 속에서 특정한 사건이 일어날 가능성"을 추측한 값이었다면 우도추정법은 "사건이 특정한 확률분포에서 일어났을 가능성"을 추측한 값이다. 사건이 "그" 분포에서 일어날 가능성인 것이다. 분포에서의 모수가 얼마나 그 사건을 잘 설명할 수 있는가, 모수가 얼마나 그럴 듯한가,에 대한 지표라고도 할 수 있다.
최대우도추청법에서 적절한 우도(가능도) 값을 찾을 때는 우리가 찾는 모수(parameter)가 고정된 값이 아니라고 가정한다. 지금까지는 모수가 고정되어 있다고 생각한 후 그 값을 찾아나갔지만, 우도를 이용해 모수를 추정할 때는 모수의 값도 변할 수 있다고 생각한다. 다양한 모수의 값 중 가장 그럴 듯한 모수를 찾는 것이다.위 문제에서는 사건(앞면이 8번 나올 때)을 고정시켜놓고 모수의 값이 변할 때 우도(likelihood)가 어떻게 변하는지 관찰해야 한다. R에서 최대우도추정법을 통해 모수를 추측해보자.
<R 코드>
1
2
3
4
5
6
7
8
|
y<-8 ; n<-10 #동전을 10번 던질 때 앞면이 8번 나올 때로 설정
theta <- seq(0,1,len=100) #모수(파이)가 될 수 있는 값들을 0부터 1까지 쪼개서 표현
like <- dbinom(y,n,theta)
like <- like/max(like) #likelihood 값 표준화
plot(theta,like,type="l",xlab=expression(theta),ylab='likeliood',main='Likelihood function when y=8')
|
cs |
theta 값이 0.8 정도가 될 때 likelihood가 최대임을 알 수 있다. 즉, 동전을 10번 던졌을 때 앞면이 8번 나온다면 이 상황을 가장 잘 설명할 수 있는 이항분포의 모수(앞면이 나올 확률)은 0.8이다. 이때 모수인 theta는 구간으로 추정할 수도 있다. (예: "0.7~0.9에 있을 것이다")
1
2
3
4
5
6
7
8
|
y<-0 ; n<-10 #동전을 10번 던질 때 앞면이 0번 나올 때로 설정
theta <- seq(0,1,len=100) #모수(파이)가 될 수 있는 값들을 0부터 1까지 쪼개서 표현
like <- dbinom(y,n,theta)
like <- like/max(like) #likelihood 값 표준화
plot(theta,like,type="l",xlab=expression(theta),ylab='likeliood',main='Likelihood function when y=0')
|
cs |
theta 값이 0 정도가 될 때 likelihood가 최대임을 알 수 있다. 즉, 동전을 10번 던졌을 때 앞면이 0번 나온다면 이 상황을 가장 잘 설명할 수 있는 이항분포의 모수(앞면이 나올 확률)은 0인 것이다.
이처럼, 우도 함수(likelihood function)을 이용해서 모수를 구할 수 있고, 식을 미분해서 우도가 최대가 될 때를 찾아 값을 구할 수도 있다.
최대우도추정법을 수학적으로 정의하면 다음과 같다.
최대우도추정법을 함수로 표시하면 추정하려는 모수가 θ이고 X1, X2, …, Xn 이 확률밀도함수 f(x|θ)로부터 추출된 임의표본이라 할 때, 임의표본의 관측치 X1=x1, X2=x1,..., Xn=xn의 결합확률밀도 함수는 f(x1,x2,...,xn|θ)이다. f(x1, x2,...,xn|θ)는 x1, x2,..., xn이 관찰된 값이므로 모수 θ의 함수이며 이를 우도함수(likelihood function) L(θ)라 한다. 이 우도함수 L(θ)를 최대로 하는 θ의 추정치를 구하는 방법을 최대우도추정법이라 한다. θ의 추정치는 최우추정치라하고, x1, x2, ..., xn의 적당한 함수로 표시된다. 최우추정치는 L(θ)나 lnL(θ)를 θ에 대하여 미분함으로써 구해진다.