osaka.stan#2 chap5-1

30
Chapter 5 基基基基基基基基基基基基基基基 ~基基基~ Osaka.Stan#2 (2016.12.23) 基基基基基基基基基基基基基 基基 基

Upload: makoto-hirakawa

Post on 16-Apr-2017

711 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Osaka.stan#2 chap5-1

Chapter 5基本的な回帰とモデルのチェック

~重回帰~

Osaka.Stan#2 (2016.12.23)

広島大学大学院教育学研究科平川 真

Page 2: Osaka.stan#2 chap5-1

2

重回帰 (multiple linear regression)

✓目的変数を複数の説明変数で予測する

→ 回帰分析の説明変数が複数になっただけ

𝑦𝑥2

𝑥1

Page 3: Osaka.stan#2 chap5-1

3

本書で扱うデータ

出欠率に関する架空データ (n = 50)  A: アルバイトが好きかどうかの 2 値 ( 好き = 1)  Score: 学問への興味の強さ (200 点満点 )  Y: 1 年間の出欠率 ( 出席回数 / 総授業回数 )   * 総授業回数は 200~500( 人によって異なる )

Page 4: Osaka.stan#2 chap5-1

4

解析の目的

✓2 つの説明変数 A と Score で、応答変数 Y がどれほど予測で

きるか知りたい

✓それぞれの説明変数が出欠率にどれほど影響しているか知りた

出欠率Score

A

Page 5: Osaka.stan#2 chap5-1

5

データの分布の確認

{GGally} の ggpairs() を

カスタマイズ (↓) したら→に

カスタマイズ、、、

Page 6: Osaka.stan#2 chap5-1

6

データの分布の確認

これでもまぁそれなりに

Page 7: Osaka.stan#2 chap5-1

7

データの分布の確認

アルバイトが好きな学生は出席率が低そう

説明変数間に相関はなさそう

学問への興味が強い学生は出席率が高そう

Score は正規分布に従いそう

Page 8: Osaka.stan#2 chap5-1

8

メカニズムの想像

✓アルバイトが好きな学生は出席率が低そう

✓学問への興味が強い学生は出席率が高そう

⇒A と Score の 2 変数の線形結合によって、

 出席率 (Y) が決まる、と仮定

 ⇒(決定的な関係)

加えて、

出欠率は他の変数や測定誤差などの影響もうける、と仮定

それらの影響を ( ノイズ ) とし、平均 0 の正規分布に従う、と仮定

 ⇒(確率的な関係)

Page 9: Osaka.stan#2 chap5-1

9

モデル式の記述

モデル式 5-1

A と Score の線形結合 ノイズ

ノイズは平均 0, 標準偏差の正規分布従う

Page 10: Osaka.stan#2 chap5-1

10

モデル式の記述

モデル式 5-2 ( 消去 )

( 再 ) モデル式 5-1

Page 11: Osaka.stan#2 chap5-1

11

モデル式の記述

モデル式 5-3

Y の予測値 * は A と Score の線形結合で決定する

予測値 * を中心に標準偏差の正規分布に従うノイズがのって、 Y の値が決まる

* ここでは予測値を一つの値の指すものとして使っており、本書とは異なる意味で使ってます。 本書では予測値は予測分布のとりうる値を指します。

Page 12: Osaka.stan#2 chap5-1

12

モデル式 5-2( 再 ) 

 

Y は正規分布から発生している

正規分布の平均パラメタは、説明変数の線形結合で表現される

𝑌 [𝑛 ] 𝑁𝑜𝑟𝑚𝑎𝑙 (𝑏1+𝑏2𝐴 [𝑛 ]+𝑏3𝑆𝑐𝑜𝑟𝑒 [𝑛 ] ,𝜎 )𝑛=1 ,…,𝑁⇒ 平均パラメタを代入してやればモデル式 5-2

Page 13: Osaka.stan#2 chap5-1

13

Stan で実装

( 再 ) モデル式 5-3そのまま

model5-3.stan

←Score は 200 点満点だったが、  0-1 の範囲で指定されている

← のちにベイズ予測区間を描くので、 予測分布からの MCMC サンプルを生成 

Page 14: Osaka.stan#2 chap5-1

14

とりあえず実行run-model5-3.R

