BETA

統計的推定の基礎の基礎の基礎の観点から尤度のお気持ちを考えた

投稿日:2020-02-15
最終更新:2020-02-15

要約

・統計的推定の基礎の基礎の基礎に関して全体像を俯瞰してみた
・ついでに尤度に関して考察してみた

内容とモチベーション

この記事は、Waldの決定理論の枠組みで行われる統計的推定の根幹を俯瞰してみた記事です。何のために確率分布を考えるのか、確率分布をどう利用しているのか、統計解析では結局何をやっているのかがなんとなくイメージ出来たので、早速記事にしてみました。ついでに、そのイメージのまま尤度のお気持ちについて考えてみました。

統計的推定の全体像をざっくり理解

・統計的推定の本質は、観測されたデータの分布に確率分布を対応させ、確率分布に含まれるパラメータの値をデータから決定すること。 (ー松井、小泉 著、『統計モデルと推測』より)
・データの背後に確率モデルを想定し、データからモデルの推定や検定を行うことで母集団に関する何らかの結論を導くことを統計的推測という。背後に想定した確率モデルが与えられたデータと矛盾しないか、確率モデルとデータにある程度の乖離がある場合は結論にどの程度の妥当性があるかについて十分な注意が必要。(ー竹村 著、『現代数理統計学』より)
・大きな集団から少数のデータの情報を使って、もとの集団の性質について推測するのが推測統計。通常母集団分布が分かっていることはないため、「もし母集団がこの確率分布だったら、このくらいあてになる推定値が得られる」ということを検討する。(ー山田、杉澤、村井 著、『Rによるやさしい統計学』より)

統計解析では、母集団の性質を表す統計モデルとして確率分布を考える。つまり、未知の母集団を確率分布で置き換える。母集団はあくまでも未知。この統計モデルのパラメータを実際の観測値(実現象の観測=母集団からのサンプリングと捉える)から推定するのが統計的推定。推定の方法は、パラメータの実現値を求める点推定と、複数回のサンプリングでパラメータが高い確率で収まる値の範囲を推定する区間推定がある。この時、仮定した統計モデルが母集団からサンプリングされた標本の性質を上手く説明出来るように推定を行う。
つまり…

厳密ではないですが…、このような統計モデルを推定することが統計的推定の目標?
これを見ると、確率分布を学ぶ重要性が分かった気になります。

パラメータの推定方法には色々あって、最尤推定なんかが有名。ただし、最尤推定を含む古典的な統計的推定は、$i. i. d.$かつサンプルサイズが十分に大きく、適当な正則条件の下で理論が展開されている(正則モデルと言うらしい?)ので、この条件を満たさない場合には、推定に大きな誤差が生じる可能性がある(こうした場合の統計的推定に関しては、特異モデルにおける統計理論が役に立つ?)。さらに、行っているのはあくまでも仮定した統計モデルの観測値に対する適合であって、母集団と統計モデルがどれだけ整合しているかの評価を別に行う必要がある。という感じでしょうか。

尤度とは何か

・最尤推定値$\hat \theta (\mathbf{x})$は確率$\prod_{i=1}^{n} f(x_{i}, \theta)$が最大になる、つまり「尤もらしい」$\theta$の値と言える。(ー松井、小泉 著、『統計モデルと推測』より)
・尤度関数は観測値が与えられたときに母数の値の”もっともらしさ”を表す関数と解釈することが出来る。(ー竹村 著、『現代数理統計学』より)

「尤もらしさ」と言われても全然ピンと来なかったのですが、前述の立場に立ってみると、尤度が何を意味しているかについての考察を行うことが出来そうです。
観測値を$\mathbf{x} = (x_{1}, \cdots , x_{n})^T$、仮定した統計モデルを$f(\mathbf{x}; \theta)$とします。$\theta$は統計モデルのパラメータです。簡単のため、パラメータが一つの場合を考えています。
データが$i. i. d. $であるとき、尤度関数$L(\theta; \mathbf{x})$は
$$
L(\theta; \mathbf{x}) = \prod_{i=1}^{n} f(x_{i}; \theta)
$$
となります。
左辺は、全サンプル$\mathbf{x}$が与えられたときに、パラメータが$\theta$となる確率を表しています。一方右辺は、仮定した統計モデルにおいてパラメータが$\theta$のとき、サンプル$x_{i}$が生成される確率をすべてのサンプルにわたって掛け合わせたものです(これは全サンプル$\mathbf{x}$が生成される確率)。つまり尤度とは、パラメータ$\theta$において、仮定した統計モデルが観測値にどれだけ適合しているかを表す指標であり、これを$\theta$の関数としてみたものが尤度関数ということになりそうです。なぜなら、パラメータ$\theta$をある値に決めたとき、そのパラメータ値における統計モデルが観測値にフィットしていなかったら右辺の確率は低くなり、そのパラメータを取る確率(尤度=左辺)が低いということになるからです。そして、その$\theta$を観測値から推定する手法の一つが最尤推定ということですね。
尤度は、母集団ではなく観測値に対する統計モデルの適合を意味していることが重要そうです。母数の尤もらしさを表すと解釈出来るのは、仮定したモデルが母集団をよく説明出来るというある程度の保証がある場合だと考えられます。

