階層ベイズのWAICについて
@simizu706
自己紹介
• 清水裕士
– 所属:関西学院大学(かんせいがくいんと読む)
– 専門:心理学界隈
– Web: norimune.net
– Twitter: @simizu706
Kazutan.R
注意
• 発表内容は少しマニアックです
– ぶっちゃけ,Rの話ではなく統計学の話です
– ただし,間違えているかもしれません。
– もし間違いがあればご指摘ください。
• 30分で80枚のスライドを疾走します
– ちょいちょい飛びます
– あとでアップするのでそちらを見てください。
• あまりオーディエンスを意識していないです
• 今日は早口ショーだと思って見ておいてください
今日の話
• AICってなんだっけ
• 階層ベイズってなんだっけ
• 階層ベイズのWAIC,そして問題点
• 情報量規準をもう一回考える
AICってなんだっけ?
AIC
• 赤池情報量規準
– モデル比較に使われる指標
– AICが相対的に小さいモデルは「良い」モデル
• どういう意味で「良い」のか
– 予測の意味で「良い」
– 将来手に入れるデータをより誤差が小さく予測す
ることができるモデルが良いモデルとする
統計モデリング
• データ発生メカニズムを知る
– データが何らかの分布から発生している
– その発生メカニズムを「確率分布」を使って表現
• 確率分布のパラメータを推測する
– 確率分布の形を決める値のこと
• 正規分布なら,平均値と分散
– 正規分布以外の確率分布も扱う
真のモデル≒データ発生メカニズム
真の分布 データ
直接は知りえない 直接観測できる
データの発生
真の分布と統計モデリング
• 真の分布は完全にはわからない
– 真の分布はイデア的存在
– でも,その分布から生成されたデータのいくつか
は手に入っている
• 予測の意味で良いモデルを作る
– 限られたデータから,最も真の分布から生成され
るデータをよりよく予測できるモデルが作りたい
真の分布と統計モデリング
真の分布 データ
直接は知りえない 直接観測できる
統計モデリング
数式的には
• 真の分布 q(x)
– なんらかの確率分布であり,それに従ってデータxが生成される
• 統計モデル p(x|θ)
– パラメータθによってxを予測する
• パラメータの分布 p(θ|X)
– すでに得たデータXによって推定されたパラメータ
• 予測分布 p(x|X)
– すでに得たデータXによって将来得られるデータxを予測
– 統計モデルをパラメータの分布で重みづけて平均したもの
データのあてはまりを考える
• 真の分布q(x)と予測分布p(x|X)の距離
– カルバックライブラー情報量
– しかし真の分布はわからないので,とりあえずデータにモデルを近づ
けることを考える
• 平均予測誤差
– 予測分布から生成されたデータと,真の分布から生成されたデータ
の平均的なズレの程度
– 実はKL= H(q) + Gが成り立つ
真の分布はわからない
• 平均的な予測誤差は真の分布に依存
– データだけからは,評価することはできない
• そこで尤度で近似的に評価する
– 尤度=データとモデルの近さ
– 尤度を大きくするモデルは,データを最もうまく説
明できているモデルといえる
– ただし,当然バイアスが生じる
データのあてはまりをよくする
• モデルの複雑さとデータのあてはまり
– モデルを複雑にすればするほど,データとの当てはまり
のよさ(尤度)は高くなる
– 複雑なモデル=パラメータが多いモデル
• オーバーフィッティング
– しかし,それはデータの確率的な変動を無視して,過剰に
あてはまりを高くしてしまう
– これをオーバーフィッティングという
– 真の分布の代わりにデータによる推定値を用いることの
バイアスは,オーバーフィッティングによって生じる
真のモデルが一次式のデータ
4
6
8
10
12
14
16
6 8 10 12 14 16
y
x
2次式で推定
4
6
8
10
12
14
16
6 8 10 12 14 16
y
x
3次式
4
6
8
10
12
14
16
6 8 10 12 14 16
y
x
4次式
4
6
8
10
12
14
16
6 8 10 12 14 16
y
x
データとの当てはまり
.500
.600
.700
.800
.900
1次 2次 3次 4次
R2乗値
次数が上がるほど,データとの当てはまりはよい
将来のデータを予測したい
• 今回のデータ「だけ」に当てはまっても仕方ない
– どのデータにも,サンプリングのバイアスがある
• たまたまこういうデータである,という可能性
– 今回のデータだけに当てはまっても,将来の予測が
上手くいくとは限らない
• モデルの複雑さをむやみに高くしないこと
– パラメータが多いと尤度は高くなる
– パラメータが多すぎると予測誤差は大きくなる
– ほどほどのバランスが必要
別のデータへの予測誤差
.250
.300
.350
1次 2次 3次 4次
別のデータのR2乗値
モデルは固定して,同じ真の分布から発生した
別のデータに回帰した場合の当てはまり
平均予測誤差を評価する
• 赤池情報量規準(AIC)
– モデルが最尤法で推定できて,サンプルサイズが十分大
きいとき,
– AIC = -2 * 対数尤度 + 2*パラメータ数
– この値は,平均予測誤差*nの近似値となる
• AICの特徴
– AICは,データへのあてはまりの良さ(尤度)と,パラメータ
数で決まる
– 対数尤度が高いほど,パラメータ数が少ないほど平均予
測誤差は小さくなる
情報量規準最小のモデルを選ぶ
• AICで予測誤差が小さいモデルを選ぶ
– モデルごとにAICを計算して,それが最も小さいモ
デルが,将来をよりよく予測できるモデルとなる
• AICの制限
– パラメータが正規分布で近似できる
– サンプルサイズが大きい
– 真の分布をモデルが含んでいる
有限サンプルサイズのAIC
45
50
55
60
65
70
75
1次 2次 3次 4次
修正AIC
1次の情報量規準が最も小さい
WAIC
• 広く使える情報量規準
– もっと広いモデルにも適用できるように拡張した
情報量規準
• 最尤推定ができないようなモデルでも使うことができる
• 真の分布がモデルで実現できなくてもよい
• ベイズ統計と相性が良い
– MCMC標本から簡単に計算ができる
WAIC
• Widely Applicable Information Criterion
– ただし,
– 第1項はデータと予測分布の当てはまり,第2項はパ
ラメータの分散の和(パラメータの不確実さの和)
• WAIC
– データと予測分布の距離が小さいほど小さい
– パラメータの数が少ないほど小さい
– パラメータの分散が小さいほど小さい
階層ベイズってなんだっけ
ベイズ統計
• ベイズの定理による推定
• 事後分布=推定したパラメータの分布
– データXを得たうえでのパラメータの分布
• 事前分布=データを得る前のパラメータ分布
– P(θ)
統計モデル
• P(x|θ)
– パラメータθのもとでデータがどのように生成する
かを決めるもの
• 回帰分析の場合,N(x |βZ,σ)
– βは回帰係数,Zは説明変数,σは残差標準偏差
– データが,「平均が予測値βX,σをSD」とする条件
付き正規分布に従うとする確率モデル
階層モデル
• パラメータが別のパラメータで予測したい
– P(θ|ψ)
– パラメータθがさらに別のパラメータψによってモ
デル化できる場合
• 階層線形モデルの場合 N(β|γ,Τ)
– グループごとの回帰係数βが,平均γ,共分散行
列Τの多変量正規分布に従う
最尤法の場合
• 直接的に階層モデルを評価するのは難しい
– そこで尤度をθで周辺化する(積分消去する)
– ローカルパラメータθについて積分すれば,推定するべき
パラメータはグローバルなψのみが残る
• 最尤法の困難
– 正規分布以外の場合は,異なる分布を混ぜることになる
ので積分が難しい→近似的に尤度を評価する
– 分散の推定が不偏推定量ではない
階層ベイズ
• ベイズでは階層モデルは自然に推定可能
– パラメータの事前分布としてより高次なパラメータ
の分布を想定すればいい
– ローカルパラメータを推定しつつ,グローバルな
パラメータの分布制約を置くことが可能
– x ~ P(θ) θによってデータがモデル化
– θ ~ P(ψ) Ψによってθがモデル化
MCMCで階層ベイズも簡単推定!
• マルコフ連鎖モンテカルロ法
– 推定値をたくさんサンプリングして事後分布を推定
– 複雑な階層モデルでも,比較的安定してベイズ推定
することができる
• MCMCを実行できるソフト
– stan・・・今日使うのはこれ!
– BUGS
– JAGS
階層ベイズでWAIC
階層ベイズでWAIC
• 階層モデルは最尤法で難しい場合がある
– 階層ベイズ with MCMCで解いたほうが,自然に
モデリングできる(気がする)
• MCMCならWAICが使える
– MCMCの結果から簡単に計算可能
– これからの時代はWAICによるモデル選択時代が
来る!確実に来る!これで勝つる!
今日使うデータ
• 野球のデータ
– 2014年のプロ野球野手140名の打撃成績と翌年
の年俸
– プロ野球Freakからダウンロードできる
• http://baseball-freak.com/
• (ただし,年俸のデータはWikipediaから集めた)
• glmmstanパッケージに入っている
data(baseball)
ホームラン数を予測したい
• ポアソン分布で近似する場合
– たとえば,プロ野球選手のホームラン数を予測
– たまにしか生じないのでポアソン分布?
HR ~ Poisson(λ)
ポアソン分布を最尤推定
• 最尤推定でλを推定する
• 予測分布を生成してみる
じぇんじぇん形が違う!
過分散の推定
• 選手ごとの打力を考慮に入れよう
– ポアソン分布に従うとして,さらにλがガンマ分布
に従うと考えてみよう
– ガンマ分布ってこんなの
• λ~ gamma(θ,θ/μ)
– θは形状パラメータ
– μは平均値
• ポアソンのλがガンマ分布に従うと仮定した混
合分布
• 選手ごとの個人差を推定できる
– μが平均,θが過分散を表す
負の二項分布
最尤法で負の二項分布
• λとθを推定する
AICを比較してみる
• ポアソン
– AIC(fit.p)
– 1522.482
• 負の二項分布
– AIC(fit.nb)
– 904.9061
– やっぱり,個人差を考慮に入れたほうがいい
階層ベイズで過分散を推定
• 直接,負の二項分布を使ったが・・・
– せっかくなので,ポアソン分布のλが,ガンマ分布
に従うような階層ベイズを組みたい
• ベイズ推定で解く
– glmerなどは,対数λが正規分布に従うことを仮定
するが,ガンマ分布などでは推定できない
– MCMCで解いてみる
stanにご登場いただく
stanの結果
• 次のコードを走らせる
data <- list(y=baseball$HR)
fit1 <- stan("hbayes2.stan",data=data,
iter=600,warmup=100,chains=2)
print(fit1,digits=3,pars=c("m","s"))
パラメータを取り出す
mu <- mean(rstan::extract(fit1)$m)
theta <- mean(rstan::extract(fit1)$s)
負の二項分布と一致
ガンマとポアソンの混合分布
• 先に混合分布の関数を作って・・・
• 予測分布を生成
当たり前だけど負の二項分布と同じ
WAICを計算する
WAICを計算する
• WAICはMCMCから簡単に計算できる
• WAICは・・・
– 720.3164
– ・・・・んん?低すぎない?
– 負の二項分布は904だったが・・・
– 数学的には負の二項分布と同じ分布のはず・・・?
念のため,stan_glmerでも。
• ガンマ分布ではなく対数正規分布になるが,
それほど違いはないはず。
blmsパッケージでも
• rstanのラッパー
では負の二項分布をベイズ推定
負の二項分布のWAIC
• 同じコードでWAICを計算
最尤推定のAICとほぼ一致
なぜだろう?
• 予測分布の定義に問題がありそう
– 階層ベイズの場合,ローカルパラメータを予測分
布に組み込むことができる
• さらに,ローカルパラメータに分布の制約を置く
– これは階層ベイズの長所だが,情報量規準を考
えるときには実は注意が必要になる・・・?
情報量規準をもう一回考える
WAICの二つの計算
• 負の二項分布
• ポアソン+ガンマの階層ベイズ
WAICの二つの計算
• 負の二項分布
• ポアソン+ガンマ分布の階層ベイズ
←対数尤度
←有効パラメータ数
←対数尤度
←有効パラメータ数
周辺化したWAICを計算
• 個々の選手ではなくグローバルな推定をする
Rでゴリゴリ計算
• ついでに時間もはかってみる
MCMC要素たった1000個で2分・・・
周辺化した予測分布でWAIC
• さっきとコードが違うので注意
おーやっぱり負の二項分布のWAICと一致した!
階層ベイズの尤度
• 階層モデルを周辺化せずにモデリングできる
– 積分の評価が難しいモデルでも解くことができる
• 周辺化してもしなくても推定値は一緒
– 負の二項分布とポアソン×ガンマは,平均や分散パ
ラメータの推定値は全く同じ
• 予測分布が変わってくる
– 周辺化せずローカルパラメータで予測分布を構築す
るか,ローカルパラメータを消して,グローバルパラ
メータだけで構築するかどうかが違う
情報量規準とパラメータ
• 平均的な予測誤差を推定
– 将来得られるデータが,統計モデルとパラメータ
によってどれくらい正確に予測できるか
– パラメータに何を使うかによって,当然予測の精
度は変わってくる
• WAICにローカルパラメータを使う,使わない
– グローバルなパラメータのみを使って予測分布を
構築するか,ローカルパラメータも使うかで情報
量規準は意味が変わる
ホームランの場合
• ポアソン分布
– 140人の打力が全員等しいと過程
• 負の二項分布
– 140人の平均的な打力と,その個人差を分散パラメータで
「グローバルにモデル化」
– 「一般的に,これぐらいばらつく」を推定
• ポアソン分布+ガンマ分布の階層ベイズ
– 140人の平均的な打力をポアソンで,打力の個人差を
ローカルパラメータとして個々に推定
– 「それぞれの選手の打力はこれぐらい」を推定
予測の意味が違う?
• 選手の個人ごとの打力に基づくWAIC
– 「今回と同じ選手を対象」にデータをとった場合の予
測誤差を評価している
• 今回の選手はそれぞれこれぐらいの打力だから,来年も
ホームランの分布はこんな感じになるでしょう
• グローバルパラメータに基づくWAIC
– 「プロ野球選手一般」からデータをとった場合の予測
誤差を評価している
• プロ野球選手の打力はこれぐらいばらついてるから,ホー
ムラン分布の形はこんな感じになるでしょう
過分散判断における注意
• 過分散とAIC
– 過分散を変量効果として推定するほうがいいか
は,最尤法の場合AICで判断できる
• 階層ベイズでWAICを使って判断は・・・?
– 階層ベイズでそのままWAICを計算すると,予測
の意味が変わって比較できない
• 同じ対象からデータをとると仮定できるならOKだがあ
まりそういうことは想定しにくい
– 負の二項分布からのWAICなら比較OKだと思う
過分散判断には既存の分布で
• ポアソンの場合
– 負の二項分布で,過分散をグローバルパラメータ
として推定できる
• 二項分布の場合
– ベータ二項分布を使えば分散をベータ分布で推
定できる
階層線形モデルの場合
• HLMにおける変量効果の評価
– 正規分布が仮定できるモデルの場合は,周辺化
した尤度を評価することができる
– なのでグローバルパラメータに基づくWAICは計算
可能
Gはグループ数
Qは変量効果の数
yは従属変数
xは説明変数
betaは固定効果
scaleは残差分散
rは変量効果
自力で計算ができないわけではない
• Rで数値積分すれば計算できる
– ただし,MCMC1000回,次元が1次元,パラメータ
数が2で2分
– 二次元になると,飛躍的に計算時間が増える
– 元のモデル推定よりも情報量規準のほうが時間
がかかるとか笑える(いや,笑えない)
ローカルパラメータを活用できる場合
• 都道府県,国などを変量効果にする場合
– 都道府県や国は多分来年でも変わらない
– 推定したパラメータは予測に使える
• 固定効果だけを選択する場合
– 推定したローカルパラメータによる予測誤差のバ
イアスは,モデル間では(たぶん)変わらない
– 固定効果を増やすことで相対的にWAICが下がる
なら,それは増やしたモデルのほうがたぶんいい
階層ベイズが問題なわけではない
• 推定値は正しいし,ローカルパラメータの推
定も正しい
– ガンガン,階層ベイズ使っていこう
• 変量効果のグローバルパラメータに対する
WAICによる評価に注意
glmmstanパッケージ ver1.30
• しみづが作ったパッケージ
– library(devtools)
– install_github("norimune/glmmstan")
• 負の二項分布,ベータ二項分布に対応
– 過分散評価にはこちらのWAICを見るといいと思う
• 階層線形モデルのグローバルなWAICに対応
– 普通のWAICとWAIC_gの両方が出力される
– ただし,変量効果の組が一つの場合のみ
ベータ二項分布
• 打率がリーグで違う?
– 二項分布を仮定して,かつ,打力の分散を推定
HLMのWAIC
• 年俸の対数は正規分布に従う
– ホームランを打つと年俸はいくら増えるか
– また,その効果は球団によって違う?
• 最尤法の結果
両方のタイプの
WAICを参照できる
おまけ
階層ベイズに限った話ではない
• 因子分析も隠れパラメータがある
– 因子得点
• ベイズを使えば因子得点を推定しながら因子
分析ができる
因子得点を推定しないバージョン
• 共分散行列と多変量正規分布を使う
– 要は項目の相関をどうモデル化するかの違い
WAICは両者で違う
• 因子得点を推定して,WAICを計算
– 個々の項目ごとに正規分布を仮定
• 因子得点を推定せずにWAICを計算
– 全部の項目に多変量正規分布を過程
WAICは両者で違う
• 因子得点を推定した場合
• 因子得点を推定しない場合
まとめ
• 階層モデルをベイズで
– 最尤法では近似計算しかできないし,分散の推定も
不偏推定量にならない
– ベイズを使えば,自然に階層モデルを推定できる
• 階層ベイズでモデル選択
– WAICで,ベイズ推定でもモデル選択ができる
– ただ,ローカルパラメータを既知として扱ってしまう。
– グローバルパラメータのみのWAICの推定も可能だが,
場合によっては大変。
Enjoy stan!
@simizu706

階層ベイズとWAIC