Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Osaka.stan#2 chap5-1

2,155 views

Published on

「StanとRでベイズ統計モデリング」の読書会発表資料です。
第5章の重回帰の部分です。

Published in: Data & Analytics
  • Be the first to comment

Osaka.stan#2 chap5-1

  1. 1. Chapter 5 基本的な回帰とモデルのチェック ~重回帰~ Osaka.Stan#2 (2016.12.23) 広島大学大学院教育学研究科 平川 真
  2. 2. 重回帰 (multiple linear regression) ✓目的変数を複数の説明変数で予測する →回帰分析の説明変数が複数になっただけ 2 𝑦 𝑥2 𝑥1
  3. 3. 本書で扱うデータ 出欠率に関する架空データ (n = 50) A: アルバイトが好きかどうかの2値 (好き = 1) Score: 学問への興味の強さ (200点満点) Y: 1年間の出欠率 (出席回数 / 総授業回数) * 総授業回数は200~500(人によって異なる) 3
  4. 4. 解析の目的 ✓2つの説明変数AとScoreで、応答変数Yがどれほど予測できる か知りたい ✓それぞれの説明変数が出欠率にどれほど影響しているか知りたい 出欠率 Score A 4
  5. 5. データの分布の確認 {GGally}のggpairs()を カスタマイズ(↓)したら→に カスタマイズ、、、 5
  6. 6. データの分布の確認 6 これでも まぁそれなりに
  7. 7. データの分布の確認 アルバイトが好きな 学生は出席率が低そう 説明変数間に 相関はなさそう 学問への興味が強い 学生は出席率が高そう Scoreは正規分布 に従いそう 7
  8. 8. メカニズムの想像 ✓アルバイトが好きな学生は出席率が低そう ✓学問への興味が強い学生は出席率が高そう ⇒AとScoreの2変数の線形結合によって、 出席率 (Y) が決まる、と仮定 ⇒𝑌 = 𝑏1 + 𝑏2 𝐴 + 𝑏3 𝑆𝑐𝑜𝑟𝑒(決定的な関係) 加えて、 出欠率は他の変数や測定誤差などの影響もうける、と仮定 それらの影響を 𝜖 (ノイズ) とし、平均0の正規分布に従う、と仮定 ⇒𝑌 = 𝑏1 + 𝑏2 𝐴 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 + 𝜖(確率的な関係) 8
  9. 9. モデル式の記述 モデル式5-1 𝑌 𝑛 = 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 + 𝜖 𝑛 𝑛 = 1, … , 𝑁 𝜖 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎 𝑛 = 1, … , 𝑁 9 AとScoreの線形結合 ノイズ ノイズは平均0, 標準偏差𝜎 の正規分布従う
  10. 10. モデル式の記述 モデル式5-2 ( 𝜖 を消去) 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 , 𝜎 𝑛 = 1, … , 𝑁 10 (再) モデル式5-1 𝑌 𝑛 = 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 + 𝜖 𝑛 𝑛 = 1, … , 𝑁 𝜖 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎 𝑛 = 1, … , 𝑁
  11. 11. モデル式の記述 モデル式5-3 𝜇 𝑛 = 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇[𝑛], 𝜎 𝑛 = 1, … , 𝑁 11 Yの予測値*はAとScoreの線形結合で決定する 予測値*を中心に標準偏差𝜎の正規分布 に従うノイズがのって、Yの値が決まる *ここでは予測値を一つの値の指すものとして使っており、本書とは異なる意味で使ってます。 本書では予測値は予測分布のとりうる値を指します。
  12. 12. モデル式5-2(再) 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇[𝑛], 𝜎 𝜇 𝑛 = 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁 12 Yは正規分布から発生している 正規分布の平均パラメタは、説明変数の線形結合で表現され る 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 , 𝜎 𝑛 = 1, … , 𝑁 ⇒平均パラメタを代入してやればモデル式5-2
  13. 13. Stanで実装 13 (再) モデル式5-3 𝜇 𝑛 = 𝑏1 + 𝑏2 𝐴 𝑛 + 𝑏3 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … 𝑁 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇[𝑛], 𝜎 𝑛 = 1, … , 𝑁 そのまま model5-3.stan ←Scoreは200点満点だったが、 0-1の範囲で指定されている ←のちにベイズ予測区間を描くので、 予測分布からのMCMCサンプルを生成
  14. 14. とりあえず実行 14 run-model5-3.R 1秒だけMCMC(*´Д`)ハァハァ 他にも50人分のmuとy_pred, lp__が出力されるが省略 ←Scoreを200で割って、 0-1の範囲にしている
  15. 15. 推定結果の解釈 得られた事後平均をモデル式に代入すると 回帰係数は「説明変数が1増えたときのyの平均的な変化量」 15 収束している模 様 𝜇 𝑛 = 0.13 − 0.14 ∗ 𝐴 𝑛 + 0.32 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 𝑛 = 1, … , 𝑁 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇[𝑛], 0.05 𝑛 = 1, … , 𝑁
  16. 16. データのスケーリング データのスケーリングをする理由: 大きさがバラバラだとパラメタの探索が非効率になり、 計算に時間がかかったり、収束しにくくなったりするため 16 ←Scoreを200で割って、 0-1の範囲にしている run-model5-3.R ←Scoreは200点満点だったが、 0-1の範囲で指定されている model5-3.stan
  17. 17. 試してみた 17 model5-3.stan Scoreを0-1の範囲にせず データをわたした場合 ←回帰係数は説明変数が1増加した ときのyの増分なので、小さくなる 0.32/200=0.0016 ほんとだ
  18. 18. 外挿について 外挿: データ範囲の外側を予測すること アルバイト好きでScoreが0点の学生の出席率は? 0.13 − 0.14 ∗ 1 + 0.32 ∗ 0 200 = −0.01 18 𝜇 𝑛 = 0.13 − 0.14 ∗ 𝐴 𝑛 + 0.32 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 𝑛 = 1, … , 𝑁 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 0.05 𝑛 = 1, … , 𝑁 出席率が負? データの範囲外の値について の予測はしない方がよい
  19. 19. パラメタの幅の確認 分布でしょ! 19 95%ベイズ信頼区間 [0.06~0.19] [-0.17~-0.11] [0.22~0.42] [0.04~0.06]
  20. 20. 図によるモデルのチェック ベイズ予測区間 * 説明変数が2つの場合、データに 平面をあてはまることになる ⇒3次元の図は見にくいので、 Aの値別に描画 * ここでは80%区間で描画している 20
  21. 21. 実測値と予測値のプロット 先のような可視化は、3変数以上になると難しい ⇒実測値と予測値*の関係を把握 多くの点が𝑦 = 𝑥の直線の近く ⇒2変数で応答変数を十分に予測 できている * 予測値=予測分布の取りうる値 21
  22. 22. 推定されたノイズの分布 ノイズについての仮定: 𝑁𝑜𝑟𝑚𝑎𝑙 (0, 𝜎)に従う ⇒この仮定の妥当性をチェック 各人のノイズ(実測値―予測値)の MAP推定値を集計 破線: 平均0, SD=0.05の正規分布 乖離が小さい→ 22
  23. 23. MCMCサンプルの散布図行列 パラメタ間の関係を把握 23
  24. 24. まとめ 重回帰: 複数の変数で応答変数を予測する モデル: 交互作用→Chap7.1 多重共線性→Chap7.4 24 𝑌 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇[𝑛], 𝜎 𝜇 𝑛 = 𝑏0 + 𝑏1 𝑋1 + 𝑏2 𝑋2 + ⋯ + 𝑏 𝑘 𝑋 𝑘 1)Yは正規分布から発生している 2) 正規分布の平均パラメタは、 説明変数の線形結合で表現される
  25. 25. おまけ ~モデルの理解を深めるために~ Osaka.Stan#2 (2016.12.23)
  26. 26. 架空データの作り方 架空データを自分で作って(*´Д`)ハァハァする (真値がわかっているので、モデルの性質を把握しやすい) 26 rnorm(): 正規分布に従う乱数を発生 Cf. モデル式 𝑌 𝑛 = 𝑏0 + 𝑏1 𝑥1 + 𝑏2 𝑥2 + 𝜖 𝑛 𝜖 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎 同じ lm()で分析すると↓ ←平均3, 標準偏差1の 正規分布に従う乱数を100個発生
  27. 27. Stanで推定 27 モデル (modelブロックのみ) 実行コード Cf. 発生させたデータ パラメタの真値は 𝑏0 = 3, 𝑏1 = 2, 𝑏2 = 5, 𝜎 = 2.5 うまく推定できている ←パラメタについて 弱情報事前分布を設定
  28. 28. ノイズの大きさをいじってみる 28 𝜎 = 0.5 𝜎 = 10 cf. 𝜎 = 3 実測値と予測値が 対応しにくくなる パラメタのベイズ信頼区間は ノイズが大きくなると広がる * 事後平均値はlm()と一致する ノイズが大きいと乱数の発生毎に 係数は大きく変化
  29. 29. 説明変数に相関をもたせてみる 29 母相関がrhoとなる2変数の発生コード ↓MCMCサンプルの散布図行列
  30. 30. 説明変数に相関をもたせてみる 30

×