EMアルゴリズム

不完全データからの最尤推定アルゴリズムです。最尤法の直接応用が困難な場合、完全データが得られたという仮想的状況での尤度を用いて反復的手順にて不完全データに対する最尤推定量を計算します。
EMアルゴリズムは2段階のステップから成り、E-step(Expectation step)にて、理論量を計算し、M-step(Maximization step)にてその理論量を最大化します。これらを交互に繰り返してパラメータを更新します。これにより、最尤推定あるいは尤度関数の極大点を得ることが出来ます。

EMアルゴリズム

 

〔例〕
血液型データからアレル頻度を推定
A型 B型 AB型 O型
160 80 40 120
このような血液型データが得られている場合、
表現型 = A、B、AB、O の4つであるのに対して
遺伝子型 = a/a、a/o、b/b、b/o、a/b、o/o の6パターンが存在します。

表現型の実測データから遺伝子型を知ることは不可能ですが、EMアルゴリズムを用いて遺伝子型を推定することが出来ます。

アレル頻度をそれぞれ P(a)、P(b)、P(o)
集団がハーディー・ワインベルグ平衡にあると仮定します。
EMアルゴリズムでは最初に推定する値を代入する必要があるので、
P(a)=0.2、P(b)=0.2、P(o)=0.6と仮定します(不完全データ)。

—1回目計算開始——————————————————–
E-Step
  アレルaの期待値:
    E(a) = 160×{P(a)(P(a)+P(O)) / P(a)(P(a)+2P(o))}+80×0 + 40×{P(a)P(b) / 2P(a)P(b)}+120×0 = 111
  アレルbの期待値:
    E(a) = 160×0+80×{P(b)(P(b)+P(O)) / P(b)(P(b)+2P(o))} + 40×{P(a)P(b) / 2P(a)P(b)}+120×0 = 66
  アレルoの期待値:
    E(a) = 160×{P(a)+P(O) / P(a)(P(a)+2P(o))}+80×{P(b)+P(O) / P(b)(P(b)+2P(o))} + 40×0 +120 = 223
  〔ここでは全アレル数に占める各アレル数を算出しています〕

M-Step
  アレルaの頻度を再計算:
    P(a) = 111/ (111+66+223) = 0.2775
  アレルbの頻度を再計算:
    P(b) = 66/ (111+66+223) = 0.165
  アレルoの頻度を再計算:
    P(o) = 223/ (111+66+223) = 0.5575
  〔ここではE-Stepの結果を元にアレル頻度の再計算を行います〕
—1回目計算終了——————————————————–

—2回目計算開始——————————————————–
E-Step
    E(a) = 116 E(b) = 65 E(o) = 219

M-Step
    P(a) = 0.29 P(b) = 0.1625 P(o) = 0.5475
—2回目計算終了——————————————————–

—3回目計算開始——————————————————–
E-Step
    E(a) = 118 E(b) = 65 E(o) = 217

M-Step
    P(a) = 0.295 P(b) = 0.1625 P(o) = 0.5425
—3回目計算終了——————————————————–

・・・
このようにE-StepとM-Stepを繰り返し、アレル頻度を更新し続けると、頻度はある値まで収束します。
この例ではP(a) = 0.2923 P(b) = 0.1630 P(o) = 0.5447が収束値となり、表現型から遺伝子型頻度が推定されます。