2.一般化線形モデル(glm)の...

28
2.一般化線形モデル(GLM)復習

Upload: others

Post on 22-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

2.一般化線形モデル(GLM)の 復習

Page 2: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

以下のような n件のデータを仮定 (欠測・はずれ値は考えない)

例:ビール特集で紹介されたお店のクチコミ数

> beer.org NumRev BeerPrice Seats Dist Score 1 56 450 70 1 3.17 2 22 390 36 7 3.35 3 13 630 20 3 3.32 .....

GLMによるモデリング【復習】

npnn

p

p

xxy

xxyxxy

,,;

,,;

,,;

1

2212

1111

iy は目的変数 (応答変数)

),,( 1 ipi xx

各 i=1,2,...,n について

は説明変数 (共変量)

説明変数 (共変量)

Page 3: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

GLMによるモデリング【復習】 iy は確率変数 の実現値と考える. iY

),,( 1 ipi xx

(1) 各 i=1,2,...,n について

の分布 iY

iY と の線形和 を以下のように結びつける (2) 各 i=1,2,...,n について

][E ii Y=µ

∑=

=p

jijji xg

1)( βµ

)(µg

とおいて,

∑=

p

jijj x

は リンク関数 という

(A)

(B)

指数型分布族 通常は を仮定

Page 4: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

GLMでの変数選択 (1/2)

ippiii xxxg βββµ +++= 2211)(

j番目の説明変数 が に影響を与えていない iYijx係数 0=jβ

基本的な考え

一部の係数 0=jβ とおくことで, 様々な統計モデル

p2 ippi xx ββ ++22

0)( =ig µ11)( ii xg βµ =

=)( ig µ

=)( ig µ 22 ixβ

通り

(一応, ここでは考える)

(フルモデル)

Page 5: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

GLMでの変数選択 (2/2)

に影響を与える変数の選択 iY上の統計モデルの中から適切なものを1つ選ぶこと

変数選択

* モデル選択や情報量規準は「統計解析」 (月曜3限) を参考にしてください.

素朴な方法 情報量規準(AIC, BICなど)* を利用して, すべての統計モデルの中から1つ選ぶ

問題点: 説明変数の数 p が増えると大変なことに!!

Page 6: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

スパース推定を利用した変数選択

*日本語の概説は以下を参考 (文献内に英語の主要文献もあり): 1) 廣瀬 善大, 駒木 文保: 双対平坦空間の情報幾何を利用した統計的推定. 数理解析研究所講究録, 「量子論における統計的推測の理論と応用」, 1834 (2013), p.26-44. 2) 廣瀬 慧: Lassoタイプの正則化法に基づくスパース推定法を用いた超高次元データ解析. 数理解析研究所講究録, 「高次元量子トモグラフィにおける統計理論的なアプローチ」, 1908 (2014), p. 57-77.

スパース推定(Lasso etc.)を利用 正則化パラメータを決めるとパラメータ推定と同時に, モデルも1つ選ばれる(WHY?).

問題点: 正則化パラメータの設定の仕方? (後述)

参考* 1. LM(線形モデル)ならLARS (Least Angle Regression), GLMの場合, BRGLM (Bisector Regression GLM) などが提案され, 現在も研究されている

2. GLM以外にもガウシアングラフィカルモデル, 分割表 などでスパース推定を利用した統計モデリングが提案されている.

Page 7: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

3.一般化線形モデル(GLM)の 変数選択

Page 8: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

GLM+LASSOの解析

これまでに習ったことの組み合わせ GLM+LASSOの実際の解析

GLM+LASSOの流れ

上の空欄を自分で考えて書き入れる

Step. 1: 統計モデルの設定

Step. 2: 尤度関数を具体的に書き出す

Step. 3 (a) : 正則化項を加えてパラメータ推定 (Lasso)

Step. 3 (b) : 正則化パラメータを動かして (a) を繰り返す

Step. 4: 推定結果の吟味 (データが少ない場合, 明確な結論は出ないことも),

各自でできるようになる(目標)

グループワークなどで評価

Page 9: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

選択肢【不要なものあり】

次に答え合わせ!

・統計モデル(フルモデル)の設定

・尤度関数を具体的に書き出す

・夏モデル(フルスペック)の購入

・容疑者を具体的に書き出す

・モテル選択をする

・正則化項を加えてパラメータ推定 (Lasso)

・事前情報を加えて死亡時刻推定 (Dasso)

・清楚な子を加えてリゾート満喫 (Rasso)

・と思ったら事件発生!

Page 10: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

iig µµ log)( =

ポアソン回帰で分析する!!

Step1

したがって,

16,,2,1 =i)(~ ii PoY µ

クチコミの件数

の動く範囲は iµ

0>iµ

iY][ ii YE=µ とおいて, の分布を分布記号で書くと iY

10 << iµ ∞<<∞− iµ

Page 11: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

Step1

生中 (円)

=iµlog

?+カテゴリカル変数部分

連続変数部分 切片部分( ) 10 ≡ix

説明変数(連続変数)

4

3

2

1

i

i

i

i

xxxx

座席数

距離 (徒歩換算, 分)

平均評価点 (5点満点)

443322110 iiii xxxx βββββ ++++

説明変数(カテゴリカル変数)

=5ix

洋食

和食

中華 ?

Page 12: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

(順序なし)カテゴリカル変数の設定【復習】

3通りのジャンル(和食/中華/ 洋食) をどのように表現するべきか?

誤答例

=

210

5ix

洋食

和食

中華

(順序をいれかえると解析結果が変化!)

正しい変数の設定方法 ↓

Page 13: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

Step1

443322110log iiiii xxxx βββββµ ++++=

665544 iii xxx βββ +++

最終的な統計モデル (フルモデル)

カテゴリカル変数部分

連続変数部分 切片部分( ) 10 ≡ix

Page 14: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

Step2

16,,2,1 =i

(a) i 番目の店舗のクチコミが である確率は Step1のモデルで を用いて

( )!

Pri

yi

ii yeyY

i

iµµ−==

iy

(b) 尤度関数は以下のような形にかける

( )∏=

==16

1

Pr)(i

ii yYL β

データを代入すると, これはパラメータ ,,1,0; =jjβ の関数.

Page 15: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

Step3

Lasso では以下のように設定 (正則化パラメータ も固定)

Step3 (a): 正則化項を加えてパラメータ推定 (Lasso)

∑=

−p

jjL

0)(log βλβ

λ

Step3 (b): 正則化パラメータを動かして (a)を繰り返す

Q. データ数 > パラメータ数 とする. 以下の場合, パラメータの推定値はどのようになるか

0=λ ∞→λ (十分, 大きい時) の時

0ˆ =jβjβ̂ は MLE

Page 16: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

4. 解析例

Page 17: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

・Rのライブラリ (glmnet )を利用して, Lasso推定値 (以下の最大化問題を解く)を計算

・正則化パラメータ の調整はCVを利用

実データの解析 今回の方法

・予測誤差の推定値を計算し, 小さくなる を選ぶ

・ glmnet ライブラリで容易に計算, 適切な λ を選んで推定してくれる

(詳細は glmnet のドキュメントとそこで引用している文献を参照.)

交差検証法 (CV; Cross Validation)による正則化パラメータの決定

− ∑=

p

jjL

0)(logmax βλβ

β

λ

λ

* CVは「統計解析」 (月曜3限) を参考にしてください.

Page 18: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

・元のデータでジャンル部分をダミー変数に変換して追加 (beer)

実データの前処理 Rコードの例

プログラム例 # ジャンル部分を, ダミー変数, West, Chi で0,1で表現して追加 > beer NumRev BeerPrice Seats Dist Score West Chi 1 56 450 70 1 3.17 0 1 2 22 390 36 7 3.35 0 0 3 13 630 20 3 3.32 0 0 4 NA NA 124 NA NA 0 0 # データの前処理 > beer <- na.omit(beer); # NA を取り除く > beer <- beer[ beer$Seats < 100 ,]; # 座席数180席をはずす. > for(j in 2:5){ beer[, j] <- (beer[, j] -mean(beer[, j]))/sd(beer[, j]);} # 中心化 # 最終的なデータ > beer NumRev BeerPrice Seats Dist Score West Chi 1 56 -0.7937838 1.82439959 -1.3269604 -1.0844954 0 1 2 22 -1.2730495 -0.16054716 1.7800689 0.1030889 0 0 3 13 0.6440133 -1.09463976 -0.2912840 -0.0948418 0 0

・ NA(欠損値), はずれ値(座席数 > 100), 中心化 を施す

Page 19: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

0.0 0.2 0.4 0.6 0.8

0.0

0.1

0.2

0.3

0.4

L1 Norm

Coe

ffici

ents

0 1 2 3 4

1

2

3

5

6

Solution Path の表示 λ・正則化パラメータ を小さくしていくと、推定値の非ゼロが増えていく

Dist

Seats

BeerPrice Chine

West

∑=

p

jj

1β̂

jβ̂

> library(glmnet); # library 読み込み(1回だけ) > beer.lasso.res <- glmnet(as.matrix(beer[, 2:7]) , beer[,1], family="poisson", nlambda=100, lambda.min.ratio=0.01); > plot(beer.lasso.res, xvar="norm", label=TRUE); > plot(beer.lasso.res, xvar="lambda", label=TRUE); # 横軸を log (lambda ) (自然対数) にとる場合 > coef(beer.lasso.res); #推定値は、各正則化パラメータごとに出てくる。 出力で . の部分は0という意味.

-2 -1 0 1 20.

00.

10.

20.

30.

4

Log Lambda

Coe

ffici

ents

5 5 3 3 1

1

2

3

5

6

プログラム例

λlog

jβ̂

Dist

Seats

BeerPrice

Chine

West

Page 20: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

CV の表示 λ・正則化パラメータ を動かして, CV値 ( ~予測誤差の推定値)の小さい所を見つける

> beer.cv.res <- cv.glmnet(as.matrix(beer[, 2:7]) , beer[,1], family="poisson", nfolds=5); > plot(beer.cv.res);

プログラム例

λlog

CV

-2 -1 0 1 2

46

810

log(Lambda)

Poi

sson

Dev

ianc

e

5 5 5 5 5 5 5 5 4 3 3 3 3 3 2 2 1 1 1

注意点 今回はデータ数が少なく, 最小点の近傍で平坦に近いため, cv.glmnet のCV値は安定しない(仕様)

だいたいこのあたり (平均をとると1.6-2.1 くらい)

Page 21: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

ポアソン回帰+スパースの解析結果

8.1=λ

クチコミ件数に影響を与えるもの (モデル1) > coef(beer.cv.res, lambda=1.8) 7 x 1 sparse Matrix of class "dgCMatrix" 1 (Intercept) 3.39284072 BeerPrice 0.15272225 Seats 0.35940221 Dist . Score . West . Chi 0.08275997

プログラム例

暫定的な結果

1. 生中一杯の値段

2. 座席数

3. ジャンルが中華であること

結果のまとめ(暫定的)

5-fold CVで選んだ値 (安定しないため参考値)

621 08.0'36.0'15.039.3log iiii xxx +++=µ

生中一杯の値段(中心化後)

Lassoでの推定結果 座席数(中心化後)

ジャンル(中華 =1, それ以外 =0)

Page 22: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

別の観点からも調べる CVの結果からわかること 1.正則化パラメータの最小値は安定しない 2.しかし, Solution Path からわかるように、座席数, 生中, が確実そう. 3.正則化パラメータの最小値が動く範囲では, ジャンル(中華 or not)部分が入るときと入らない時がある & 実は中華 =1 のデータは2件しかない!!

絞ったモデル同士での比較

6622110 ''log iiii xxx ββββµ +++=モデル1

モデル2

22110 ''log iii xx βββµ ++=

二つのモデルで普通にパラメータを推定し, AICで比較してみる

Page 23: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

別の観点からも調べる モデル1

621 22.0'40.0'24.033.3log iiii xxx +++=µ

モデル1,2 でAICはほぼ同じ, 残差プロットもみてみる (Chap.3 )

AIC=114.39

モデル2

> beer_1.glm.res <- glm(NumRev~BeerPrice+Seats + Chi, family=poisson, data=beer); > round(coef(beer_1.glm.res), 2); (Intercept) BeerPrice Seats Chi 3.33 0.24 0.40 0.22 > summary(beer_1.glm.res); ..... AIC: 114.39 .... > beer_2.glm.res <- glm(NumRev~BeerPrice+Seats, family=poisson, data=beer); ( 以下, 同様)

プログラム例

21 '45.0'22.036.3log iii xx ++=µAIC=114.95

Page 24: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

> plot(predict(beer_2.glm.res, type="link"), residuals(beer_2.glm.res, type="response"), xlab=expression(hat(log(mu))), ylab="Response Residuals", main="Restaurant Reviews (model 2)");

Response residuals (右図 縦軸)

iiRR yr µ̂−=

ポアソン回帰の残差プロット(1/2)

)ˆlog(µプログラム例

# residuals(XXX, type="response"), residuals(XXX, type="deviance")を用いて計算

モデル2の残差プロット (モデル1も同様)

21 '45.0'22.036.3ˆ ii xxi e ++=µ

2.5 3.0 3.5 4.0-5

05

10

Restaurant Reviews (model 2)

log^

Res

pons

e R

esid

uals

RRr

Page 25: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

> plot(predict(beer_2.glm.res, type="link"), residuals(beer_2.glm.res, type="deviance"), xlab=expression(hat(log(mu))), ylab="Deviance Residuals", main="Restaurant Reviews (model 2)");

Deviance residuals (右図 縦軸)

ポアソン回帰の残差プロット(2/2)

)ˆlog(µプログラム例

モデル2の残差プロット (モデル1も同様)

)ˆˆ/log(2)ˆ,( iiiiiiii yyyydd µµµ +−==

iiiDR dysignr )ˆ( µ−=

DRr

モデル1,2 ともに残差に特徴的なパターンは見つからない

2.5 3.0 3.5 4.0

-2-1

01

2

Restaurant Reviews (model 2)

log^

Dev

ianc

e R

esid

uals

Page 26: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

結果のまとめ

クチコミ件数に影響を与えているもの

1. 座席数 (多い店ほど多い)

2. 生中一杯の値段 (高い店ほど多い)

( 3. ジャンル: 中華の方が多い?)

生ビール (中) ¥ 50,000

グラスワイン(赤・白) ¥ 600

・・・・

Drink

Page 27: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

補足

1. データサイズは16件 (バイアスの可能性)

2. ジャンルはデータ数が少ない& 実際には分類が難しい.

例: ワインバーでも餃子が出る? 多国籍料理, 創作料理の店

3. 説明変数(共変量)同士の関係は無視した解析

注意点

補足 今回は小標本での予備的分析

→ 仮説を立ててから, 検証のためのデータ取得&詳細な分析

Page 28: 2.一般化線形モデル(GLM)の 復習bayes.sigmath.es.osaka-u.ac.jp/ftanaka/T/modeling/2016chap12_2.pdf3. ジャンルが中華であること. 結果のまとめ(暫定的)

理解度チェック:スパースモデリング2

スパース推定 (Lassoなど)を利用してモデル選択をすることができる

一般化線形モデルではLassoのようなスパース推定手法は使用できない.

Lasso推定での正則化パラメータを決める方法としてCVなどがある.

仮定している統計モデルが適切なものであっても, データ数が少ない場合, パラメータの推定値は不安定になる.

AICやCVなどを最小化している統計モデルの場合, 残差プロットでの確認は不要である.