最尤法(さいゆうほう)は、ひとことで言えば「いま観測したデータが、いちばん自然に出てきそうなパラメータを選ぶ方法」です。英語では Maximum Likelihood Estimation、略してMLEと呼ばれます。

名前は少し強そうですが、やることは意外と素朴です。この記事では、尤度・対数尤度・スコア関数の意味を、コイン投げの例から順番に見ていきます。微分が出てきても大丈夫です。式の役割を一つずつ追いましょう 😊

📌 最尤法の流れを先に

① 確率分布を決める → ② 尤度を作る → ③ 対数を取る → ④ スコアを0にする → ⑤ 本当に最大か確認する。この5段階が基本です。

最尤法とは?まずは直感から

表が出る確率を \(p\) とするコインを10回投げたところ、表が7回、裏が3回出たとします。この結果を見たとき、\(p=0.1\) よりも \(p=0.7\) のコインらしい、と感じるはずです。

最尤法は、この「どの \(p\) なら観測結果を説明しやすいか」を数式で比べます。そして、観測結果に対するもっともらしさ(尤度)が最大になる \(p\) を推定値にします。

ここで大切なのは、通常の最尤法がパラメータそのものの確率を計算しているわけではないことです。観測済みのデータを固定して、パラメータを動かしたときの「もっともらしさ」を比べています。

尤度とは? 🎯

独立同分布なデータ \(x_1,\ldots,x_n\) が、確率質量関数または確率密度関数 \(f(x;\theta)\) を持つ分布から得られたとします。未知のパラメータは \(\theta\) です。このとき尤度関数を、

\begin{align*} L(\theta;x_1,\ldots,x_n) =\prod_{i=1}^{n}f(x_i;\theta) \end{align*}

と定義します。式だけ見ると同時確率や同時密度と同じ形ですが、見方が逆です。

広告
確率分布と尤度関数の見方の違い
見方固定するもの動かすもの
確率分布パラメータ \(\theta\)データ \(x\)
尤度関数観測済みデータ \(x_1,\ldots,x_n\)パラメータ \(\theta\)

つまり尤度は、同じ式をパラメータ側から眺め直したものです。連続分布では尤度の値は確率そのものではなく、密度を使った相対的な指標です。また、\(\theta\) について足して1になる必要もありません。

コイン投げの尤度

表を1、裏を0とするベルヌーイ分布を考えます。10回中7回が表なら、観測した並びに対する尤度は、

\begin{align*} L(p)=p^7(1-p)^3,\qquad 0\le p\le1 \end{align*}

です。今回は表と裏の両方が観測されているため、端点 \(p=0,1\) では尤度が0となり、最大点は \(0<p<1\) にあります。

「10回中7回が表」という回数だけをデータにする場合は \(\binom{10}{7}\) が付きますが、これは \(p\) に依存しません。そのため、どちらの書き方でも尤度を最大にする \(p\) は同じです。

対数尤度を使う理由 💡

尤度はたくさんの確率や密度の掛け算です。データ数が増えると式が扱いにくくなり、コンピューター上では値が小さくなりすぎて計算が不安定になることもあります。

そこで、尤度の対数を取った対数尤度を使います。

\begin{align*} \ell(\theta) :=\log L(\theta) =\sum_{i=1}^{n}\log f(x_i;\theta) \end{align*}

対数関数は単調増加なので、\(L(\theta)\) を最大にする \(\theta\) と、\(\ell(\theta)\) を最大にする \(\theta\) は同じです。掛け算が足し算に変わるため、微分もずっと楽になります。

対数を取っても答えは変わらない

\begin{align*} \mathop{\rm arg\,max}_{\theta}L(\theta) =\mathop{\rm arg\,max}_{\theta}\ell(\theta) \end{align*}

\(\mathop{\rm arg\,max}\) は「関数を最大にする引数(ここではパラメータ)」という意味です。

スコア関数とは? ✍️

対数尤度をパラメータで微分したものをスコア関数と呼びます。1つのパラメータなら、

広告

\begin{align*} U(\theta)=\frac{\partial}{\partial\theta}\ell(\theta) \end{align*}

