統計学には、データからその特徴をつかむための考え方がいくつもあります。
その中でも特に重要で、さまざまな場面で登場するのが最尤推定です。
最尤推定は、観測されたデータをもっとも説明しやすい形を選ぶという、シンプルで筋の通った方法なのですが、プロセスが少々回りくどいため、ややこしい印象を持たれがちです。
この記事では、ややこしい印象を持たれがちな最尤推定を、直感的かつ本質的に理解できるように解説しています。
最尤推定は大学レベルの統計で登場しますが、本記事の理解に必要な数学的知識は「確率」「微分」などの基礎が中心なので、初学者の方でも無理なく読み進めていただけます。
この記事を読むと次のことがわかります。
- 最尤推定とは何か
- 尤度の意味と考え方
- 推定の一般的な手順
推定とは
例えば、何らかの調査を行いたいときに、対象全体を調査するのではなく、対象者の一部に対して調査を行い、得られたデータから、対象者全体の状況を推測する。ということがよく行われます。

対象者全体のことを母集団、対象者の一部のことを標本と言います。
母集団から標本を抽出することを、サンプリングと言います。
サンプリングの目的は、標本によって、母集団の分布を推測することです。
母集団の状況は、母集団に含まれる全てのデータを使えば計算できるのですが、例えば、母集団が大きすぎる場合、母集団の全ての要素のデータを取得するのには、非常に多くの労力やコストがかかり、現実的ではありません。
また、データを取得するために、破壊検査を行わなければならない場合もあったりします。
だから、標本を使って母集団の状況を推測する、というアプローチがとられることが多いです。
母集団の性質を示す数値のことを、母数またはパラメータと言います。
このパラメータが未知である時に、標本データを使って推測することを「推定」と言います。
最尤推定とは
最尤推定では、ある現象が観測されたとして、この現象が観測されることが、最も尤もらしくなるようなパラメータはいったいいくつなんだろう?という考え方をします。
例えば、コイン投げで、10回投げて3回表が出た、という現象が観測されたとします。

この時の、母集団の未知のパラメータは、コイン投げで表が出る確率ですよね。
通常、コイン投げで表が出る確率は0.5ですが、このコインはいかさまコインであり、表が出る確率はわかっておらず、このいかさまコインで表が出る確率 𝑝 を推定したい、という状況だとします。
未知のパラメータである、「コイン投げで表が出る確率 𝑝」を、どうやって推定するのかと言うと、「パラメータ 𝑝 がいくつだったら、この現象が観測される確率はいくつ」というのを計算していき、「最も、この現象が観測される確率が高くなるパラメータの値を推定値にする」というやり方をします。

例えば、表が出る確率が0.1だったなら、10回投げて3回表が出る確率は、0.057ですが、これはかなり低い確率なので、𝑝が0.1であるというのは、尤もらしくないですよね。
表が出る確率が0.2だったなら、10回投げて3回表が出る確率は0.201ですが、これは、𝑝が0.1である時よりも大きいので、こっちのほうが尤もらしいですよね。
10回中3回表が出る確率が最も高いのは、𝑝が0.3の時です。
つまり、𝑝 が0.3というのが最も尤もらしいです。
だから、𝑝 は 0.3 と推定する、という風に推定量を決めるのが最尤推定です。
実際には 𝑝 が0.1で、0.057という低い確率で「10回中3回表が出る」という現象が観測された可能性もありうるのですが、起きづらいことが起きたと考えるよりも、起きやすいことが起きたと考えるほうが、合理的ですよね。
このように、母集団のパラメータが未知である時に、
- パラメータがある値だと仮定して、
- その仮定の下で、実際に起こった現象が観測される確率を計算することをやってみて、
- その確率が最も高くなる時のパラメータの値が、最も尤もらしいよね!
という風に考えるのが、最尤推定のアプローチです。
なお、「パラメータがある値だと仮定して、その仮定の下で実際に起こった現象が観測される確率」のことを尤度と言い、仮定したパラメータの値の中で、最も尤度が高くなるものを、最尤推定量と言います。
さて、ここでは、𝑝 が 0.1, 0.2, 0.3 と 0.1 きざみで考えましたが、実際は 𝑝 は0~1の間の任意の値をとります。
最尤推定量を求めるには、尤度を 𝑝 の取りうる範囲で全て計算する必要があるのですが、このやり方ではそれは不可能ですよね。
そこで、次は最尤推定量を計算で導出する方法をみていきましょう。
最尤推定量の求め方
さきほどとおなじく、いかさまコインを10回投げて、3回表が出たとして、このコインを投げて表が出る確率 𝑝 を求めたい、という状況だとしましょう。
いかさまコインを10回投げて 3回表が出た。このコインを投げて表が出る確率 𝑝 を求めたい。
コインを10回投げて3回表がでる確率は、𝑝 を使ってこのように表すことができます。

