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 #3 Chapter 5-2

1,966 views

Published on

『StanとRでベイズ統計モデリング』読書会(Osaka.Stan #3 2017.2.26)での、第5章(後半)の発表資料です。
小さくてコードが読めないという方は、スライド中で使ったコードを http://g01beza.web.fc2.com/resume/osaka_stan_170226gt.zip にアップロードしていますのでダウンロードしてご覧ください(plot部分、「とりあえず重回帰」部分以外はおおよそ公式と同じです。)。

Published in: Data & Analytics

Osaka.Stan #3 Chapter 5-2

  1. 1. StanとRでベイズ統計モデリング 読書会 (Chapter 5-2) Osaka.Stan #3 2017/2/26 https://atnd.org/events/85291 @関西学院大学 梅田キャンパス 京都大学 高等教育研究開発推進センター 後藤 崇志 Web: http://g01beza.web.fc2.com/
  2. 2. スライドの概要 • 第5章 「基本的な回帰とモデルのチェック」 後半戦です • 5.2 二項ロジスティック回帰 • 5.3 ロジスティック回帰 • 5.4 ポアソン回帰 • 練習問題(4) ~ (7) 前半戦(5.1 重回帰)についてはOsaka.Stan #2の平川先生のスライド参照 (https://www.slideshare.net/makotohirakawa3/osakastan2-chap51) • 発表者はこんな感じです • 専門は心理学(特に社会・教育・認知周辺) • 縦断データ・反復測定データの分析機会が多い気がする • データ分析によく使うのはRとMplus • 普段は素R派(特にこだわりがあるわけではないですが) • ggplot2は報告する時には使うけど、分析途中ではあまり使わない  なので、今日の発表の作図では基本的にはggplot2は使っていない • ベイズ統計は勉強中、まだ本格的には使っていない 2017/2/26 Osaka.Stan #3 Chapter 5-2 2
  3. 3. このスライドで実行しているコードについて 2017/2/26 Osaka.Stan #3 Chapter 5-2 3 自分のwebサイト( http://g01beza.web.fc2.com/ )の”materials”内に置いてあります
  4. 4. 5.2 二項ロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 4
  5. 5. 5.2 二項ロジスティック回帰 • 著者提供の架空データ • PersonID: 学生のID • A: アルバイトを好きかどうか(0=好きでない、1=好き) • Score: 学問への興味の強さ(0 - 200) • M: 3か月間における履修登録した科目の総授業回数 • Y: Mのうち、実際に出席した回数 「AとScoreでどれほど授業の出席を予測できるか? また、どれほど出席率に影響しているか?」を知りたい 2017/2/26 Osaka.Stan #3 Chapter 5-2 5
  6. 6. データイメージ 2017/2/26 Osaka.Stan #3 Chapter 5-2 6 学生 n (PersonID) 月 火 水 木 金 Week 1 3 2 2 1 4 Week 2 1 2 1 0 0 ・ ・ ・ 月 火 水 木 金 Week 1 3 2 2 2 4 Week 2 3 2 1 2 4 ・ ・ ・ 履修登録した科目の 総授業回数 M Mのうち、実際に 出席した回数 Y Q1. アルバイトは好きですか (Yes / No) Q2. 学問にどのくらい興味が ありますか (0 – 200) A Score 統制 予測したい 影響を知りたい 学生N人のデータ
  7. 7. データの分布を確認する 2017/2/26 Osaka.Stan #3 Chapter 5-2 7 出席数Y/授業数Mの割合も求めた Corr: 0.112 Corr: 0.275 Corr: 0.89 Corr: 0.376 Corr: -0.298 Corr: 0.13 Af Score M Y ratio AfScoreMYratio 0 1 2 3 40 1 2 3 4 50 100 150 25 50 75 20 40 60 0.6 0.8 1.0 0 10 20 30 80 120 160 25 50 75 20 40 60 0.6 0.8 1.0 1.0付近の人がそれなりにいる
  8. 8. とりあえず重回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 8 model5_4_normal.stan 𝜇 𝑛 = 𝑏1 + 𝑏2 ∗ 𝐴 𝑛 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁 𝑅𝑎𝑡𝑖𝑜 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 𝜎 𝑛 = 1, … , 𝑁 モデル式(式5 – 3を参考に)
  9. 9. とりあえず重回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 9 • 収束してる様子 モデルはちゃんと当てはまってる?
  10. 10. とりあえず重回帰:実測値・予測値のプロット 2017/2/26 Osaka.Stan #3 Chapter 5-2 10 この辺は4章参照 実測値と予測値の中央値を散布図で描く 95%区間を描く 凡例を描く
  11. 11. とりあえず重回帰:実測値・予測値のプロット 2017/2/26 Osaka.Stan #3 Chapter 5-2 11 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.40.60.81.0 observed predicted A=0 A=1 割合なのになんか1超えてる このへんが気になる
  12. 12. とりあえず重回帰の問題点 • 今回の例では、出席率の実測値が1に近いデータがいくつかある • 説明変数の組み合わせによっては予測値が1を超えてしまう • 独立変数の線型結合(𝑏1 + 𝑏2 ∗ 𝐴 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒) が −∞, ∞ の 範囲をとりうるため  0, 1 の範囲しかとりえないようにしたい 2017/2/26 Osaka.Stan #3 Chapter 5-2 12
  13. 13. ロジスティック変換 • ロジスティック関数 1 1+ 𝑒−𝑥 を使った変換 2017/2/26 Osaka.Stan #3 Chapter 5-2 13  (0, 1)の範囲に収まった! -10 -5 0 5 10 0.00.20.40.60.81.0 test logistic(test)
  14. 14. 係数値が変わるとどうなる? 2017/2/26 Osaka.Stan #3 Chapter 5-2 14 • 𝑏1, 𝑏2の値を変えながら𝑦 = 1 1+𝑒− 𝑏1+𝑏2∗𝑥 の曲線を描いてみた -10 -5 0 5 10 0.00.20.40.60.81.0 b1 = 0, b2 = ? x y b2 = -1 b2 = 1 b2 = 5 -10 -5 0 5 10 0.00.20.40.60.81.0 b1 = ?, b2 = 0 x y b1 = -3 b1 = 1 b1 = 3
  15. 15. とりあえず重回帰の問題点  モデルの改善 • ロジスティック変換を行っても、正規分布に従うノイズが加わると 考えると、範囲 0, 1 を外れてしまう • 出席率の分母である授業回数が小さめなので、出席率を連続 変数とみなすのは難しい 出席回数(カウントデータ) 𝑌は確率𝑞、試行回数𝑀の二項分布に 従って生成されたと考える モデル式5-4 𝑞 𝑛 = 1 1+ 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 𝑌 𝑛 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑀 𝑛 , 𝑞 𝑛 2017/2/26 Osaka.Stan #3 Chapter 5-2 15 AとScoreの線形結合は出席率qを決める 実際の出席率Yは授業回数Mと出席率qを パラメータとする二項分布に従って生成
  16. 16. データイメージ 2017/2/26 Osaka.Stan #3 Chapter 5-2 16 学生 n (PersonID) 月 火 水 木 金 Week 1 3 2 2 1 4 Week 2 1 2 1 0 0 ・ ・ ・ 月 火 水 木 金 Week 1 3 2 2 2 4 Week 2 3 2 1 2 4 ・ ・ ・ 履修登録した科目の 総授業回数 M Mのうち、実際に 出席した回数 Y Q1. アルバイトは好きですか (Yes / No) Q2. 学問にどのくらい興味が ありますか (0 – 200) A Score 学生N人のデータ 出席率q 二項分布
  17. 17. 出席回数を二項ロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 17 𝑞 𝑛 = 1 1 + 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, 2, … , 𝑁 𝑌 𝑛 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑀 𝑛 , 𝑞 𝑛 𝑛 = 1, 2, … , 𝑁 モデル式(式5 – 4) 予測分布も二項分布から得る 応答変数(出席回数)は整数なのでint型に model5_4_binomial.stan
  18. 18. 出席回数を二項ロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 18 • 今度も収束してる様子 今度はモデルもちゃんと当てはまってる?
  19. 19. 出席回数を二項ロジスティック回帰 • 重回帰よりよく当てはまっているように見える 2017/2/26 Osaka.Stan #3 Chapter 5-2 19 0 20 40 60 80 020406080 observed predicted A=0 A=1
  20. 20. 二項ロジスティック回帰の結果の解釈 事後平均値をモデル式に代入する 𝑞 𝑛 = 1 1+ 𝑒 − 0.09 + −0.62 ∗𝐴 𝑛 +1.90 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 𝑌 𝑛 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑀 𝑛 , 𝑞 𝑛 アルバイトが好きな学生の方がそうでない学生より出席しなさそう 学問への興味の高い学生の方が出席しそう 係数値はどう解釈すればよい? 2017/2/26 Osaka.Stan #3 Chapter 5-2 20
  21. 21. 二項ロジスティック回帰の結果の解釈 2017/2/26 Osaka.Stan #3 Chapter 5-2 21 𝑞 𝑛 = 1 1+ 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 • 変形すると 𝑞 1 − 𝑞 = 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 • 左辺は(起こる確率)/(起こらない確率)の比=オッズ • オッズが1より大きい  起こる確率の方が高い(起こらない確率の方が低い) • オッズが1より小さい  起こる確率の方が低い(起こらない確率の方が高い)
  22. 22. 二項ロジスティック回帰の結果の解釈 アルバイトが好きな学生とそうでない学生の違いは? アルバイトが好きな学生のオッズはそうでない学生のオッズより 平均して0.54倍くらい低い 2017/2/26 Osaka.Stan #3 Chapter 5-2 22 アルバイトが好きな学生のオッズ = 𝑒 0.09 + −0.62 ∗1+1.90 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 そうでない学生のオッズ = 𝑒 0.09 + −0.62 ∗0+1.90 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 アルバイトが好きな学生のオッズ そうでない学生のオッズ = 𝑒 0.09 + −0.62 ∗1+1.90 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 𝑒 0.09 + −0.62 ∗0+1.90 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 = 𝑒0.09 ∗ 𝑒−0.62 ∗ 𝑒 1.90∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 𝑒0.09 ∗ 𝑒0 ∗ 𝑒 1.90∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 200 = 1 = 𝑒−0.62 ≒ 0.54
  23. 23. 二項ロジスティック回帰の結果の解釈 学問の興味の高い学生とそうでない学生の違いは? 学問の興味が1SD高いと、オッズは平均して1.31倍くらい高い 2017/2/26 Osaka.Stan #3 Chapter 5-2 23 学問の興味が平均値な学生のオッズ = 𝑒 0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗ 121.7 200 学問の興味が平均値+1SDな学生のオッズ = 𝑒 0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗ 121.7+28.1 200 学問の興味が平均値+1SDな学生のオッズ 学問の興味が平均値な学生のオッズ = 𝑒 0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗ 121.7+28.1 200 𝑒 0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗ 121.7 200 = 𝑒0.09 ∗ 𝑒−0.62∗𝐴[𝑛] ∗ 𝑒 1.90∗ 121.7 200 ∗ 𝑒 1.90∗ 28.1 200 𝑒0.09 ∗ 𝑒−0.62∗𝐴[𝑛] ∗ 𝑒 1.90∗ 121.7 200 = 𝑒 1.90∗ 28.1 200 ≒ 1.31
  24. 24. 5.3 ロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 24
  25. 25. 5.3 ロジスティック回帰 • 著者提供の架空データ • PersonID: 学生のID • A: アルバイトを好きかどうか(0=好きでない、1=好き) • Score: 学問への興味の強さ(0 - 200) • Weather: 授業日の天気(A=晴れ、B=曇り、C=雨) • Y: 授業に出席したかどうか(0=欠席、1=出席) 「AとScoreに授業日の天気を加えた3つの説明変数で授業の 出席をどれほど予測できるか?また、どれほど出席率に 影響しているか?」を知りたい 2017/2/26 Osaka.Stan #3 Chapter 5-2 25
  26. 26. データイメージ 2017/2/26 Osaka.Stan #3 Chapter 5-2 26 学生 n (PersonID) Class 1 Class 2 Class 3 Class 4 天気 晴れ 雨 曇り 晴れ ある学生のある授業i の天気 Weather Q1. アルバイトは好きですか (Yes / No) Q2. 学問にどのくらい興味が ありますか (0 – 200) A Score 学生N人から得られたI件の出欠データ 出欠 出席 欠席 出席 出席 … … ある学生がある授業i に出席したかどうか Y 出席率q なにかの分布 予測したい 影響を知りたい 反復測定である点や、人によって授業回数が 違う点などは今回はおいておく  8章の階層モデルあたりで向き合うことに
  27. 27. モデル式 出席したかどうか(0/1の二値)𝑌は確率𝑞のベルヌーイ分布に 従って生成されたと考える AとScore、Weatherの線形結合は確率𝑞を決めると考える 確率𝑞 の範囲は(0, 1)なのでロジスティック変換 モデル式5-5 𝑞 𝑖 = 1 1+ 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑖 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑖 +𝑏4∗𝑊𝑒𝑎𝑡ℎ𝑒𝑟 𝑖 𝑌 𝑖 = 𝐵𝑒𝑟𝑛𝑜𝑢𝑙𝑙𝑖 𝑞 𝑖 2017/2/26 Osaka.Stan #3 Chapter 5-2 27
  28. 28. Weatherの値の変換 • Weatherは(A=晴れ、B=曇り、C=雨)の離散的な文字列データ なのでこのままでは扱いにくい • ここでは経験的に、「晴れと比較したときの曇りの出席率への 影響」と「晴れと比較したときの雨の出席率への影響」の比率が 1:5であると考えたと仮定して、値を変換する 2017/2/26 Osaka.Stan #3 Chapter 5-2 28 晴れ 曇り 雨
  29. 29. Weatherの値の変換 • Weatherは(A=晴れ、B=曇り、C=雨)の離散的な文字列データ なのでこのままでは扱いにくい • ここでは経験的に、「晴れと比較したときの曇りの出席率への 影響」と「晴れと比較したときの雨の出席率への影響」の比率が 1:5であると考えたと仮定して、値を変換する 2017/2/26 Osaka.Stan #3 Chapter 5-2 29 晴れ 曇り 雨 1 0.2
  30. 30. Weatherの値の変換 2017/2/26 Osaka.Stan #3 Chapter 5-2 30
  31. 31. 出席率をロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 31 𝑞 𝑖 = 1 1 + 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑖 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑖 +𝑏4∗𝑊𝑒𝑎𝑡ℎ𝑒𝑟 𝑖 𝑖 = 1, 2, … , 𝐼 𝑌 𝑖 = 𝐵𝑒𝑟𝑛𝑜𝑢𝑙𝑙𝑖 𝑞 𝑖 𝑖 = 1, 2, … , 𝐼 モデル式(式5 – 5) model5_5.stan
  32. 32. 出席率をロジスティック回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 32 • 収束してる様子 モデルはちゃんと当てはまってる?
  33. 33. 確率qの80%信頼区間を出席Yと重ねて描いてみる 2017/2/26 Osaka.Stan #3 Chapter 5-2 33 以下、残りの5パターンは省略 Scoreを30 ~ 200の範囲で変化させたときの 予測値の中央値と80%信頼区間を求める (天気=晴れ(A)、アルバイトの好み=1の場合に限定) 予測値の中央値を実線で、80%信頼区間の 上限と下限を破線で描く 興味Scoreと出席Yの実測値も重ねてプロット
  34. 34. 確率qの80%信頼区間を出席Yと重ねて描いてみる 2017/2/26 Osaka.Stan #3 Chapter 5-2 34 50 100 150 200 0.00.20.40.60.81.0 A = 0, Weather = A Score q 50 100 150 2000.00.20.40.60.81.0 A = 0, Weather = B Score q 50 100 150 200 0.00.20.40.60.81.0 A = 0, Weather = C Score q 50 100 150 200 0.00.20.40.60.81.0 A = 1, Weather = A Score q 50 100 150 200 0.00.20.40.60.81.0 A = 1, Weather = B Score q 50 100 150 200 0.00.20.40.60.81.0 A = 1, Weather = C Score q
  35. 35. 確率と実測値のプロット • 左の図であれば、Y=0 では横軸の小さい方に、 Y=1では横軸の大きい 方に集まっているとよく 予測できているといえる グラフを見る限りは 十分には予測できて いない様子 2017/2/26 Osaka.Stan #3 Chapter 5-2 35 ※このスライドではvioplot関数を使用
  36. 36. ROC曲線 • ある値以上を出席、 未満を欠席とするように 分類すると、 1. 正しく出席を分類できた人 2. 誤って出席に分類した人 3. 正しく欠席に分類できた人 4. 誤って欠席に分類した人 の割合が求まる 様々な値で区切ったとき のTrue positive(1)とFalse positive(2)をプロットした もの 2017/2/26 Osaka.Stan #3 Chapter 5-2 36 カーブの下の面積が大きい (一般に0.8以上)ほど分類 性能がよい  今回は80%信頼区間が 0.6155 ~ 0.6179であまり よくない
  37. 37. 練習問題(4) • 晴れの影響を0とし、曇りの影響と雨の影響をともにパラメータと するモデルをStanで実装して推定する • 発表者の考え①:「曇り/晴れ・雨」、「雨/晴れ・曇り」を弁別 する二値変数を使ったモデルを考えてみた 2017/2/26 Osaka.Stan #3 Chapter 5-2 37 晴れ 曇り 雨 𝒃 𝒓𝒂𝒊𝒏 𝒃 𝒄𝒍𝒐𝒖𝒅
  38. 38. 練習問題(4) ①こんな感じ? 2017/2/26 Osaka.Stan #3 Chapter 5-2 38 𝑞 𝑖 = 1 1 + 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑖 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑖 +𝑏4∗𝐶𝑙𝑜𝑢𝑑 𝑖 +𝑏5∗𝑅𝑎𝑖𝑛 𝑖 𝑖 = 1, 2, … , 𝐼 𝑌 𝑖 = 𝐵𝑒𝑟𝑛𝑜𝑢𝑙𝑙𝑖 𝑞 𝑖 𝑖 = 1, 2, … , 𝐼 曇り、雨それぞれの二値変数をint型で宣言 model_5_5_ex1.stan
  39. 39. 練習問題(4) ①こんな感じ? 2017/2/26 Osaka.Stan #3 Chapter 5-2 39 • 曇りの日は晴れの日と比べてexp(-0.380) ≒ 0.68倍 • 雨の日は晴れの日と比べてexp(-0.496) ≒ 0.61倍 晴れよりは確率が下がるけど、雨と曇りではそんなに変わらない? 二値変数はT/Fを 数値化して作成
  40. 40. 練習問題(4) ② • ヒント:天気のデータを1~3のインデックスにしてStanに渡す • 「晴れ」「曇り」「雨」によって𝑏1の値に𝑏 𝑤[𝑊𝑒𝑎𝑡ℎ𝑒𝑟]が加わると いうモデルを作成 2017/2/26 Osaka.Stan #3 Chapter 5-2 40 晴れ 曇り 雨 𝒃 𝟏 + 𝒃 𝒘[𝑺𝒖𝒏𝒏𝒚] 𝒃 𝟏 + 𝒃 𝒘[𝑪𝒍𝒐𝒖𝒅] 𝒃 𝟏 + 𝒃 𝒘[𝑹𝒂𝒊𝒏]
  41. 41. 練習問題(4) ② こんな感じ 2017/2/26 Osaka.Stan #3 Chapter 5-2 41 曇りの効果をbw2、雨の効果をbw3としてreal型で宣言 天気の効果を入れるbwという配列を作成 「晴れ」は基準なので0、「曇り」「雨」はそれぞれbw2、bw3を入れる 𝑞 𝑖 = 1 1 + 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑖 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑖 + 𝑏 𝑤[𝑊𝑒𝑎𝑡ℎ𝑒𝑟[𝑖]] 𝑖 = 1, 2, … , 𝐼 𝑌 𝑖 = 𝐵𝑒𝑟𝑛𝑜𝑢𝑙𝑙𝑖 𝑞 𝑖 𝑖 = 1, 2, … , 𝐼 天気の違いは1~3のインデックスで渡すのでint型 model_5_5_ex2.stan
  42. 42. 練習問題(4) ② こんな感じ 2017/2/26 Osaka.Stan #3 Chapter 5-2 42 ①で二値のダミー変数を使ったものと同じ結果が得られた インデックス化するためにあらかじめ tmpというベクトルを準備
  43. 43. 5.4 ポアソン回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 43
  44. 44. 5.4 ポアソン回帰 • 5.2 と同じ架空データ • PersonID: 学生のID • A: アルバイトを好きかどうか(0=好きでない、1=好き) • Score: 学問への興味の強さ(0 - 200) • M: 3か月間における履修登録した科目の総授業回数 • Y: Mのうち、実際に出席した回数 「AとScoreでどれほど総授業回数を予測できるか? また、どれほど総授業回数に影響しているか?」を知りたい 2017/2/26 Osaka.Stan #3 Chapter 5-2 44
  45. 45. データイメージ 2017/2/26 Osaka.Stan #3 Chapter 5-2 45 学生 n (PersonID) 月 火 水 木 金 Week 1 3 2 2 1 4 Week 2 1 2 1 0 0 ・ ・ ・ 月 火 水 木 金 Week 1 3 2 2 2 4 Week 2 3 2 1 2 4 ・ ・ ・ 履修登録した科目の 総授業回数 M Mのうち、実際に 出席した回数 Y Q1. アルバイトは好きですか (Yes / No) Q2. 学問にどのくらい興味が ありますか (0 – 200) A Score 予測したい 影響を知りたい 学生N人のデータ
  46. 46. とりあえず重回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 46 𝜇 𝑛 = 𝑏1 + 𝑏2 ∗ 𝐴 𝑛 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁 𝑀 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 𝜎 𝑛 = 1, … , 𝑁 model_5_6_normal.stan
  47. 47. とりあえず重回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 47 • 収束してる様子 ↓ しかし、予測値が小数値をとっている(場合によっては負の値も)
  48. 48. とりあえず重回帰  モデル式 0以上の整数値のみをとるようにするために、総授業回数 (カウントデータ)𝑌は平均𝜆のポアソン分布に従って生成されたと 考える AとScoreの線形結合は平均𝜆を決めると考える 平均𝜆は0以上の値なので、線形結合は指数変換する よって、モデル式は λ 𝑛 = 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 𝑌 𝑛 = 𝑃𝑜𝑖𝑠𝑠𝑜𝑛 𝜆 𝑛 2017/2/26 Osaka.Stan #3 Chapter 5-2 48
  49. 49. 総授業回数をポアソン回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 49 λ 𝑛 = 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁 𝑌 𝑛 = 𝑃𝑜𝑖𝑠𝑠𝑜𝑛 𝜆 𝑛 𝑛 = 1, … , 𝑁 model_5_6_poisson.stan
  50. 50. 総授業回数をポアソン回帰 2017/2/26 Osaka.Stan #3 Chapter 5-2 50 • 収束してる様子 ↓ 予測値も整数値をとっている!
  51. 51. ポアソン回帰の結果の解釈 学問の興味の高い学生とそうでない学生の違いは? 学問の興味が1SD高いと、授業回数が平均して1.04倍くらい高い 2017/2/26 Osaka.Stan #3 Chapter 5-2 51 学問の興味が平均値な学生の授業回数の平均 = 𝑒 3.58 +0.26 ∗𝐴[𝑛]+0.29 ∗ 121.7 200 学問の興味が平均値+1SDな学生の授業回数の平均 = 𝑒 3.58 + 0.26 ∗𝐴[𝑛]+0.29 ∗ 121.7+28.1 200 学問の興味が平均値+1SDな学生の授業回数の平均 学問の興味が平均値な学生の授業回数の平均 = 𝑒 3.58 + 0.26 ∗𝐴[𝑛]+0.29 ∗ 121.7+28.1 200 𝑒 3.58 +0.26 ∗𝐴[𝑛]+0.29 ∗ 121.7 200 = 𝑒3.58 ∗ 𝑒0.26∗𝐴[𝑛] ∗ 𝑒 0.29∗ 121.7 200 ∗ 𝑒 0.29∗ 28.1 200 𝑒3.58 ∗ 𝑒0.26∗𝐴[𝑛] ∗ 𝑒 0.29∗ 121.7 200 = 𝑒 0.29∗ 28.1 200 ≒ 1.04
  52. 52. 練習問題(5) 2017/2/26 Osaka.Stan #3 Chapter 5-2 52 • 横軸に実測値、縦軸に 予測値の中央値と90% 予測区間を描画 • あまりあてはまりがよく なさそうに見える
  53. 53. 飛ばした話① • パラメータは個別に宣言しても、配列で宣言しても大丈夫 2017/2/26 Osaka.Stan #3 Chapter 5-2 53
  54. 54. 飛ばした話② • binomial_logit, bernoulli_logit, poisson_logといった関数もある 2017/2/26 Osaka.Stan #3 Chapter 5-2 54
  55. 55. 練習問題(6)、(7) 2017/2/26 Osaka.Stan #3 Chapter 5-2 55
  56. 56. 練習問題(6)、(7) • 別のデータを使ってStanで分析する • data3a.csv  ポアソン回帰 • data4a.csv  二項ロジスティック回帰 • いずれも久保拓弥先生の『データ 解析のための統計モデリング入門 ―一般化線形モデル・階層ベイズ モデル・MCMC―』(2012年 岩波書店) のサンプルデータ 2017/2/26 Osaka.Stan #3 Chapter 5-2 56 http://amzn.asia/c0kUD8B
  57. 57. • 久保(2012) 3章 p.40の例題データ • 架空植物100個体を調査して得られた種子数のデータ • y: 個体から得られた種子数 • x: 個体の体サイズ • f: 肥料を加えたか否か(T=加えた、C=加えていない) 「xとfでどれほど種子数yを予測できるか? また、どれほど種子数yに影響しているか?」を知りたい 練習問題(6) 2017/2/26 Osaka.Stan #3 Chapter 5-2 57
  58. 58. 練習問題(6) 2017/2/26 Osaka.Stan #3 Chapter 5-2 58久保(2012) p. 41より 予測したい 影響を知りたい
  59. 59. 練習問題(6) 久保(2012)に従ってglmで分析 2017/2/26 Osaka.Stan #3 Chapter 5-2 59 • 推定された結果は 𝜆 = 𝑒(1.26 + 0.08∗𝑥 + −0.03 ∗𝑓) f=Cと比べたときのf=Tの影響
  60. 60. 練習問題(6) Stanに実装 2017/2/26 Osaka.Stan #3 Chapter 5-2 60 λ 𝑛 = 𝑒 𝑏1+ 𝑏2∗𝑋 𝑛 + 𝑏3∗𝐹 𝑛 𝑛 = 1, … , 𝑁 𝑌 𝑛 = 𝑃𝑜𝑖𝑠𝑠𝑜𝑛 𝜆 𝑛 𝑛 = 1, … , 𝑁 fは後でT=1、C=0として変換する model_ex6.stan
  61. 61. 練習問題(6) Stanに実装 2017/2/26 Osaka.Stan #3 Chapter 5-2 61 • 推定された結果は 𝜆[𝑛] = 𝑒(1.25 + 0.08∗𝑥[𝑛] + −0.03 ∗𝑓[𝑛]) ・・・ということでだいたいglmの結果と似た感じに
  62. 62. • 久保(2012) 6章 p.116の例題データ • 架空植物100個体を調査して得られた種子数のデータ • N: 個体から得られた種子数 • y: Nのうち、発芽した種子数 • x: 個体の体サイズ • f: 肥料を加えたか否か(T=加えた、C=加えていない) 「xとfでどれほど発芽した種子数yを予測できるか? また、どれほど種子の発芽率に影響しているか?」を知りたい 練習問題(7) 2017/2/26 Osaka.Stan #3 Chapter 5-2 62
  63. 63. 練習問題(7) 2017/2/26 Osaka.Stan #3 Chapter 5-2 63 予測したい 影響を知りたい 発芽率q 二項分布 久保(2012) p. 116より
  64. 64. 練習問題(7) 久保(2012)に従ってglmで分析 2017/2/26 Osaka.Stan #3 Chapter 5-2 64 • 推定された結果は 𝑞 = 1 1+𝑒−(−19.54 +1.95∗𝑥 +2.02∗𝑓)
  65. 65. 練習問題(7) Stanに実装 2017/2/26 Osaka.Stan #3 Chapter 5-2 65 𝑞 𝑖 = 1 1 + 𝑒− 𝑏1+ 𝑏2∗𝑋 𝑖 + 𝑏3∗𝐹 𝑖 𝑖 = 1, 2, … , 𝐼 𝑌 𝑖 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑁 𝑖 , 𝑞 𝑖 𝑖 = 1, 2, … , 𝐼 model_ex7.stan
  66. 66. 練習問題(7) Stanに実装 2017/2/26 Osaka.Stan #3 Chapter 5-2 66 • 推定された結果は 𝑞 𝑛 = 1 1+𝑒− −19.72 +1.97∗𝑥 𝑛 +2.05∗𝑓 𝑛 ・・・ということでそこそこglmの結果と似た感じに
  67. 67. 練習問題(7) 実測値と予測値のプロット 2017/2/26 Osaka.Stan #3 Chapter 5-2 67 0 2 4 6 8 02468 observed predicted F=C F=T • おおむね当てはまっている と言えそう

×