です。スコアが正なら、その付近では \(\theta\) を大きくすると対数尤度が増えます。負なら減ります。山の頂上の候補では傾きが0になるので、まず、

\begin{align*} U(\theta)=0 \end{align*}

を解きます。この方程式を尤度方程式またはスコア方程式といいます。

ただし「微分して0」で終わりではありません。最小値かもしれませんし、最大値がパラメータ範囲の端にある場合もあります。2階微分、グラフ、端点などを調べて最大であることを確認します。

コイン投げで最尤推定してみよう 🪙

表7回、裏3回の対数尤度は、

\begin{align*} \ell(p)=7\log p+3\log(1-p) \end{align*}

です。スコア関数は、

\begin{align*} U(p)=\frac{7}{p}-\frac{3}{1-p} \end{align*}

なので、\(U(p)=0\) を解くと、

\begin{align*} \frac{7}{p}-\frac{3}{1-p}&=0\\ 7(1-p)&=3p\\ \hat p&=\frac{7}{10}=0.7 \end{align*}

となります。さらに、

\begin{align*} \ell''(p)=-\frac{7}{p^2}-\frac{3}{(1-p)^2}<0 \end{align*}

なので、対数尤度は \(0<p<1\) で全体に山形の狭義凹関数です。したがって、\(\hat p=0.7\) が唯一の最大点です。観測された表の割合が、そのまま最尤推定値になりました。

最尤推定の手順を5段階で整理

  1. モデルとパラメータ範囲を確認する
    \(f(x;\theta)\) と \(\theta\) が取り得る範囲、データの独立性を確認します。
  2. 尤度を作る
    独立標本なら、各データの確率または密度を掛けます。
  3. 対数尤度にする
    積を和へ変え、\(\theta\) に依存しない定数は必要に応じて省きます。
  4. スコア方程式を解く
    \(U(\theta)=0\) を解きます。複数パラメータなら偏微分を並べます。
  5. 最大値か確認する
    2階微分、端点、パラメータ制約を確認し、推定値を \(\hat\theta\) と書きます。

きれいな式で解けないときは? 🧮

スコア方程式が手計算で解けるとは限りません。パラメータが複数あったり、指数と対数が混ざったりすると、\(\hat\theta=\cdots\) という閉じた式にならないことがあります。

広告

その場合も最尤法が失敗したわけではありません。ニュートン法(Newton法)などでスコア方程式を数値的に解くか、対数尤度を直接最大化します。このシリーズでは、閉形式(答えを式として書ける形)で解ける幾何分布の最尤推定と、形状母数に数値計算が必要なワイブル分布の最尤推定を順番に扱います。

ミニ練習問題 ✅

表が出る確率を \(p\) とするコインを12回投げ、表が9回出ました。\(p\) の最尤推定値はいくつでしょうか。

答えを見る

ベルヌーイ分布の最尤推定値は「表の回数 ÷ 試行回数」なので、\(\hat p=9/12=0.75\) です。対数尤度 \(9\log p+3\log(1-p)\) を微分しても同じ答えになります。

よくある間違い ⚠️

  • 尤度を「パラメータの確率」と考える:最尤法ではパラメータを動かして比較しますが、確率変数として扱っているわけではありません。
  • パラメータに依存する項まで消す:省いてよいのは、最大化するパラメータに依存しない項だけです。
  • スコアが0なら最大だと決める:2階微分や端点の確認が必要です。
  • 分布の定義を確認しない:同じ分布名でも、台やパラメータの置き方が違えば推定式も変わります。
  • 尤度そのものを無理に計算する:実務では数値的に安定な対数尤度を使うのが基本です。

まとめ

最尤法は「観測データをもっとも説明しやすいパラメータ」を選ぶ方法です。尤度を作り、対数尤度へ変え、スコア関数を0にするのが基本ルートです。

まずは式がきれいに解ける幾何分布で手順を固め、そのあと数値計算が必要になるワイブル分布を見ると、最尤法の全体像がつかみやすくなります。別の推定量の作り方も知りたい方は、モーメント法と最尤法の使い分けへ進んでください。