#!/usr/bin/env python # coding: utf-8 # # NagoyaStat #2 # # データ解析のための統計モデリング入門 第4章 # ### GLMのモデル選択 # ### -AICとモデルの予測の良さ- # + @nishiokya # + 2016.10.01 # # 0.はじめに # ## # - モデルを選択する方法 # - AICを使い方を理解する # - AICが正しい理由 # # ## 前提 # - AICの展開はしない # # はじめに # ## 自己紹介 # + @nishiokya # + エンジニア # + 統計検定2級(2014) # + AWS/Azure # + 地図+ビッグデータ # + Focus # + カーナビのセンサー情報の収集・変換・分析 #
NO
# # ### 母集団を「良く推測をするものが良いモデル」または、未知のデータを「良い予測をするものが良いモデル」 # ### 「良い予測をするものが良いモデル」という考えで、統計モデルを選択する方法をまなぶ # # # 4章のサマリー # ## 統計モデル選択 # ### 複数の統計モデルの中からなんらかの意味で「良い」モデルを選ぶこと # - 良いモデルの選択基準は複数ある # - 良いあてはまりをする # - 良い予測をする # # 4章のサマリー # ## 良い予測とは # + 同じデータ取得方法で異なるデータを得たとき、異なるデータを正確に言い当てれる # # 4章のサマリー # ## 良い予測するモデルを選ぶには # ### 良い予測するをする選択基準を利用する # - 良いモデルの判定方法は複数ある # - 「あてはまりのよい」モデルの選択基準 # - 最大尤度(最大対数尤度) # - p値(?) # - 「予測のよい」モデルの選択基準 # - AIC # # 4-1 データはひとつ,モデルはたくさん # ## 3章で作成した統計モデルのうち一番「良い」モデルはどれ? #この結果をどう評価するのか?
# # 4.2 統計モデルのあてはまりの悪さ:逸脱度 # ## 逸脱度(deviance)とは # ### 最大対数尤度を変形した統計量 # # ``` # D = -2 logL* ・・・・ 最大対数尤度に -2 をかけている # ``` # # # # 4.2 統計モデルのあてはまりの悪さ:逸脱度 # ## 逸脱度とは # ### 「あてはまりの良さ」ではなく「あてはまりの悪さ」で表現する指標 # # #逸脱度
|残差逸脱度
# ---- | ---- | ---- | ----| ----| ---- # 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 # ``` # ![パラメータ推定用データを作成する](https://c4.staticflickr.com/6/5347/29289951403_5a5e518f0e.jpg "パラメータ推定用データを作成する") # # 4.5.1 統計モデルの予測の良さ # ## 例題 平均対数尤度の説明 # ### 3. 予測用データを作成する # #### 真のモデル(β1=2.08=log(8))から50個の観測データから予測データセットを200個作成する # ![真のモデル(β1=2.08)から50個データを作る。一定モデルのβ1が2.04となったとする ](https://c6.staticflickr.com/9/8053/29914071845_cafb83f916_b.jpg "真のモデル(β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となったとする ](https://c6.staticflickr.com/9/8053/29914071845_cafb83f916_b.jpg "真のモデル(β1=2.08)から50個データを作る。一定モデルのβ1が2.04となったとする") # # 4.5.2 最大対数尤度のバイアス補正 # ## 最大対数尤度と平均対数尤度の関係1 # 例題の最大対数尤度と平均対数尤度の関係 # + パラメータ推定用データの最大対数尤度 LogL'* = -120.06となる # + 予測したときの 平均対数尤度 E(logL) = -122.9となる # # ### 一定モデルの最大対数尤度が平均対数尤度 よりたかい # #### 例題のパラメータはあてはまりの良さが過大評価されている # ![パラメータ推定用データを作成する](https://c6.staticflickr.com/9/8120/29290473053_ac3c48aeb4.jpg "パラメータ推定用データを作成する") # ※ パラメータ推定用データの最大対数尤度が平均対数尤度 を常に高くなるわけではない # # 4.5.2 最大対数尤度のバイアス補正 # ## 最大対数尤度と平均対数尤度の関係2 # ``` # バイアス(b) = logL* -E(logL) # 例題のバイアス(b) = -120.06 - -122.9 = 1.84 # ``` # ### 12回繰り返しを比較する # ![最大対数尤度と平均対数尤度の計算を12回](https://c7.staticflickr.com/9/8212/29623434590_7c0037d080.jpg "最大対数尤度と平均対数尤度の計算を12回") # # 4.5.2 最大対数尤度のバイアス補正 # ### 200回繰り返しを比較する # ![最大対数尤度と平均対数尤度の計算を12回](https://c3.staticflickr.com/9/8513/29623750090_03294eeb1b.jpg "最大対数尤度と平均対数尤度の計算を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モデルの数値例](https://c5.staticflickr.com/9/8328/29837029092_b91375eb04.jpg "ネストしている一定モデルとxモデルの数値例") # # 4.5.3 ネストしているGLM間のAIC比較 # ![ネストしている場合は、バラツキが小さくなる](https://c5.staticflickr.com/6/5697/29883862476_38ec805f34.jpg "ネストしている場合は、バラツキが小さくなる") # ## 一定パラメータに一つ加えたモデルの概念的なまとめ # + あてはまりのよさである最大対数尤度 log L*は0.5ぐらい増える # + 予測能力である平均対数尤度E(log L)は0.5ぐらい減少する # # ⇩ # ## logL* の平均バイアスは1増加する # # 4.6 まとめ # ## モデルを選択する方法 # ### 良いモデルとは # #### 予測が良いものが良いモデルとかんがえるべき # ## AICの使い方を理解する # ## AICが正しい理由 # ### 追加したパラメータが最大対数尤度の統計的な変化量より大きいかどうかで選択できる # # 参考資料 # 第4章を理解するために読んだ資料 # - http://statistics.co.jp/reference/Toukeidatakaiseki_Nyumon/datakaiseki_nyumon10.pdf # http://www.it.mgmt.waseda.ac.jp/mi-tech/activity/data1/SelectionOfaStatisticalModel.pdf