Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
階層ベイズの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