NagoyaStat #2

データ解析のための統計モデリング入門 第4章

GLMのモデル選択

-AICとモデルの予測の良さ-

  • @nishiokya
  • 2016.10.01

はじめに

自己紹介

  • @nishiokya
    • エンジニア
      • 統計検定2級(2014)
      • AWS/Azure
      • 地図+ビッグデータ
    • Focus
      • カーナビのセンサー情報の収集・変換・分析

0.はじめに

第4章の目次

4. GLMのモデル選択 −AICとモデルの予測の良さ-

4.1 データはひとつ,モデルはたくさん

4.2 統計モデルの当てはまりの悪さ:逸脱度

4.3 モデル選択基準AIC

4.4 AICを説明するためのまた別の例題

4.5 なぜAICでモデル選択をしてよいのか

4.6 この章のまとめと参考文献

0.はじめに

振り返り

4章の立ち位置

第2章以降の説明の流れ

まえがき P.viiより

0.はじめに

用語

第4章の用語集

  • AIC(赤池情報量規準 )
  • 逸脱度
    • Null逸脱度
    • 最大の逸脱度
    • 最小の逸脱度
    • 残差逸脱度
  • 平均対数尤度

4章のサマリー

  • 4-2まで 当てはまりの良さと予測のよさ
    • 3章で登場したGLM3種の統計モデルを比較する
    • 逸脱度から統計モデルのパラメータ数とあてはまりの関係を理解する
  • 4-3 AICの使い方
    • AICからパラメータ数と予測 の関係を理解する
  • 4-4以降 AICの詳細
    • AICがなぜモデル判定に利用できるかを理解する

4章のサマリー

良いモデルとは

観測データにあてはまりが良いものが「良い」統計モデルか?

NO

母集団を「良く推測をするものが良いモデル」または、未知のデータを「良い予測をするものが良いモデル」

「良い予測をするものが良いモデル」という考えで、統計モデルを選択する方法をまなぶ

4章のサマリー

統計モデル選択

複数の統計モデルの中からなんらかの意味で「良い」モデルを選ぶこと

  • 良いモデルの選択基準は複数ある
    • 良いあてはまりをする
    • 良い予測をする

4章のサマリー

良い予測とは

  • 同じデータ取得方法で異なるデータを得たとき、異なるデータを正確に言い当てれる

4章のサマリー

良い予測するモデルを選ぶには

良い予測するをする選択基準を利用する

  • 良いモデルの判定方法は複数ある
    • 「あてはまりのよい」モデルの選択基準 
      • 最大尤度(最大対数尤度)
      • p値(?)
    • 「予測のよい」モデルの選択基準
      • AIC

4-1 データはひとつ,モデルはたくさん

3章で作成した統計モデルのうち一番「良い」モデルはどれ?

3章の統計モデルの概要
モデル名 概要 Rの構文
xモデル 体サイズが影響するモデル glm(y~x,data = d,family = poisson)
fモデル 施肥効果が影響するモデル glm(y~f,data = d,family = poisson)
x+fモデル 体サイズと施肥効果が影響するモデル glm(y~x+f,data=d,family=poisson)
4章で追加される統計モデル
モデル名 概要 Rの構文
一定モデル*1 体サイズの効果も施肥効果も影響しないモデル。RではNULLモデルという glm(y~1,data=d,family=poisson)
フルモデル 後述

4-1 データはひとつ,モデルはたくさん

統計モデルを最大対数尤度で評価

xモデルの最大対数尤度の算出方法

logLik(glm(y~x,data = d,family = poisson))

モデルごとの最大対数尤度
モデル名 最大対数尤度 パラメータ数(k)
xモデル -235.3863 2
fモデル -237.6273 2
x+fモデル -235.2937 3
一定モデル -237.6432 1
フルモデル -192.2 100

モデルごとの最大対数尤度を比較する

  • x+fモデルの最大対数尤度が高い
    • あてはまりは良い
  • パラメータ数が多い
    • モデルが複雑

      この結果をどう評価するのか?

4.2 統計モデルのあてはまりの悪さ:逸脱度

逸脱度(deviance)とは

最大対数尤度を変形した統計量

D =  -2 logL* ・・・・ 最大対数尤度に -2 をかけている

4.2 統計モデルのあてはまりの悪さ:逸脱度

逸脱度とは

「あてはまりの良さ」ではなく「あてはまりの悪さ」で表現する指標

モデルごとの逸脱度
モデル名 最大対数尤度 パラメータ数(k) 逸脱度 コメント
xモデル -235.3863 2 470.7725
fモデル -237.6273 2 475.2546
x+fモデル -235.2937 3 470.5874
一定モデル -237.6432 1 475.2864 最大の逸脱度
フルモデル -192.2 100 384.4 最小の逸脱度

パラメータ数を増やせば逸脱度はさがる

 最大対数尤度に -2をかけただけなので当然

4.2 統計モデルのあてはまりの悪さ:逸脱度

さまざまな逸脱度

さまざまな逸脱度の定義

