何らかの全国規模の調査を行いたいとき,対象者全員に調査することができれば最もよいですが,それは時間やコストなどの面から現実的ではありません.
ですから,対象者の一部に調査を行い,そこで得られたデータから対象者全員の分布を推測することになります.
その推測の方法は色々ありますが,その1つに最尤推定法というものがあり,名前の通り「最もそれっぽい分布を推定する方法」です.
「最尤推定法」という名前を聞くといかめしい印象を受けますが,(実際の計算はともかく)実は考え方はシンプルでそれほど難しいものではありません.
この記事では,最尤推定法の考え方を説明し,最尤推定法の使い方をみます.
最尤推定法の考え方
最尤推定法を使う際には,最初に
- どのような分布に従うのか
- 実際に得られたデータ
の2つが用意されています.
例えば,「全国の成人男性の身長」を最尤推定法で考える際には
- 全国の成人男性の身長は「正規分布」に従う
- 100人の成人男性の身長のデータ
は既に分かっているものとします.この2つから「全国の成人男性の身長」がどのように分布しているかを考えるわけです.
なお,最尤推定法で考える分布は正規分布とは限りませんが,正規分布でなくても考え方は同じなので,この記事では正規分布で考えます.
分布を推定するとは
「分布を推定する」とはどういうことでしょうか?
正規分布は下図のような山のような形をしたグラフで表される分布でした.
ただし,「正規分布」と一言で言っても,グラフの
- 「裾」の広がり方
- 「真ん中」の位置
に特徴が表れます.
例えば,なだらかな(=分散$\sigma$が大きい)正規分布のグラフ
になることもありますし,一番山の頂上の$x$が0でない(=平均$\mu$が0でない)正規分布のグラフ
になることもあります.
ですから,分布を推定するとは「このような色々な分布の中で,どれが最もそれっぽい正規分布なのかを推定しよう」ということなわけです.
最尤推定法の考え方
さて,以下のように「分布」と「データ」が準備されているとしましょう.
- データは「正規分布」に従う
- 6個のデータ4.4, 5.3, 5.2, 5.7, 4.7, 4.1
このとき,「どんな正規分布になりそうですか?」と聞くと,多くの人は
- データの真ん中あたりが最も高く
- そこそこの散らばり具合の
以下のようなグラフを描くのではないでしょうか?
一方,多くのデータが集まっているところからずれたグラフ
はなさそうですし,5.6や4.2あたりのデータもあることからあまりにも集中しすぎたグラフ
もなさそうです.
つまり,最初のグラフは「データが出ているところの値はそんなに小さくないだろう」という考えに基づいており,逆に言えば「データがあるところの値が出来るだけ大きくなるような分布がそれっぽい」ということになります.
したがって,正規分布のグラフを表す関数を$f(x)$とし,6個のデータ4.4, 5.3, 5.2, 5.7, 4.7, 4.1を代入して掛け合わせた
が最大になるような$f(x)$を関数にもつ分布が,最もそれっぽい正規分布ということができますね.
つまり,下図の赤線の長さの積が最も長くなるような$f(x)$が最もそれっぽい$f(x)$です.
このような考え方に基づく分布の推定方法を最尤推定法といいます.
正規分布の最尤推定法
以上が最尤推定法の考え方で,次に正規分布の最尤推定を行なっていきます.
尤度関数
先ほどの話を一般化しましょう.
ある分布に従う$n$個のデータ$x_1,x_2,\dots,x_n$に対して,この分布の確率密度関数を$f(x)$とするとき,
を尤度関数 (likelihood function)と言い,尤度関数を最大にするような$f(x)$を求めることにより分布を推定する方法を最尤推定法 (method of maximum likelihood estimation)という.
具体的に正規分布で考えましょう.平均$\mu$,分散$\sigma$の正規分布の確率密度関数$f_{\mu,\sigma}(x)$は
と表されるのでしたから,この関数$f_{\mu,\sigma}(x)$に$n$個のデータ$x_1,x_2,\dots,x_n$を代入して掛け合わせた
を尤度関数と言うわけですね.
先ほどから説明していたように正規分布の「位置」と「形」は様々に変わるのでしたが,それらは平均$\mu$と分散$\sigma$によって決まります.
よって,正規分布の最尤推定法では,尤度関数$L(\mu,\sigma)$を最大にする$\mu$と$\sigma$を求めることにより,最も尤もらしい正規分布を推定するということになります.
対数尤度関数
さて,それでは実際にどうすれば尤度関数$L(\mu,\sigma)$が最大となるような$\mu$と$\sigma$を求めることができるのでしょうか?
関数の最大,最小を求める問題では,微分を用いることでうまくいくことが多く,最尤推定法でも然りです.
とはいえ,尤度関数$L(\mu,\sigma)$は積の形で表されているので,このままでは微分しても式が煩雑になります.
そこで,尤度関数$L(\mu,\sigma)$に対数をとった対数尤度関数を定義します.
尤度関数$L$に対数をとってできた関数
対数尤度関数 (log-likelihood function)という.
対数尤度関数の和を並べて書くと
*** QuickLaTeX cannot compile formula: \begin{align*} \log{L}=\logf_1(x)+\log{f_2(x)}+\dots+\log{f_n(x)} \end{align*} *** Error message: Undefined control sequence \logf. leading text: \end{align*}
ですね.このように,対数の性質$\log{ab}=\log{a}+\log{b}$から,積に$\log$をとると和に早変わりするのでした.
$\log$は単調増加なので,尤度関数$L$が最大になるとき対数尤度関数$\log{L}$も最大になります.
よって,平均$\mu$,分散$\sigma$の正規分布の尤度関数$L(\mu,\sigma)$を最大にするような$\mu$と$\sigma$を求めたければ,対数尤度関数$\log{L}(\mu,\sigma)$を最大にするような$\mu$と$\sigma$を求めればよいことになります.
さて,積のまま微分すると式は煩雑になりますが,和の微分は各項で微分ができるので式はそれほど煩雑になりません.対数をとったのはこの理由からです.
平均$\mu$,分散$\sigma$の正規分布の対数尤度関数は
となりますね.
微分して極値を求める
上述したように,微分を用いることで対数尤度関数を$M(\mu,\sigma):=\log{L}(\mu,\sigma)$とおき,$M$の最大値を求めましょう.
一般に微分可能な関数$f(x,y)$に対して,
を満たす$(x,y)$は$f(x,y)$が最大(最小)となる$(x,y)$の候補です.正規分布の対数尤度関数の場合には,
を満たすような$(\mu,\sigma)$は$M(\mu,\sigma)$を最大にします.
となります.つまり,
- $\mu=\dfrac{x_1+\dots+x_n}{n}$
- $\sigma^2=\dfrac{(x_1-\mu)^2+\dots+(x_n-\mu)^2}{n}$
のとき,$M(\mu,\sigma)$が最大,すなわち,$\log{L}(\mu,\sigma)$が最大となります.
結論
さて,ただ「正規分布に従う$n$個のデータを用意し,その尤度関数が最大になるような組$(\mu,\sigma)$を求めよう」と求めたわけですが,今求まった$\mu$と$\sigma^2$に見覚えはありませんか?
そう
- $\mu$はデータ$x_1,\dots,x_n$の平均
- $\sigma^2$はデータ$x_1,\dots,x_n$の分散
になっていますね!
確かに最尤推定法からそれっぽい結果が導かれましたね.
この記事では正規分布の最尤推定法を考えましたが,正規分布でない場合にも「分布の関数にデータの値を代入してそれらの積が最大になる分布が,最もそれっぽい分布だ」という最尤推定法のイメージがあれば,同じ考え方で最尤推定法を使うことができます.