簡単な数値実験で確かめてみましょう。
平均2.0、分散1.0の正規分布に従うサンプル(観測値)を100個生成し、統計モデルは正規分布を仮定します。

ここで母集団についてはいったん忘れてください。(強引)

import numpy as np  
import matplotlib.pyplot as plt  

np.random.seed(10)  
size = 100  
X = np.random.normal(loc = 2.0, scale = 1.0, size = size)  

xrange = np.linspace(-5, 5)    #適当な範囲で考える  

def gaussian_dist(mean, var, xrange):  
    """正規分布の確率密度関数"""  
    return 1/np.sqrt((2*np.pi*var**2)) * np.exp(-(xrange - mean)**2/(2*var**2))  


mean1 = 0  
mean2 = 2.0  
mean3 = 3.0  
p1 = gaussian_dist(mean1, 1.0, xrange)  
p2 = gaussian_dist(mean2, 1.0, xrange)  
p3 = gaussian_dist(mean3, 1.0, xrange)  


fig = plt.figure(figsize = (6, 6), dpi = 100)  
ax = fig.add_subplot(111)  
ax.set_title("$n = {0}, \mu = {1}, \sigma = 1.0$".format(size, 2.0), fontsize = 14)  
ax.hist(X, bins = 20, density = True, edgecolor = "black")  
ax.plot(xrange, p1, label = "$(\mu, \sigma) = ({0}, {1})$".format(mean1, 1.0))  
ax.plot(xrange, p2, label = "$(\mu, \sigma) = ({0}, {1})$".format(mean2, 1.0))  
ax.plot(xrange, p3, label = "$(\mu, \sigma) = ({0}, {1})$".format(mean3, 1.0))  
ax.set_xlabel("X", fontsize = 16)  
ax.set_xlim(-5, 5)  
ax.legend(fontsize = 14)  

これを実行すると以下の図が得られます。

ここでは、分散は固定して平均のみを動かしています。
直感的には$\mu = 2.0$としたモデルが最も観測値をよく説明出来ていそうです。
各パラメータにおける統計モデルが、観測された100個のデータを生成する確率(尤度)を計算してみます。

f1 = 1/np.sqrt((2*np.pi)) * np.exp(-(X - mean1)**2/2)  
pr1 = np.prod(f1)  

f2 = 1/np.sqrt((2*np.pi)) * np.exp(-(X - mean2)**2/2)  
pr2 = np.prod(f2)  

f3 = 1/np.sqrt((2*np.pi)) * np.exp(-(X - mean3)**2/2)  
pr3 = np.prod(f3)  

print(np.log(pr1), np.log(pr2), np.log(pr3))    #対数尤度  
#-354.850803740261 -138.9674711528862 -181.02580485919881  

やはり尤度は、観測値に最も適合したモデルで最大となります。
注意すべきなのは、このケースでは母平均が既知であり、かつそれと同じ性質を持つ統計モデルを仮定しているという点です。これにより、尤度が最大になるモデルは母集団もよく説明出来る!と錯覚しそうですが、観測値の情報しか使っていないため、母集団は未知であるとしても得られる結論は同じです(強引だが、実際にそうした)。
また、サンプル数が100しかないので正規分布っぽく見えているというケースも想定できます。真の分布はもっと右側にスソの重い分布だけど、標本抽出の都合でたまたま正規分布っぽくなったというようなケースです。この場合、正規分布をモデルとして用いても、どこかで尤度は最大になることが期待されますが、このときのパラメータにおけるモデルが母集団を上手く説明出来ていることにはなりません(そもそも妥当なモデルではない)。
実際の分析では母集団は未知なので、仮定した統計モデルと母集団の整合性は別途評価する必要があるのでしょう。統計モデルが母集団からかけ離れたものであるとき、最尤推定値は大きな誤差を含んでいそうなことは想像できます。

以上のように、統計的推定はあくまでも仮定した統計モデルに対して行うものであって、母集団にフィットしているかどうかは別問題だと考えられます。このあたりのより正確な、数理的な背景については今後深めていくつもりです。

まとめ

統計的推定の全体像や前提を意識することで、確率分布が推定に果たす役割がぼんやり理解出来ました。また、尤度とは何かという疑問を少しだけクリアにすることが出来たと思います。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

ポエムや機械学習・統計の理論と実装について勉強したことを書いていきます。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう