【良いモデルとは】AIC(赤池情報量基準)について。

モデルを比較する時に、観測したデータとの当てはまりの良さで判断することがあります。これは最大対数尤度で考えています。

「対数尤度が大きいモデルが良い」と言うのは、一つの軸ではありますが複雑なモデル(=実用的ではないし、モデルの解釈がしにくい)になるほどデータを説明できるので微妙です。この記事では、モデルを選択する一つの基準としてAICを説明します。

AICとは

AIC(赤池情報量基準)と言う基準は、「どれだけ良い予測ができるか」で「良いモデル」を決定します。結論から言うと、下のAICが小さいほど「良いモデル」です

日本語版

第1項はモデルの観測データへの当てはまりの良さを表し、第2項は母数の数に対する自由度の損失に対応します。

これだけみても意味がわからないと思います。順を追ってみていきましょう。

導出①:逸脱度(Deviance)

逸脱度は-2(最大対数尤度)のことです。つまり当てはまりの悪さのことを言います。GLMモデルをRで使うと逸脱度が出力されます。最大対数尤度は、最大尤度を対数化したものです。尤度については、【尤度って?】尤度関数と最尤推定量の解説と例題。をご覧ください。

逸脱度が小さいほどAICが小さくなり、モデルとしては良くなります。

*そもそも、予測の良さとは

次に同じデータの取り方で別のデータを得たときに、事前に作ったモデルがどれほど別のデータに当てはまっているか

具体的には、池にいる魚の全長を調べるために池から50匹の魚を釣るとします。そこで作ったモデルが、次に池で50匹の魚を捕まえたときのデータに当てはまりが良ければ、「良い予測ができている」と考えます。

→なんとなく、データセットの平均を取れば良いのではないかという気がしてきます。

導出②:平均対数尤度

しかし、無限にサンプルを生成することはできないので、正しい平均対数尤度は計算できません。そこで、バイアス補正を考えます。

左辺は平均対数尤度で、右辺は最大対数尤度からバイアスを除いています。最大対数尤度は求められるので、バイアスの平均だけわかれば平均対数尤度が求められそうです。

実は、最尤推定するパラメーターがk個のモデルの平均対数尤度の推定量は、logL-kと知られています。平均対数尤度が高ければ高いほど良いですが、AICでは-2という負の数を掛けているので、小さいほど「予測ができている」というわけです。

自由度について

第二項は2(パラメーター数)でした。これは、自由度の増減による推定値の妥当性に関わっています。

パラメーター数が多ければ多いほど、自由度は下がっていきます。

モデルの自由度が低い、つまりパラメーター数が増えるほど、AICは大きくなっていきます。しつこいですが、AICは大きい方が予測の精度が下がります。

代わりに、より正しい推定値を取るには、より多くのデータ量が必要なのです。

事例:岡山県の気圧と湿度の関係

datehumiditypressure
1811012.3
2841012.5
3781012
4751013
5771012.2
6841012.6
7771013.4
8731015
9681012.8
10721011.4
11741014.4
12881013.2
13841010.6
14861010.6
15761013.1
humidity <- scan("humidity.csv")
pressure <- scan("pressure.txt")

m <- glm(humidity ~ pressure , family = poisson)

#ポアソン回帰
#湿度=β0 + β1(気圧)

コードはこのようになります。ポアソン回帰を行いました。では、summary(m)で肝心のAICなどをみてみましょう。

summary(m)

湿度 =3,360448 + 0.012740(気圧) という推定結果が出ました。ここのAICは97.01という結果が出ました

ちなみに、単回帰なのでパラメータ数は1です。この気圧と湿度の関係を考えるモデルをいくつか作り、AICで比較するというのが良いモデルの決め方になります。

常にAICでモデルを選べば良い

予測の良さという観点で言えば、AICで比較すると良いモデルがえられます。しかし、「真に優れたモデル」を選べるわけではありません。

また、予測の多さというのはサンプルサイズに大きく依存します。このようなAICモデルの特性を理解しつつ、自分の観察する事象との相性など考えながら、比較方法は選択してください。

FOLLOW ME !

PAGE TOP