Ming's blog

EM-algorithm을 이용한 예측하기 2. 나방의 색 예측하기 본문

수업 & 스터디/통계학

EM-algorithm을 이용한 예측하기 2. 나방의 색 예측하기

H._.ming 2020. 4. 18. 00:01
반응형

1. Description

지난 포스팅에서 소개한 EM 알고리즘을 이용하여 나방의 색을 결정하는 각 유전자를 가지고 있는 나방의 개체 수를 알아보고자 합니다.

 

나방의 색은 C, I, T라는 세 개의 대립유전자에 의해 결정된다고 알려져 있습니다.

 

이때, 유전자 타입은 유전자형표현형로 나뉘어져 있는데 CC, CI, CT와 같은 형태를 유전자형, C, I, T와 같은 형태를 표현형이라고 합니다.

 

혈액형을 예시로 들면, AO, BO, OO,와 같은 형태를 유전자형, O, A, B, AB와 같은 형태를 표현형이라 부릅니다.

 

나방의 유전자의 경우, C가 I보다, I가 T보다 우위에 있다고 알려져 있습니다.(C > I > T)

 

즉, 유전자형이 CC, CI, CT와 같은 경우는 표현형이 C로 나타나게 되며 유전자형이 TT로 나타나는 경우에는 표현형이 T로 나타나게 됩니다. 마지막으로 유전자형이 II, IT로 나타나게 되는 경우에는 표현형이 I로 나타나게 됩니다.

 

이때, 표현형에 따라 나방의 색이 다르게 관측되는데, C인경우 검정색, T인 경우 밝은색, I인 경우 중간색이 나오게 됩니다.

 

나방의 유전자형에 따른 색

 

2. Implemantation

우리의 목표는 유전자 C, T, I를 가질 확률의 MLE값을 구하는 것입니다.

 

총 n개의 관측치가 존재하고, 표현형이 C, I, T로 나오는 경우의 수를 각각 $ n_C, n_I, n_T $라 하며, 유전자형이 CC, CI, CT, II, IT, TT로 나오는 경우의 수를 각각 $ n_{CC} $, $ n_{CI} $, $ n_{CT} $, $ n_{II} $, $ n_{IT} $, $ n_{TT} $라 설정합니다.

 

각 유전자형과 표현형이 나오는 확률은 아래의 표와 같습니다.

 

이때, P(C)=$ p_c $=p, p(I)=$ p_I $=q, p(T)=$ p_T $=r라 설정하였습니다.

(p+q+r=1, $ n=n_C + n_I + n_T=622 $)

여기서, x=($ n_C, n_I, n_T $) 는 관찰 가능한 데이터 이며,

complete data인 y=($ n_{CC}, n_{CI}, n_{CT}, n_{II}, n_{IT}, n_{TT} $)는 관찰 불가능한 데이터입니다.

 

y의 값을 추정하기 위해서 우리는 파라미터 벡터인 p=($ p_C, p_I $) 의 MLE값을 추정해야 합니다. 

 

먼저, 완전한 데이터의 log-likelihood function은 다음과 같습니다.

 

 

추정할 y값을 Y=($ N_{CC} $, $ N_{CI} $, $ N_{CT} $, $ N_{II} $, $ N_{IT} $, $ N_{TT} $)로 두고 추정을 하고자 합니다.

 

이때, 초기값 P는 $ P^0 = ({1\over3},{1\over3},{1\over3}) $ 으로 설정합니다.

 

먼저, E-step을 이용하여 Y를 추정하면 다음과 같습니다.

 

(E-step)

 

이렇게 구한 Y값을 이용하여 $\hat{p}^{MLE}=(\hat{p}_C^{MLE},\hat{p}^{MLE},\hat{p}^{MLE})$ 값을 구하고자 합니다.

이를 구하기 위해서 약간 수정된 log-likelihood식을 바탕으로 구하고자 하는 변수로 미분을 하여 이를 0으로 만들어 주는 방정식의 해를 구해 MLE값을 추정합니다.

 

 

 

 

위 식을 0으로 만들어 주어 MLE값을 구하는 식을 만들면 아래와 같은 M-step이 구해지게 됩니다.

 

(M-step)

 

E-step에서 구한 n값들을 여기에 넣어서 첫번째 p값을 구하고, 이 값을 다시 E-step값에 넣어주는 과정을 반복해 나가면서 아래와 같은 조건이 만족될 때까지 시행을 계속 합니다. 즉, p값이 변화하지 않을 때까지 반복 시행을 하게 됩니다.

 

(Iterate E-step & M-step)

 

3. Result & Conclusion

E-step의 값들이 변하지 않을 때까지, 변수들을 업데이트 하면서, 반복시행한 결과는 아래와 같습니다.

 

t

${p_C}^t$

${p_I}^t$

${p_T}^t$

0

0.333333

0.333333

0.333333

1

0.081994

0.237406

0.6806

2

0.071249

0.19787

0.730881

3

0.070852

0.19036

0.738788

4

0.070837

0.189023

0.74014

5

0.070837

0.188787

0.740376

6

0.070837

0.188745

0.740418

7

0.070837

0.188738

0.740425

8

0.070837

0.188737

0.740426

 

 

변수

예측 값

$\hat{p_C}^{MLE}$

0.07083691

$\hat{p_I}^{MLE}$

0.1887368

$\hat{p_T}^{MLE}$

0.7404263

$n_{CC}$

3.121114

$n_{CI}$

16.63181

$n_{CT}$

65.24708

$n_{II}$

22.15676

$n_{IT}$

173.8432

 

Log-likelihood 함수에서 나온 모수 추정 식을 이용하여 구한 결과를 확인해 보면, 위와 같은 결과가 나옵니다.

 

이처럼, EM 방법을 이용하면 data가 완전할 경우 뿐만 아니라 불완전한 경우에서도 보다 정확한 MLE값을 쉽게 구할 수 있다는 것을 확인하였습니다.

 

따라서, 이 방법은 missing values 값이 많은 실생활에서 이용하기에 유용할 것입니다.

반응형
Comments