|| 一番それっぽい予測(母数を)をするやり方のこと
「一番ほんとの値っぽい」ものを求めます。
スポンサーリンク
目次
最尤推定の感じ「サンプリングした結果の再現率」
尤度関数「再現率を表す確率を導ける関数」
尤度方程式「再現率が最大になる時の推定量を求める関数」
これは具体的な操作から見た方が分かりやすいでしょう。
一番見るのは「確率が 1/2 じゃないコイン」みたいな例ですね。
いわゆる普通じゃない確率の、ほんとの確率を求めたいときとか。
この場合だと「無作為」だってことの保証みたいな感じです。
これを数学的に推測するのが、最尤推定の一例になります。
では、↑のコインが「 100 回の内 90 回、表になった」とします。
明らかな異常値です。
ほぼ確実に「 1/2 で表」とはなりません。
はて、ではこのイカサマコインの実際の確率はどうなんでしょう?
「 1/2 」じゃないことはほぼ確実ですなんですけど、
いやでも待ってください。なんで、そう言えるんですか?
いや普通に考えて「 90/100 」っぽいし。
とか、こんな感じに考えませんでしたか?
はい、というわけで、この感じが『最尤推定』になります。
これをすごい人がどうにかこうにか形式化したわけですね。
さて、では実際の操作について見てきましょう。
ざっとですが、最尤推定の感覚をこれで掴んでください。
↑の例で考えて、とりあえず実際にまず検証してみます。
まず『仮説』として「実際の確率」と思われるものを用意します。
「 1/2 」とか「 90/100 」とか、この辺りを。
※でもなんかちょっと数値がでかすぎるんで、別ので。
「 10 回中 9 が表」くらいにしましょうか。
この例で行くなら、
『仮説』として「 1/2 」や「 9/10 」を用意できます。
とりあえず、この辺りが一番それっぽいわけですね。
というわけで、検証を開始します。
まず「確率 1/2 で表」なら『 10 回中 9 回表が出る確率』は、
\displaystyle {}_{10} \mathrm{C}_{9} \left(\frac{1}{2}\right)^9\left(\frac{1}{2}\right)^1=10\cdot\frac{1}{2^{10}}≒0.00977\,\,\,\,\,∴0.98\%
(↑は表表表…表裏、表表表…裏表、…とやってけば)
次に「確率 9/10 で表」なら『 10 回中 9 回表が出る確率』は、
\displaystyle {}_{10} \mathrm{C}_{9} \left(\frac{9}{10} \right)^9\left(\frac{1}{10}\right)^1=10\cdot\frac{9^9}{10^{10}}=(0.9)^9≒0.387\,\,\,\,\,∴38.7\%
これを比べてみれば分かる通り、
「確率 1/2 」よりも「確率 9/10 」の方が、
『サンプリングで出た結果になる「確率」』が高いです。
ですから少なくとも、
「確率 1/2 」よりも「確率 9/10 」の方が、
なんか『それっぽい』わけです。
如何でしたでしょうか。
これで、なんとなく『最尤推定』の感じが掴めたと思います。
というわけで、この操作を「色々な場面で使える」ように、
要は『一般化』してみます。
コインのような「 2 択」のもので考えてみます。
そして『片方が出る確率を p 』としましょう。
取り出すサンプルの数は n としますか。
こうすれば、どんな数にでも対応できるようになります。
こんな感じの操作のことを「一般化」というわけですね。
というわけで「片方が出た回数を x 」とします。
こうすれば↑を↓みたいに一般的に書けるわけです。
f(x)={}_n\mathrm{C}_x\cdot p^x(1-p)^{n-x}
これがさっき使った式の一般形になります。
↑の具体例で見たように、これは「確率」を算出します。
それを基準にして「大小」で『それっぽさ』を比較するわけです。
そうです。↑の具体例であったように、
これの『最大』が「一番それっぽい」になります。
『サンプリングの再現度が最大になる』わけですから。
尤度関数 Likelihood Function
|| 最尤推定用の関数
つまりは「それっぽい推定量から再現率を求めるやつ」です。
具体的に見るために↑の関数を使うと、
『分からない確率 p 』の「推定量 θ_{est} 」とすると、
f(x,θ_{est})={}_n\mathrm{C}_x\cdot θ_{est}^x(1-θ_{est})^{n-x}
となります。
ただまあ、これじゃあ変数が 2 つあって扱いにくいです。
なので片方を確定させて見てみましょう。
幸い↑は「確率」を算出するので、
ここで、それを表す形式(表し方)を考えます。
↑の具体例の流れでいくと、
まず「推定量 θ に具体的な値」を入れてから、
実際に「サンプリング」して「それっぽさ」を調べるとしましょうか。
とすると「推定量 θ_{est} 」が固定されてから、
その後に「サンプリングの結果 x 」が得られるので、
f(x\,|\,θ_{est})
と書き表せそうです。
「 f(x,θ) 」は確率を返す関数ですから、
これは「推定量 θ 」が定まった上での、
「 θ の影響を受ける f(x) 」が返す、
「条件付き確率」を表している、と言えることから来ています。
そして、これから「尤度関数」は導かれるわけです。
というのも「推定量 θ 」は、
サンプリングに影響を受けずに、勝手に決定されます。
この時点ではただの予測(なんか入るかも)に過ぎませんので。
(文字以上の意味はありません)
そしてその後にサンプリングの結果が出ます。
そこで「データ x 」もまた決定されるわけですね。
そして変数の全てが出揃った結果、確率が導かれます。
そうやって出てきたこれがなんの確率かというと、
「サンプリングした結果の出やすさ」なわけです。
つまり↑の関数をそのまま使えば、
『それっぽさを決める関数』は、具体例から直観的に理解できます。
というわけで「推定量 θ 」を固定して、
その後に「サンプル x 」も確定させてやると、
Lik(θ_{est}\,|\,x):=f(x\,|\,θ_{est})={}_n\mathrm{C}_x\cdot θ_{est}^x(1-θ_{est})^{n-x}
こんな感じに「それっぽさ」を表す『確率』を返す関数として、
この「 Lik(θ_{est}\,|\,x) 」が出てきます。
そしてこれが『尤度関数』なわけです。
ん? 確定した変数が入れ替わっただけ?
こう考えた方、それで合ってます。
要は、便宜上固定された「未確定な推定量 θ_{est} 」を、
一旦「関数 f(x,θ) 」の値を定めてから求める感じです。
軸を見る方向を変えただけですね。
( x 軸側からか θ 軸側からか)
考え方の直観的な流れとしては、
まず、よく分からん「確率を返す関数 f(x,θ) 」があります。
これは『 2 種類の変数』を持っていて、
片方は「サンプリングすれば決まる変数 x 」で、
もう片方は「なんかよく分からん変数 θ 」なわけです。
片方の変数 x は、サンプリングすれば求まります。
でももう片方 θ は、どうにもなりません。
(母数だと、全部サンプリングしないと不明)
となると、知りたい「 f(x,θ) 」の値は分かりません。
どうすりゃいいんでしょう?
ともかく、まずは「分かる値」を埋めていきます。
すると「分かんない値」がなんなのか、分かってきますよね。
全部分かれば分かんない値は無いわけですし。
こうやって「よく分からん変数 θ 」を見出します。
はい、なんか出てきました。
ともあれ、θ には「なんかの値(よく分からん)」は入るわけです。
よく分かりませんけど、よく分からないまま、
とりあえず適当に「定数 θ_{est} 」ってしておくことにします。
すると「 f(x,θ) 」の値はとりあえず『一点に定まる』わけですね。
詳しくは「 f(x,θ) は確率を返す関数」なので、
「よく分からん変数 θ 」をとりあえず固定して、
『条件付確率 f(x\,|\,θ_{est}) 』に、分かってるのをぶち込む感じ。
これで、とりあえず「 f(x,θ) の値(点)」は求められるわけです。
θ は相変わらずよく分かりませんけど。
はい、というわけで、ここから「尤度関数」が見えてきます。
というのも、そもそも「 f(x\,|\,θ_{est}) 」は、
あくまで『変数 x についての関数』なわけです。
『 θ_{est} は定数』ですから。
いやでも、私達が『知りたい情報』は、
「よく分からん変数 θ 」の方なんですよね。
となると、こっちを「変数」として扱いたくなります。
こいつをどうにか求めたいんで。
そこで「変数 x は分かる」という部分に着目します。
↑での「分からないもの」を掘り出す作業をもっかいやる感じ。
そうすると「確定させられるものは確定させた関数」ができます。
これが、いわゆる『尤度関数』というものです。
f(x\,|\,θ) の『変数を入れ替えただけ』というのは、
こういう経緯からくるわけですね。
そういうわけで『尤度関数』は↓のように定義できます。
Lik(θ_{est}\,|\,x):=f(x\,|\,θ_{est})
わざわざこうするのは「変数が複数ある」場合を考えると分かります。
↓に紹介するので、ともかくここでは感覚を覚えてください。
ちなみに「 L(θ\,|\,x) 」や「 L(θ) 」と表されることが多いです。
形式的な言い回しをするなら、
『分布』を表す『確率密度関数 f(x,θ) 』が与えられたとき、
『確率を返す関数 f(x,θ) 』から、
まず推定量を定めて f(x\,|\,θ_{est}) と表せることから、
「 Lik(θ_{est}\,|\,x):=f(x\,|\,θ_{est}) 」を定義する。
このとき『 Lik(θ_{est}\,|\,x) 』を「尤度関数」と言う。
そしてこの尤度関数が最大(一番出やすい)になるとき、
その「 θ_{est} 」を『最尤推定量』と言う感じ。
とまあ、こういうわけです。
これはあくまで形式ですので、やりたいことは具体例みたいに、
「サンプリングした結果を一番再現できる推定量」を求めます。
ちなみにもっと一般化できます。そんな難しくないです。
単に「データ(観測値) x 」を多くして、
「推定量(知りたいやつ) θ_{est} 」を多くするだけ。
Lik(θ_1,θ_2,...,θ_n\,|\,x_1,x_2,...,x_i):=
f(x_1,x_2,…,x_i\,|\,θ_1,θ_2,…,θ_n)
「 f(x_1,x_2,…,x_i\,|\,θ_1,θ_2,…,θ_n) 」は、
「推定量 θ_1,θ_2,…,θ_n 」が固定された場合の、
「データ x_1,x_2,…,x_i 」が「同時に出現する確率」ですから、
「 Pr(x_1∩x_2∩…∩x_i) 」
\displaystyle f(x_1,x_2,…,x_i\,|\,θ_1,θ_2,…,θ_n)=\prod_{k=1}^{i}f(x_k\,|\,θ_1,θ_2,…,θ_n)
これが「尤度関数」の厳密で一般的な定義になります。
見た目むずいですけど、単にデータを増やしただけです。
どんどん分かり難くなっていきますが、そういうもんです。
といっても、一般化はし過ぎると分かり難くなっていけませんね。
あまり直観的じゃないですよ、これ。
はい、というわけで、次はこれの『最大』を求めてみましょう。
厳密には最大というより「極値」なんですが、そこは割愛。
尤度方程式 Likelihood Equation
|| 扱いにくい掛け算を足し算にする感じ
これは「比較を簡単にする手続きの一つ」になります。
それ以上の意味は無いです。
これはいわゆる『大小比較』のテクニックの一つになります。
主に「指数」が絡む場合に使われる方法です。
例えば「 99^{100} と 100^{99} の比較」とか。
これは、そのままだと『大小比較』が「超大変」です。
超絶面倒な計算をしないことには「比較」できません。
そこで、ここである方法を使うわけです。
「大小の比較だけ」は確実にやれる方法が。
そのやり方とは、要は↓みたいにやります。
99^{100}=e^{\log_{e}99^{100}} と 100^{99}=e^{\log_{e}100^{99}}
e^x は「正」で「単調増加」ですから、
a<b なら、当然 e^a<e^b です。
この逆、e^a<e^b なら a<b も成立します。
ということは、
99^{100} と 100^{99} の大小の比較は、
\log_{e}99^{100} と \log_{e}100^{99} の大小の比較をすれば分かるわけです。
つまり『指数だけ』を比較すれば、計算をしなくても、
大小の『比較だけ』は、確実に、なにより簡単にできるわけですね。
『尤度方程式』は、この考え方を使います。
なにせ、例えば「 {}_n\mathrm{C}_x\cdot θ_{est}^x(1-θ_{est})^{n-x} 」の最大とか求めます。
欲しい『最大の推定量 θ_{est} 』は、
「 x 次方程式の解の中の 1 つ」になります。
求めようと思ったら、面倒とかそういう次元の話じゃないです。
『連続』で「 5 次元以上」だったら、そもそも求められません。
そんなわけで「指数だけ」を見て、
『大小の比較だけ』はできることの確認ができました。
そこで「対数尤度関数」というものを、誰かが考えました。
それこそ当初の目的通りに「最大」を求められるように。
Lik(θ\,|\,x)=e^{\log_{e}Lik(θ\,|\,x)}
というわけで、これの『指数の最大』を考えます。
この「指数 \log_{e}Lik(θ\,|\,x) が最大」になれば、
当然「 Lik(θ\,|\,x) 」も最大になりますので。
念のため確認しておくと、
『最大の指数 t_{max} 』とすると、
Lik(θ\,|\,x)=e^{\log_{e}Lik(θ\,|\,x)}≤e^{t_{max}}
つまり『最大の指数 t_{max} 』があれば、
「 Lik(θ\,|\,x) の最大」もまた求められるわけです。
具体的には『 e^{t_{max}} 』という値が。
さて、では実際に『最大』を求める方法を考えてみましょう。
より正確には「極値」を求める方法が必要です。
ここでは、とりあえず『最大が存在する』
ということを念頭にして、話を進めていきます。
なにせ『 Lik(θ\,|\,x) 』は確率ですからね。
0≤Lik(θ\,|\,x)≤1
になります。
簡単な図形にして考えてみると、
基本的には『接線の傾きが 0 になる』箇所がありそうです。
そこの「一番高いところ」が『最大』になりますし。
というわけで、同じく『対数尤度関数の最大』から、
「尤度関数(条件付き確率)の最大」を求めてみましょう。
つまりは『対数尤度関数』の最大なので、
「接線の傾きが 0 になる(変化量無し)」箇所から、
その中で一番大きなものが、最大の指数になります。
つまりは「偏微分」を使って、接線の傾きを求めれば良いわけです。
ということは↓みたいにすれば良いわけですね。
\displaystyle \frac{∂}{∂θ}\log_{e}Lik(θ\,|\,x)=0
これを解けば、最大が求められます。
そして、これこそが『尤度方程式』なわけです。
前後をひっくり返して繰り返し確認してみましょう。
いわゆる形式的な言い回しをします。
『尤度方程式』の定義は、
\displaystyle \frac{∂}{∂θ}\log_{e}Lik(θ\,|\,x)=0
です。
というわけで、保留していた↑の具体例を解いてみましょう。
\displaystyle \frac{∂}{∂θ}\log_{e}{}_n\mathrm{C}_x\cdot θ_{est}^x(1-θ_{est})^{n-x}=0
この「尤度方程式」から『最尤推定量』を求めます。
まず「偏微分」をする前に、中の式を整理しておきましょう。
\log_{e}{}_n\mathrm{C}_x\cdot θ_{est}^x(1-θ_{est})^{n-x}
\displaystyle =\log_{e}\frac{n!}{(n-x)!x!}θ_{est}^x(1-θ_{est})^{n-x}
ここで「 \log_{e}ab=\log_{e}a+\log_{e}b 」を使うと、
(詳細は対数関数の性質を確認してください)
=\log_{e}n!+\log_{e}((n-x)!)^{-1}+\log_{e}(x!)^{-1}
+\log_{e}θ_{est}^x+\log_{e}(1-θ_{est})^{n-x}
\log_{e}n!+\log_{e}((n-x)!)^{-1}+\log_{e}(x!)^{-1} の部分は、
「変数 θ_{est} 」の『偏微分』を考えるので「定数扱い」されますから、
「偏微分」をすると消えます。(変化しないので 0 になる)
なので、その部分を省いて整理すると、
\log_{e}θ_{est}^x+\log_{e}(1-θ_{est})^{n-x}
=x\log_{e}θ_{est}+(n-x)\log_{e}(1-θ_{est})
これで式の整理が終わったので、
改めて「変数 θ_{est} 」について『偏微分』すると、
\displaystyle \frac{∂}{∂θ}\left(x\log_{e}θ_{est}+(n-x)\log_{e}(1-θ_{est})\right)=0
対数関数の微分に関しては、結果だけ紹介します。
詳細は別の記事で。
\displaystyle \frac{d}{dx}\log_ex=\frac{1}{x}
これと、少しだけ込み入った微分の操作を使います。
具体的には↓みたいな考え方です。(詳細は微分の別記事で)
\displaystyle \frac{dy}{dx}=\frac{dy}{dz}\cdot\frac{dz}{dx}というわけで微分すると、結果は↓になります。
\displaystyle \frac{∂}{∂θ}Lik(θ_{est}\,|\,x)
\displaystyle =\frac{∂}{∂θ}x\log_{e}θ_{est}+\frac{∂}{∂θ}(n-x)\log_{e}(1-θ_{est})+0
\displaystyle =x\cdot\frac{1}{θ_{est}}+(n-x)\cdot\frac{1}{1-θ_{est}}\frac{∂}{∂θ}(1-θ_{est})
\displaystyle =\frac{x}{θ_{est}}+(-1)\frac{n-x}{1-θ_{est}}=0
はい、というわけで、これを解けばフィニッシュです。
ようやっと『最尤推定量』が出てきます。
\displaystyle \frac{x}{θ_{est}}+(-1)\frac{n-x}{1-θ_{est}}=0
\displaystyle \frac{x}{θ_{est}}=\frac{n-x}{1-θ_{est}}
\displaystyle x(1-θ_{est})=(n-x)θ_{est}
x-xθ_{est}=nθ_{est}-xθ_{est}
x=nθ_{est}
\displaystyle ∴θ_{est}=\frac{x}{n}
というわけで『最尤推定量』が求まりました。
いやはや、ちゃんと直観的な値が出てきてびっくりですね。
というのも、意味としては、
「サンプリングしたサンプルの個数 n 」で、
「片方の結果が出た回数 x 」を割ってます。
具体的には「 100 回」の内「 90 回表が出た」なら、
『一番もっともらしい表が出る確率』は「 90/100 」って言ってます。
人間の直観にちゃんとマッチしてますね。