スポンサーリンク

最尤法の核心 ~シンプルだけど強力なアイデア~

PCも回復したところで、尻切れトンボになってしまっていた最尤法の解説をやっていきましょう(PCが回復したのに更新頻度が高くないのは、中の人が忙しいからです)。

最尤法解説の前回記事(長ったらしいので、以降は単に前回記事と書きます)は、最尤法解説の導入の話をしました。具体的には、

  • 同様に確からしいという考え方では太刀打ちできなさそうな問題がある
  • そもそも求めたいものは何か
  • 何がどうなれば、その求めたいものを求められたと言えるのか

という感じの話をしました。そして最終的には、「確率密度関数の概形」と「確率密度関数のパラメータ」が分かればいいだろう、概形に関してはデータの性質から分かるから、パラメータを求められたら目的達成と言っていいだろうという話になったのでした。

そして、この「パラメータを求める方法」の一つが、今回の記事で解説する最尤法になります。

※前回記事と同様、本来なら「確率質量関数」と表記すべきところを「確率密度関数」と表記しています。この記事では最尤法という概念を解説することを目的としており、最尤法は確率質量関数であろうと確率密度関数であろうと、同じように適用できるため、この記事では「確率質量関数」と「確率密度関数」を混同して使用しています。筆者の技術の至らぬ点ですが、ご了承いただけますと幸いです。

スポンサーリンク

確率密度関数のパラメータの求め方

ここまでの話で、とりあえず確率密度関数には「概形」と「パラメータ」という2つの側面があること、”同様に確からしい”という考え方はこの内の「パラメータ」を求めるときに使う考え方だったことをご理解いただけたかと思います。

そして、「概形」の方はデータの性質から求められるのは変わらないんだから、パラメータの求め方をもっとちゃんと考えようぜって話になったという論理構造も理解していただけるかと思います。

ではここから、最尤法の考え方を解説していきます。

先ほど、確率密度関数の概形はデータの性質によって求めることができると説明しました。つまり、数式はこの段階では既知の物として考えることができます。

※ここから蛇足(概形を既知として考えられることの意味を解説してみました)
読み飛ばしても何ら差支えありません

本来なら確率密度関数の「概形」も「パラメータ」も求める必要があるんだったら、その両方を同時に求められるような方法を本来なら考えるべきです。基本的には、”同時に”求めるものが多くなればなるほど、問題は難しいものになります(本当にそうなのかが実感として分からない方もいらっしゃるかもしれませんが、ここでは事実として、「”同時に”求めるものが多くなると、その問題を解くのは難しくなる」ということを受け入れていただければと思います)。

当然ながら確率密度関数についても同様に、「概形」と「パラメータ」の両方を同時に求めなければならないとなると、問題が難しくなってしまうことが予想されます(確率密度関数を求めるときだけは特別扱い出来て、実はそんなに難しくならないというようなことが分かっていれば別ですが)。

そのため、問題を難しくしてしまうような前提「同時に求める」という部分をなんとかできれば、難しい問題を解くことなく、目的を達成することができるようになります。

先ほどの「概形」と「パラメータ」の内、「概形だけは既知の物として考えることができる」とはつまり、同時に求めるという問題を回避できる(「概形」と「パラメータ」はそれぞれ別個に求めても正しい確率密度関数を求められる)ということを意味しています。

このような重要性が、実は「確率密度関数の概形だけは既知として考えることができる」という一文には隠されていたのです。まぁ、平たく言い換えれば、「”確率密度関数を求める”という問題が簡単になる。だから嬉しいんだ」という話ですな。

「確率密度関数の概形は既知として考えられる」という文だけでは、あまり実感がわかないかと思ったので、ここでは詳しく解説してみました。せっかく貴重な時間を使ってこのブログを読んで頂いているので、どうせなら他ではあまり解説されてないようなこと(例えば今回みたいな、無味乾燥な文の裏に隠された重要性みたいな)も交えながら解説した方が皆様のためになるかと思いまして。

※ここまで蛇足

ここでは、説明(式変形)が簡単だからという理由で、ポアソン分布に従うような事象のパラメータを求めるという問題を設定します。言い換えると、あるデータがすでに用意されていて、そのデータがポアソン分布という確率密度関数に従うことがすでに分かっているという状況が設定されているということですな。そのような状況下で、そのポアソン分布のパラメータを求めたいと。

そのような事象として、ボルトキーヴィッチが調査した「馬に蹴られて死んだ兵士の数」が有名なので、この記事でもそのデータを使って計算をしたいと思います。まずは一般論での説明をしますが、抽象的すぎて分からないという方は「馬に蹴られて死んだ兵士の数」という具体例を思い浮かべながら読んで頂ければと思います。

パラメータの妥当性を考える

