【Python】緑本こと『データ解析のための統計モデリング入門』を実装していく【第4章】

まだまだ続くみどり本
今日は第3章で作ったモデルの中から、一番良いモデルを選ぼうというお話です。


これまで色んなモデルを作ってみたけど、結局どれを選べばよいのか?

モデル選択は良い予測をするモデルを選ぶことが重要。観測データへの当てはまりの良さ(最大対数尤度)だけで選んではいけない。

(これまでに登場した最大対数尤度(対数尤度関数に最尤推定値を代入したときの対数尤度の値)は、あくまでも手元の観測データへの当てはまりのよさ。)

→モデル選択の1つの考え方としてAICによるモデル選択

# 以下AICのスコアを求める(AICについては後ほど説明)
print('1. xモデル', fit_x.aic)
print('2. fモデル', fit_f.aic)
print('3. xfモデル', fit_xf.aic)
1. xモデル 474.77250153972153
2. fモデル 479.2545139213737
3. xfモデル 476.5874384849873

→AICが一番小さいモデル、すなわち xモデル(種子数 y_iが個体 iの体サイズ x_iのみに依存する統計モデル)が最も良いモデルだと考えられる。

そもそもAICとは

AIC = -2  \times {最大対数尤度 - 最尤推定したパラメータ数}

=あてはまりの悪さである逸脱度( -2logL) +  2 \times (パラメータ数)

色々すっ飛ばしてざっくり言いますと、AICとは「予測の悪さ」だと解釈できます。つまり、値が大きいと予測が悪く、小さいと予測が良い。(予測の良さとは何かの話をしようとすると、AICの式に潜む平均対数尤度について説明する必要があるのですが、長くなってしまうので気になる方は緑本をご参照ください。)

そういうわけで、モデル選択では複数のモデルを比較してAICが最小のモデルを選ぶ。AICによるモデル選択では、良い予測をするモデルが良いモデル。あてはまりの良さの重視とは違います。

ちなみに、観測データが少ないときは、真のモデルよりもパラメータ数が少ないモデルの方が、AICが小さくなる可能性があることに注意。パラメータ数の多い統計モデルは、観測データへのあてはまりが良くなりがち。しかし、それはたまたま得られたデータへのあてはまりの向上であり、その統計モデルの予測の良さを損なっている可能性が高いのです。


さて、今回はAICを使って、手元にある観測データへのあてはまりの良さではなく、予測の良さでモデルを選択しようというお話しでした。

お付き合い頂き、ありがとうございました。

現象を数理モデルで表現・説明するのに慣れていない人のために、章ごとに異なる例題を解決していく過程を通して、統計モデルの基本となる考えかたを説明する。前半では、応用範囲のひろい統計モデルのひとつである一般化線形モデルの基礎を、後半では、実際のデータ解析に使えるように、それらをベイズ統計モデル化する方法を説明する。

コメント