これが、最大になる時の 𝑝 を求めれば良いわけですね。
𝑝 と 𝐿(𝑝) の関係は、このようになります。

𝐿(𝑝) が最大になる時というのは、接線の傾きが0になる時なので、𝐿(𝑝) を微分して、それが0になる𝑝を求めれば良いですね。
ここで、𝐿(𝑝) は累乗や積の形になっており、このままだとちょっとやりにくいので、両辺、対数をとると都合が良いです。

対数をとることで、掛け算を足し算にしたり、累乗を掛け算にしたりすることができるので、微分がすごく簡単になります。
なお、𝐿(𝑝) のことを尤度関数、 𝑙𝑜𝑔𝐿(𝑝) のことを対数尤度関数と言います。
ここで、𝐿(𝑝) が最大となる 𝑝 を求めたいという状況で、対数をとっても問題がないのかという風に思われるかもしれませんが、対数関数は単調増加なので、𝑙𝑜𝑔𝐿(𝑝) が最大になる時の 𝑝 は、𝐿(𝑝)が最大になる時の 𝑝 と同じです。

よって、対数尤度関数 𝑙𝑜𝑔𝐿(𝑝) が最大となる 𝑝 を求めるというアプローチで問題ありません。

第一項の 𝑙𝑜𝑔 ₁₀𝐶₃ は、𝑝に関係がない部分なので、𝑝 で微分したら0になります。
第二項の 3 𝑙𝑜𝑔 𝑝 は、𝑙𝑜𝑔 𝑥 を 𝑥 で微分すると なので、3 𝑙𝑜𝑔 𝑝 を 𝑝 で微分すると となります。
第三項の 7 𝑙𝑜𝑔 (1−𝑝) は、ちょっと工夫が必要なのですが、対数の微分公式 より、𝑙𝑜𝑔 (1−𝑝) を 𝑝 で微分すると- なので、7 𝑙𝑜𝑔 (1−𝑝) を 𝑝 で微分すると - となります。

これがゼロになる 𝑝 を求めれば良いので、この方程式を 𝑝 について解いて 𝑝=0.3 と求めることができます。
なお、試行回数を𝑛、表が出た回数を𝑘とすると、このように一般化することができます。
いかさまコインを 𝑛 回投げて 𝑘 回表が出た。このコインを投げて表が出る確率 𝑝 を求めたい。

この記事では、二項分布の母比率 𝑝 を最尤推定する方法をベースに最尤推定の考え方を説明しましたが、正規分布の母平均や母分散などを最尤推定する場合をはじめとした、各種の未知のパラメータを最尤推定する場合も、同じように尤度関数が最大になる時のパラメータの値を推定量とする、というアプローチをとります。
まとめ
この記事では、最尤推定の考え方を解説しました。
- 最尤推定は未知のパラメータを推定する方法の1つ
- 尤度が最大となるパラメータの値を推定量とする
- 対数尤度関数を微分して、それが0になる時のパラメータの値を求める
- さまざまな確率モデルで使える
最尤推定は、機械学習や統計モデリングの基礎となる重要な考え方です。
データから“もっともらしい”パラメータを導くという、その仕組みを押さえておけば、これから出会う多くの手法がぐっと理解しやすくなるはずです。