ここからパラメータを求めるための方法論を解説していきます。その際にまず考えなければいけないのは、「どんなパラメータであれば、妥当なパラメータと言えるだろうか?」ということです。言い換えれば、「パラメータを求めなさいという問題に対する正解は、どのような特徴を持っているべきだろうか?」「どのような特徴を備えたパラメータであれば、ある程度正しいと言えるだろうか?」を考えるということですな。

要するに、何かしらの方法によって求めたパラメータを評価したいと。

それを考えるために、状況を整理してみます。すると、次のような前提があると分かるでしょう。

  1. 私たちはある個数のデータ(あるデータセット)を持っている
  2. そのデータセットを抽出した元の母集団の確率密度関数は分からない
  3. そのデータセットは、すべてある確率密度関数に従っている
  4. そのデータセットを生成した確率密度関数の最も妥当そうな外形は分かる(予想できる)
  5. そのデータセットを生成した確率密度関数のパラメータは分からない

ただしここでは、確率密度関数は「外形」と「パラメータ」という2つの側面から考えていることに注意してください。例えば2番の「母集団の確率密度関数は分からない」という部分では、確率密度関数の「外形」についても「パラメータ」についても、どちらも不明であるということを言っているとお考えください。以降についても同様です。

そして、このような前提があったうえで、取ったデータの母集団がどのような確率密度関数を持っているのかを知りたいというのが、ここで解決したい問題となります(一応、ここでも注意しておきますと、ここでの問題をより詳しく言えば「母集団の確率密度関数の外形とパラメータの両方を求めたい」ということになります。記事が冗長になってしまうので、以降では特に注意しませんが、ご自分で補足しながら読んでいってくださいませ~)。

スポンサーリンク

当然ながら、ある方法によって求められた確率密度関数が、母集団の確率密度関数と一致していれば、求めた確率密度関数は妥当なものである言えそうです。母集団の確率密度関数と同じという意味で、絶対的な正解だとも言えそうです。

しかし、先ほど現状を確認したときにもあった通り、母集団の確率密度関数は分かりません。分かっているのは、複数個のデータと、その確率密度関数の外形だけです。

そこで、どういうパラメータを最も妥当な(尤もらしい)パラメータと言えるかをまず考えておく必要があります。

ここで注目すべきは、やはり母集団の確率密度関数です。母集団の確率密度関数は、ある数値の生成される確率を関数形式で示したものになります。ここでいう「ある数値」には、当然、今手元にあるデータセットも含まれていてしかるべきです。

つまり「今手元にあるデータは母集団の確率密度関数(具体的にどんなものかは分からないけど)に従っている」ということですね。これは、特に説明しなくても「まぁ、そうだろうな」と納得していただけることかと思います。

さらに考えを進めてみます。今、データが測定値として手元にあるわけですよね。つまり、何かしらの事象が実際に発生した(あるいは、発生させた)ということになります。

現実に発生する事象は、発生確率が高い事象であればあるほど相対的に多く発生し、発生確率が低い事象であればあるほど相対的に少なく発生するということになります。

このことから考えますと、今手元にあるデータが現実に手元に存在してしまっている(存在できてしまっている)以上、手元にあるデータを生成する確率が最も高くなっている確率密度関数こそが、最も尤も(もっとも)らしい確率密度関数だと定義するのが妥当な考え方でしょう。

そして、そのような確率密度関数のパラメータが求めたいパラメータだということになります。

以上が、パラメータの妥当性の考察と、その考察から得られる最尤法のアイデアになります。

アイデアだけでは絵に描いた餅にすぎませんから、以上のアイデアに基づいて具体的な方法を考えていきます(次回で)。

次回予告

一応ここまでのまとめをしておきます。

  1. あるデータが存在しているという状況下で、そのデータを生成した確率密度関数を知りたいということは往々にしてある
  2. その確率密度関数を求めたい(ここまでが問題の定義)
  3. 同様に確からしいという考え方では難しい(前回記事
  4. そこで、別の方法を考えたいので、まずどんな確率密度関数を求められればいいのかを考える
  5. 母集団の確率密度関数と一致していれば文句なくオッケー
  6. ただし、母集団の確率密度関数はほとんどの場合分からないから、求めた確率密度関数が母集団の物と一致しているかを判定する方法がない
  7. だから、確率密度関数を評価する別の基準が必要
  8. その基準として、今手元にあるデータを使えばよさげ
  9. なぜなら、今手元にあるデータは母集団の確率密度関数から生成されたものだから
  10. 手元のデータを生成する確率が最大となる確率密度関数を求められたらオッケー(アイデアの核心)

ざっくりとしてはいますが、今はこんな感じの流れで進んでおります。

次回は、手元のデータを生成する確率が最大となるとはどういうことか、そのアイデアを数学的に表現するにはどうすれば良いかを見ていきます。

というわけで、具体的な方法論は次回の記事までお待ちくださいませ~。

タイトルとURLをコピーしました