名前 定義 glmのレスポンス
逸脱度 当てはまりの悪さ(-2logL*)
最小の逸脱度 フルモデルをあてはめたときの逸脱度
最大の逸脱度 一定モデルを当てはめたときの逸脱度
Null逸脱度 最大の逸脱度 - 最小逸脱度 Null Deviance
残差逸脱度 逸脱度 - 最小逸脱度 Residual Deviance

logL*は最大対数尤度

4.2 統計モデルのあてはまりの悪さ:逸脱度

最小の逸脱度とは

「もっともあてはまりの良いモデル」の逸脱度

「フルモデル」が最小の逸脱度となる

フルモデル

データ1つ1つに対してパラメータを1つ1つ割り当てたモデル

推定用データに最適化しているため、予測には使えない

4.2 統計モデルのあてはまりの悪さ:逸脱度

最大の逸脱度とは

「一定モデル(NULLモデル)」の逸脱度

パラメータが1つしかない

4.2 統計モデルのあてはまりの悪さ:逸脱度

Null逸脱度とは

最大の逸脱度(「一定モデル(NULLモデル)」の逸脱度) - 最小の逸脱度となる

4.2 統計モデルのあてはまりの悪さ:逸脱度

残差逸脱度とは

xモデルの逸脱度一覧
名前 定義
最大対数尤度 -235.3863 logLik(glm(y~x,data = d,family = poisson))
逸脱度 470.7725 -2 * logLik(glm(y~x,data = d,family = poisson))
残差逸脱度 84.99 470.7725 - 最小逸脱度
> glm(y~x,data=d,family=poisson)
Call:  glm(formula = y ~ x, family = poisson, data = d)
Coefficients:
(Intercept)            x  
    1.29172      0.07566  
Degrees of Freedom: 99 Total (i.e. Null);  98 Residual
Null Deviance:      89.51 
Residual Deviance: 84.99    AIC: 474.8

4.2 統計モデルの当てはまりの悪さ:逸脱度

残差逸脱度とは

モデルごとの残差逸脱度
モデル名 最大対数尤度 k

逸脱度

残差逸脱度

NULLモデル(一定モデル) -237.6432 1

475.2864

89.5

xモデル -235.3863 2

470.7725

89.5

fモデル -237.6273 2

475.2546

85.0

x+fモデル

-235.2937

3

470.5874

84.8

フルモデル -192.2 100

384.4

0

4.2 統計モデルのあてはまりの悪さ:逸脱度

残差逸脱度は

パラメータ数さえ増やせば残差逸脱度はどんどん小さくなりあてはまりが良くなる

残差逸脱度を0近くなるということはフルモデルにちかくなる??

残差逸脱度ではパラメータ数が多いx+fモデル が良いモデルと選択

4.3 モデル選択基準 AIC

パラメータが多い方が、当てはまりは良くなる

パラメータが多い方が、たまたま得られたデータが当てはまりが良くなる

パラメータが多い方が、かならず予測は良くなるわけではない

4.3 モデル選択基準 AIC

モデル選択

複数の統計モデルの中からなんらかの意味で「良い」モデルを選ぶこと

「良い」モデルを選ぶ基準をモデル選択基準という

AICは予測の良さを重視するモデル選択基準

4.3 モデル選択基準 AIC

AICの計算式

AIC = -2 {(最大対数尤度) - 最尤推定したパラメータ数) }
    = -2 ( logL* -K )
    = D +2k

AICの値が一番小さいモデルが良い予測をするモデル

4.3 モデル選択基準 AIC

統計モデルのAIC計算結果

モデル名 最大対数尤度 k 逸脱度 残差逸脱度

AIC

NULLモデル(一定モデル) -237.6432 1 475.2864 89.5

477.3

xモデル -235.3863 2 470.7725 89.5

474.8

fモデル -237.6273 2 475.2546 85.0

479.3

x+fモデル -235.2937 3 470.5874 84.8

476.6

フルモデル -192.2 50 384.4 0

585.8

AICでは xモデル をx+fモデルより良いモデルと選択

4.4 AICを説明するための別の説明

ネストしている関係のモデルとは

結論: ネストしている関係のモデルだとAICの精度はより良くなる

ネストした関係のモデル

1) logλi = β1 ・・・一定モデル(K=1)
2) logλi = β1 +  β2 * xi ・・・x モデル(K=2)
  • x モデルのβ2を0とすると一定モデルとおなじ。
    • 1)と2) はネストしている関係のモデルという 

4.5 なぜAICでモデル選択をして良いのか

4.5.1 統計モデルの予測の良さ

4.5.2 最大対数尤度のバイアス補正

4.5.3 ネストしているGLM間のAIC比較

4.5.1 統計モデルの予測の良さ

平均対数尤度とは

  • 統計モデルに対して構築時と同じデータ取得方法で異なるデータセットを複数回あてはめた時の最大対数尤度の平均
    • 統計モデルの予測の良さを表す量

4.5.1 統計モデルの予測の良さ

データ解析の目的

  • 観測される現象の背後のある「しくみ」の特定
  • 観測される現象の背後のある「しくみ」を近似的に代替しうる統計モデルの構築

