Weitere ähnliche Inhalte
Ähnlich wie Osaka.Stan #3 Chapter 5-2 (20)
Osaka.Stan #3 Chapter 5-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
- 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. データイメージ
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. データの分布を確認する
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. とりあえず重回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 8
model5_4_normal.stan
𝜇 𝑛 = 𝑏1 + 𝑏2 ∗ 𝐴 𝑛 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1, … , 𝑁
𝑅𝑎𝑡𝑖𝑜 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 𝜎 𝑛 = 1, … , 𝑁
モデル式(式5 – 3を参考に)
- 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. 係数値が変わるとどうなる?
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. とりあえず重回帰の問題点 モデルの改善
• ロジスティック変換を行っても、正規分布に従うノイズが加わると
考えると、範囲 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. データイメージ
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. 出席回数を二項ロジスティック回帰
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
- 21. 二項ロジスティック回帰の結果の解釈
2017/2/26 Osaka.Stan #3 Chapter 5-2 21
𝑞 𝑛 =
1
1+ 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛
• 変形すると
𝑞
1 − 𝑞
= 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛
• 左辺は(起こる確率)/(起こらない確率)の比=オッズ
• オッズが1より大きい
起こる確率の方が高い(起こらない確率の方が低い)
• オッズが1より小さい
起こる確率の方が低い(起こらない確率の方が高い)
- 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. データイメージ
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章の階層モデルあたりで向き合うことに
- 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
- 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
- 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であまり
よくない
- 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
- 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
- 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. データイメージ
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人のデータ
- 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
- 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. • 久保(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
- 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