Engineering Skills

製品開発エンジニアがデータ解析のノウハウを垂れ流します

平均と分散の最尤推定

 

今回は正規分布から平均、分散の最尤推定について説明します。数式ばっかりですが、できる限り書き下していこうと思います。

 

正規分布

平均をμ、分散をσ2としたとき、正規分布において変数xの確率密度関数(ザックリいうとxの取りうる確率)は

f:id:OceanOne:20200127005803j:plain

と表わされます。分散の平方根はもちろん、標準偏差です。

尤度(対数尤度)

平均を推定するとき、尤度(ゆうど)というものを使います。尤の字は国語辞典などをひくと「もっともすぐれている」という意味があります。簡単に言えば、一番それっぽいということ。

では尤度を具体的に説明します。例えばxが正規分布に従い仮に平均をμ、分散をσ2としたとき、このデータが得られる確率は

f:id:OceanOne:20200127010011j:plain
です。同じ母集団からのデータが二つある場合は、同時に二つの事象が起こる確率なので、二つの確率をかけ合わせて

f:id:OceanOne:20200127010352j:plain
となります。データがn個ある場合は、要素を全てかける記号Πを使って

f:id:OceanOne:20200127010404j:plain
と表わせます。平均、分散はこの式のパラメータなので、平均、分散を変化させた場合に、この式の計算結果が最も大きくなる(つまり確率が高い)値が最もそれらしい推定値と言えます。

ここまでは分かりやすいのですが、掛け算の世界はわかりにくいので足し算に変換します(こうしないと微分すると死にます)。ここで出てくるのが対数です。対数の積の公式は

f:id:OceanOne:20200127011849j:plain

です。対数は超便利ツールで、積を和に変換することができます!

f:id:OceanOne:20200127011917j:plain

この形を対数尤度と呼びます。さらに対数は単調増加なので、対数尤度が大きくなると尤度も大きくなり、対数尤度を最大化する平均、分散が尤もらしい推定値になります。ちょっと感動すら覚えます。

補足で尤度は、平均や対数がパラメータになっているので、尤度関数とも呼ばれます。

正規分布の対数尤度

正規分布の場合、尤度は

f:id:OceanOne:20200127014903j:plain

で、対数尤度は

f:id:OceanOne:20200127014921j:plain

f:id:OceanOne:20200127015135j:plain

f:id:OceanOne:20200127015520j:plain
となります。

平均の最尤推定

正規分布の対数尤度が得られたので、最尤推定してみます。最尤推定値を求める場合、平均や分散での偏微分が0となる値が推定値となります。この辺りは最小二乗法と同じです。単峰性の関数である場合、一次微分が0になる点が最大値になるイメージです。

まずは平均μで偏微分してみます。対数尤度の第一項は分散のみの関数なので、下記のようになります。

f:id:OceanOne:20200129015000j:plain

f:id:OceanOne:20200129015011j:plain

f:id:OceanOne:20200129015024j:plain

上式の右辺が0の場合に、対数尤度が最大化されるので

f:id:OceanOne:20200129015038j:plain

f:id:OceanOne:20200129015048j:plain

f:id:OceanOne:20200129015101j:plain

f:id:OceanOne:20200129015113j:plain

となり、見慣れた平均の式が出てきます。

分散の最尤推定

このまま分散もいってみましょう。分散σ2で偏微分すると

 

f:id:OceanOne:20200129020402j:plain

平均の場合と違って、対数尤度の第一項も第二項も分散σ2の関数です。σで偏微分するわけではなく、σ2で偏微分する点に気を付けてください。

f:id:OceanOne:20200129020557j:plain

f:id:OceanOne:20200129020613j:plain

f:id:OceanOne:20200129020625j:plain

平均と同様に、上式の右辺が0になる場合に対数尤度が最大化されます。

f:id:OceanOne:20200129020635j:plain

f:id:OceanOne:20200129020644j:plain

f:id:OceanOne:20200129020653j:plain

こちらも分散の計算式を導く事が出来ました。残念ながら分散をデータから推定する場合には、もうひと手間必要です。通常分散を推定する場合、nで割らず(n-1)で割る標本分散が用いられます。理由は不偏推定量になるからですが、この点は後日に回します。

さいごに

平均なんて「データを全部足してデータ個数で割るだけでしょ」と思ってしまいがちです。しかし式をたどると確かな根拠があり、意外と平均のやつちゃんとしてるなと思います。

実データを扱っていると外れ値のリスクがあるので、安易に中央値を計算してしまいます。データが正規分布に従っている限り、平均値が尤も確かな推定値です。外れ値などのリスクがないのに平均値を中央値で代用することは、解析の精度劣化を招くことには注意が必要ですね。