観測される現象の背後のある「しくみ」に近いか =「予測の良さ」

サンプルデータを説明できる = 「あてはまりの良さ」

4.5.1 統計モデルの予測の良さ

予測の良さとは

同じデータ取得方法で異なるデータを得たとき、統計モデルはどれくらい正確に言い当てれるか

平均対数尤度とは

同じデータ取得方法で異なるデータセットを複数回あてはめた時の最大対数尤度の平均

4.5.1 統計モデルの予測の良さ

例題 平均対数尤度の説明

1. パラメータ推定用データを作成する

真のモデル(β1=2.08=log(8))から50個の観測データを作る。

4.5.1 統計モデルの予測の良さ

例題 平均対数尤度の説明

2. 一定モデルのパラメータを推定する

50個の観測データで最尤推定し一定モデルのパラメータを推定する

  • 50個の観測データから推定された一定モデルのβ1が2.04とする
    logλi = β1 ・・・一定モデル
    真のβ1=2.08
    50個データを作ったときはβ1=2.04
    最大対数尤度 LogL* = -120.6
    パラメータ推定用データを作成する

4.5.1 統計モデルの予測の良さ

例題 平均対数尤度の説明

3. 予測用データを作成する

真のモデル(β1=2.08=log(8))から50個の観測データから予測データセットを200個作成する

真のモデル(β1=2.08)から50個データを作る。一定モデルのβ1が2.04となったとする

4.5.1 統計モデルの予測の良さ

例題 平均対数尤度の説明

4. 一定モデル(β1=2.04)で200個の予測データセットごとに最大対数尤度を求める

5. 200個の予測データセットごとの最大対数尤度から平均対数尤度を求める

200回最大対数尤度の平均が平均対数尤度

平均対数尤度 E(logL) = -122.9

真のモデル(β1=2.08)から50個データを作る。一定モデルのβ1が2.04となったとする

4.5.2 最大対数尤度のバイアス補正

最大対数尤度と平均対数尤度の関係1

例題の最大対数尤度と平均対数尤度の関係

  • パラメータ推定用データの最大対数尤度 LogL'* = -120.06となる
  • 予測したときの 平均対数尤度 E(logL) = -122.9となる

一定モデルの最大対数尤度が平均対数尤度 よりたかい

例題のパラメータはあてはまりの良さが過大評価されている

パラメータ推定用データを作成する ※ パラメータ推定用データの最大対数尤度が平均対数尤度 を常に高くなるわけではない

4.5.2 最大対数尤度のバイアス補正

最大対数尤度と平均対数尤度の関係2

バイアス(b) = logL* -E(logL)
例題のバイアス(b) = -120.06 - -122.9 = 1.84

12回繰り返しを比較する

最大対数尤度と平均対数尤度の計算を12回

4.5.2 最大対数尤度のバイアス補正

200回繰り返しを比較する

最大対数尤度と平均対数尤度の計算を12回 例題のバイアスの標本平均は1.01

4.5.2 最大対数尤度のバイアス補正

平均対数尤度E(logL)より、最大対数尤度logL*のほうが平均的に1ぐらい大きい

4.5.2 最大対数尤度のバイアス補正

今回の例題の最大対数尤度と平均対数尤度の関係

最大対数尤度から平均対数尤度の推定値を求めるには、バイアスをひけばよい

E(logL) = logL* -b
bを1とすると
E(logL) = logL* -1

数理統計学における最大対数尤度と平均対数尤度の関係

E(logL) = logL* -k(パラメータ数)

4.5.3 ネストしているGLM間のAIC比較

4.5.2でバイアス補正量(b)は1としたが、バラツキが多いのでは?

ネストしている場合は、バラツキが小さくなる

4.5.3 ネストしているGLM間のAIC比較

ネストした関係のモデルの比較

logλi = β1 ・・・一定モデル(k=1)
logλi = β1 +  β2 * xi ・・・x モデル(k=2)

一定モデルとx モデルを比較する

ネストした関係一定モデルとx モデルと最大対数尤度の比較

xモデルのlogL* - 一定モデルのlogL*  = 標本平均0.54 #xモデルのあてはまりが良くなる

ネストした関係 一定モデルとx モデルと平均対数尤度の比較

xモデルのE(logL) - 一定モデルのE(logL)  = 標本平均0.54 #xモデルの予測が悪くなる

ネストしている一定モデルとxモデルの数値例

4.5.3 ネストしているGLM間のAIC比較

ネストしている場合は、バラツキが小さくなる

一定パラメータに一つ加えたモデルの概念的なまとめ

  • あてはまりのよさである最大対数尤度 log L*は0.5ぐらい増える
  • 予測能力である平均対数尤度E(log L)は0.5ぐらい減少する #       ⇩ ## logL* の平均バイアスは1増加する

4.6 まとめ

モデルを選択する方法

良いモデルとは

予測が良いものが良いモデルとかんがえるべき

AICの使い方を理解する

AICが正しい理由

追加したパラメータが最大対数尤度の統計的な変化量より大きいかどうかで選択できる