1 秒だけ MCMC(*´Д`) ハァハァ

他にも 50 人分の mu と y_pred, lp__ が出力されるが省略

←Score を 200 で割って、  0-1 の範囲にしている

Page 15: Osaka.stan#2 chap5-1

15

推定結果の解釈

得られた事後平均をモデル式に代入すると

回帰係数は「説明変数が 1 増えたときの y の平均的な変化量」

収束している模様

𝜇 [𝑛 ]=0.13−0.14∗ 𝐴 [𝑛 ]+0.32∗( 𝑆𝑐𝑜𝑟𝑒 [𝑛 ]200 )𝑛=1 ,…,𝑁

Page 16: Osaka.stan#2 chap5-1

16

データのスケーリング

データのスケーリングをする理由:

 大きさがバラバラだとパラメタの探索が非効率になり、

 計算に時間がかかったり、収束しにくくなったりするため

←Score を 200 で割って、  0-1 の範囲にしている

run-model5-3.R

←Score は 200 点満点だったが、  0-1 の範囲で指定されている

model5-3.stan

Page 17: Osaka.stan#2 chap5-1

17

試してみた

model5-3.stan

Score を 0-1 の範囲にせずデータをわたした場合

← 回帰係数は説明変数が 1 増加した ときの y の増分なので、小さくなる  0.32/200=0.0016

ほんとだ

Page 18: Osaka.stan#2 chap5-1

18

外挿について外挿 : データ範囲の外側を予測すること

アルバイト好きで Score が 0 点の学生の出席率は?

 

𝜇 [𝑛 ]=0.13−0.14∗ 𝐴 [𝑛 ]+0.32∗( 𝑆𝑐𝑜𝑟𝑒 [𝑛 ]200 )𝑛=1 ,…,𝑁

出席率が負?

データの範囲外の値についての予測はしない方がよい

Page 19: Osaka.stan#2 chap5-1

19

パラメタの幅の確認

分布でしょ!

95% ベイズ信頼区間

[0.06~0.19] [-0.17~-0.11]

[0.22~0.42] [0.04~0.06]

Page 20: Osaka.stan#2 chap5-1

20

図によるモデルのチェック

ベイズ予測区間

* 説明変数が 2 つの場合、データに 平面をあてはまることになる ⇒3 次元の図は見にくいので、  A の値別に描画

* ここでは 80% 区間で描画している

 

Page 21: Osaka.stan#2 chap5-1

21

実測値と予測値のプロット

先のような可視化は、 3 変数以上になると難しい

⇒ 実測値と予測値 * の関係を把握

多くの点がの直線の近く  ⇒2 変数で応答変数を十分に予測 できている

* 予測値 = 予測分布の取りうる値

 

Page 22: Osaka.stan#2 chap5-1

22

推定されたノイズの分布

ノイズについての仮定 : に従う

⇒ この仮定の妥当性をチェック

  各人のノイズ(実測値―予測値)のMAP 推定値を集計

破線 : 平均 0, SD=0.05 の正規分布

      乖離が小さい→

Page 23: Osaka.stan#2 chap5-1

23

MCMC サンプルの散布図行列

パラメタ間の関係を把握

Page 24: Osaka.stan#2 chap5-1

24

まとめ

重回帰 : 複数の変数で応答変数を予測する

モデル :

交互作用→ Chap7.1多重共線性→ Chap7.4

𝑌 [𝑛 ] 𝑁𝑜𝑟𝑚𝑎𝑙 (𝜇[𝑛] ,𝜎 )1) Y は正規分布から発生している2) 正規分布の平均パラメタは、 説明変数の線形結合で表現される

Page 25: Osaka.stan#2 chap5-1

おまけ

~モデルの理解を深めるために~

Osaka.Stan#2 (2016.12.23)

Page 26: Osaka.stan#2 chap5-1

26

架空データの作り方架空データを自分で作って (*´Д`) するハァハァ(真値がわかっているので、モデルの性質を把握しやすい)

rnorm(): 正規分布に従う乱数を発生

Cf. モデル式同じ

lm() で分析すると↓

← 平均 3, 標準偏差 1 の 正規分布に従う乱数を 100個発生

Page 27: Osaka.stan#2 chap5-1

27

Stan で推定

モデル (modelブロックのみ )

実行コード

Cf. 発生させたデータ

パラメタの真値は

うまく推定できている

← パラメタについて 弱情報事前分布を設定

Page 28: Osaka.stan#2 chap5-1

28

ノイズの大きさをいじってみる

𝜎=0.5

𝜎=10

cf .𝜎=3

実測値と予測値が

対応しにくくなる

パラメタのベイズ信頼区間

ノイズが大きくなると広が

* 事後平均値は lm() と一致する ノイズが大きいと乱数の発生毎に  係数は大きく変化

Page 29: Osaka.stan#2 chap5-1

29

説明変数に相関をもたせてみる母相関が rho となる 2 変数の発生コード

↓MCMC サンプルの散布図行列

Page 30: Osaka.stan#2 chap5-1

30

説明変数に相関をもたせてみる