【モデル選択】AIC(赤池情報量基準)についてわかりやすく解説

モデルを比較する時に、観測したデータとの当てはまりの良さで判断することがあります。

これは最大対数尤度で考えています。

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

この記事では、モデルを選択する一つの基準としてAICを説明します。

AIC(赤池情報量基準)

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

結論から言うと、下のAICが小さいほど「良いモデル」です

この基準の強さは、どの統計モデルでも使えるという点です。

$$AIC=-2log L + 2k$$

logLは対数尤度関数に最尤推定量を代入した、最大対数尤度です。

また、kはパラメータです。

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

これだけみても意味がわからないと思います。

順を追ってみていきましょう。

導出①:逸脱度(Deviance)

逸脱度は-2(最大対数尤度)のことです。つまり当てはまりの悪さのことを言います。

GLMモデルをRで使うと逸脱度が出力されます。

最大対数尤度は、最大尤度を対数化したものです。

尤度については、【尤度って?】尤度関数と最尤推定量の解説と例題。をご覧ください。

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

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

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

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

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

導出②:平均対数尤度

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

$$E(logL)=logL -bias$$

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

実は、最尤推定するパラメーターがk個のモデルの平均対数尤度の推定量は、logL-kと知られています。

平均対数尤度が高ければ高いほど良いですが、AICでは-2という負の数を掛けているので、小さいほど「予測ができている」というわけです。

統計モデルの予測の良さとモデルの簡潔性のバランスの取れたモデルのAICは小さくなります。

自由度について

第二項は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で使う】KL divergence(カルバック-ライブラー情報量)をわかりやすく解説|python

AICが低いモデルで予測値を出し、データを補完することについて

よく欠損値があるデータを保管する際に、中央値や最頻値、平均などで保管するという方法がありますが、

あまりに多い場合だと、他の特徴量の関係を無視したデータが出来上がってしまいます。

この場合に、汎化性能の高いモデルでデータを補完するというアイデアがあったります。

この場合に注意して欲しいのが、実際のデータと違い回帰直線の周りにばらつかずに、予測値は回帰線に並ぶため、実際よりも他の特徴量との相関係数は高くなります

実際よりも相関を過大に評価することになるため、留意して使いましょう。

補足:ARモデルの最適な次数pの決定にAICを使う。

AICの使い方の例として、時系列モデルの次数の決定があります。

今回は、自己回帰モデルを扱います。

【時系列】ARモデルをわかりやすく解説|Yule-Walker法や最尤法も

自己回帰モデルは、時系列モデルの中でも単純な構造になっていて、以下のように、\(t-1\)時点の観測値が\(t\)時点の値の説明変数になります(この場合次数1)

$$AR(p):Y_t = β_0+β_1Y_{t-1}+β_2X_{t-2}+…+β_pX_{t-p}+ε_t$$

AR(p)の次数pは、ラグ変数と呼ばれ、ARモデルにおける説明変数の個数です。

このモデルを推定しようと考える時、pを決定するためにAICを使います。

$$AIC(p)=log(\frac{RSS(p)}{T})+(p+1){\frac{2}{T}}$$

ここでRSS(p)とは、AR(p)モデルにおける残差平方和です。Tはサンプルサイズですね。

残差平方和は、以下のコンテンツで復習できます。

決定係数とは?説明変数の確らしさを図る指標の一つ。

そして、AICを最小にするpが最適なpになります

最大のラグ次数をp<5などと設定しておき、一つずつAICをチェックするということです。

以下のように、第1項は残差平方和の単調変換なので、ラグ次数pが大きくなるほど単調に減少します。

→データの説明力は上がる

一方、第2項は説明変数の個数へのペナルティを表すので、ラグ次数pが大きくなるほど単調に増加します。

→データの簡潔性は失われる

ラグ次数p0123
第1項403.7118.6118.4117.6
第2項1.031-0.194-0.195-0.202
AIC0.0140.0280.0420.056

補足その2:AICはモデル同定の一致性を持つのか|BICとの比較

さて、これまでの議論でAICはモデル選択に使われる情報量基準だとわかりました。

では、AICはモデル同定の一致性、つまりサンプルサイズが大きくなるにつれてモデルを選択する確率が1に収束する性質はあるのでしょうか?

おさらいですが、AICは「モデルの複雑さ」と「データへのフィットの良さ」のバランスを評価します。

しかし、サンプルサイズが増えてもAICが最小のモデルが「真のモデル」(データ生成プロセスの真のモデル)を選択する保証はありません。

このため、モデル同定の「一致性(consistency)」がないです。

一方BICという情報量基準には、モデル同定の一致性があります。

サンプルサイズが大きい場合、BICが最小のモデルは真のモデルに収束します。

BICは次のように定義されます

$$BIC=-2log {max p(x|λ)} + 2k$$

$$BIC=-2 max{log\int{f(x|θ)π(θ|λ)dθ}} + 2k$$

ベイズ情報量基準においては、以下のようにパラメトリックモデルと事前分布、そしてλというハイパーパラメータを設定します。

$$f(x|θ);θ\in{Θ}$$

\(π(θ|λ)\):事前分布

\(λ\):ハイパーパラメータ

ここで、nはデータの数です。

AICとBICの違いはパラメータkの前の項で、AICはパラメータ数に対して一定のペナルティ「2」を与えますが、BICはサンプルサイズに対して対数ペナルティ「\(ln(n)\)」を与えます。

サンプルサイズnが大きくなると、BICの罰則項はAICよりもはるかに大きくなり、よりシンプルなモデル(つまりパラメータ数が少ないモデル)を選択する傾向があります。

つまり、モデル同定の一致性があります。

しかし、一般的には「真のモデル」が存在するという前提自体が現実のデータ解析においては必ずしも成り立たないこと、またAICが重視する「予測の良さ」もまた重要な観点であるため、必ずしもBICが優れているとは限りません。

こちらの内容は統計検定準一級の選択問題で出たりします。

要チェックです!

FOLLOW ME !