osaka.stan #3 chapter 5-2
TRANSCRIPT
StanとRでベイズ統計モデリング読書会 (Chapter 5-2)
Osaka.Stan #3 2017/2/26
https://atnd.org/events/85291
@関西学院大学梅田キャンパス
京都大学高等教育研究開発推進センター
後藤崇志
Web: http://g01beza.web.fc2.com/
スライドの概要
• 第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
このスライドで実行しているコードについて
2017/2/26 Osaka.Stan #3 Chapter 5-2 3
自分のwebサイト( http://g01beza.web.fc2.com/ )の”materials”内に置いてあります
5.2 二項ロジスティック回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 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 5
データイメージ
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人のデータ
データの分布を確認する
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 ratioA
fS
co
reM
Yra
tio
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付近の人がそれなりにいる
とりあえず重回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 8
model5_4_normal.stan
𝜇 𝑛 = 𝑏1 + 𝑏2 ∗ 𝐴 𝑛 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1,… , 𝑁
𝑅𝑎𝑡𝑖𝑜 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 𝜎 𝑛 = 1,… , 𝑁
モデル式(式5 – 3を参考に)
とりあえず重回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 9
• 収束してる様子
モデルはちゃんと当てはまってる?
とりあえず重回帰:実測値・予測値のプロット
2017/2/26 Osaka.Stan #3 Chapter 5-2 10
この辺は4章参照
実測値と予測値の中央値を散布図で描く
95%区間を描く
凡例を描く
とりあえず重回帰:実測値・予測値のプロット
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.4
0.6
0.8
1.0
observed
pre
dic
ted
A=0
A=1
割合なのになんか1超えてる
このへんが気になる
とりあえず重回帰の問題点
• 今回の例では、出席率の実測値が1に近いデータがいくつかある
• 説明変数の組み合わせによっては予測値が1を超えてしまう
• 独立変数の線型結合(𝑏1 + 𝑏2 ∗ 𝐴 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒)が −∞,∞ の
範囲をとりうるため
0, 1 の範囲しかとりえないようにしたい
2017/2/26 Osaka.Stan #3 Chapter 5-2 12
ロジスティック変換
• ロジスティック関数1
1+ 𝑒−𝑥を使った変換
2017/2/26 Osaka.Stan #3 Chapter 5-2 13
(0, 1)の範囲に収まった!
-10 -5 0 5 10
0.0
0.2
0.4
0.6
0.8
1.0
test
log
istic(t
est)
係数値が変わるとどうなる?
2017/2/26 Osaka.Stan #3 Chapter 5-2 14
• 𝑏1, 𝑏2の値を変えながら𝑦 =1
1+𝑒− 𝑏1+𝑏2∗𝑥の曲線を描いてみた
-10 -5 0 5 10
0.0
0.2
0.4
0.6
0.8
1.0
b1 = 0, b2 = ?
x
y
b2 = -1
b2 = 1
b2 = 5
-10 -5 0 5 10
0.0
0.2
0.4
0.6
0.8
1.0
b1 = ?, b2 = 0
x
y
b1 = -3
b1 = 1
b1 = 3
とりあえず重回帰の問題点モデルの改善
• ロジスティック変換を行っても、正規分布に従うノイズが加わると
考えると、範囲 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をパラメータとする二項分布に従って生成
データイメージ
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
二項分布
出席回数を二項ロジスティック回帰
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
出席回数を二項ロジスティック回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 18
• 今度も収束してる様子
今度はモデルもちゃんと当てはまってる?
出席回数を二項ロジスティック回帰
• 重回帰よりよく当てはまっているように見える
2017/2/26 Osaka.Stan #3 Chapter 5-2 19
0 20 40 60 80
02
04
06
08
0
observed
pre
dic
ted
A=0A=1
二項ロジスティック回帰の結果の解釈
事後平均値をモデル式に代入する
𝑞 𝑛 =1
1+ 𝑒− 0.09 + −0.62 ∗𝐴 𝑛 +1.90 ∗
𝑆𝑐𝑜𝑟𝑒 𝑛200
𝑌 𝑛 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑀 𝑛 , 𝑞 𝑛
アルバイトが好きな学生の方がそうでない学生より出席しなさそう
学問への興味の高い学生の方が出席しそう
係数値はどう解釈すればよい?
2017/2/26 Osaka.Stan #3 Chapter 5-2 20
二項ロジスティック回帰の結果の解釈
2017/2/26 Osaka.Stan #3 Chapter 5-2 21
𝑞 𝑛 =1
1+ 𝑒− 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛
• 変形すると𝑞
1 − 𝑞= 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛
• 左辺は(起こる確率)/(起こらない確率)の比=オッズ
• オッズが1より大きい
起こる確率の方が高い(起こらない確率の方が低い)
• オッズが1より小さい
起こる確率の方が低い(起こらない確率の方が高い)
二項ロジスティック回帰の結果の解釈
アルバイトが好きな学生とそうでない学生の違いは?
アルバイトが好きな学生のオッズはそうでない学生のオッズより
平均して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
二項ロジスティック回帰の結果の解釈
学問の興味の高い学生とそうでない学生の違いは?
学問の興味が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.1200
学問の興味が平均値+1SDな学生のオッズ
学問の興味が平均値な学生のオッズ=𝑒
0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗121.7+28.1
200
𝑒0.09 + −0.62 ∗𝐴[𝑛]+1.90 ∗
121.7200
=𝑒0.09 ∗ 𝑒−0.62∗𝐴[𝑛] ∗ 𝑒
1.90∗121.7200 ∗ 𝑒
1.90∗28.1200
𝑒0.09 ∗ 𝑒−0.62∗𝐴[𝑛] ∗ 𝑒1.90∗
121.7200
= 𝑒1.90∗
28.1
200 ≒ 1.31
5.3ロジスティック回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 24
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
データイメージ
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章の階層モデルあたりで向き合うことに
モデル式
出席したかどうか(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
Weatherの値の変換
• Weatherは(A=晴れ、B=曇り、C=雨)の離散的な文字列データ
なのでこのままでは扱いにくい
• ここでは経験的に、「晴れと比較したときの曇りの出席率への
影響」と「晴れと比較したときの雨の出席率への影響」の比率が
1:5であると考えたと仮定して、値を変換する
2017/2/26 Osaka.Stan #3 Chapter 5-2 28
晴れ 曇り 雨
Weatherの値の変換
• Weatherは(A=晴れ、B=曇り、C=雨)の離散的な文字列データ
なのでこのままでは扱いにくい
• ここでは経験的に、「晴れと比較したときの曇りの出席率への
影響」と「晴れと比較したときの雨の出席率への影響」の比率が
1:5であると考えたと仮定して、値を変換する
2017/2/26 Osaka.Stan #3 Chapter 5-2 29
晴れ 曇り 雨
1
0.2
Weatherの値の変換
2017/2/26 Osaka.Stan #3 Chapter 5-2 30
出席率をロジスティック回帰
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
出席率をロジスティック回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 32
• 収束してる様子
モデルはちゃんと当てはまってる?
確率qの80%信頼区間を出席Yと重ねて描いてみる
2017/2/26 Osaka.Stan #3 Chapter 5-2 33
以下、残りの5パターンは省略
Scoreを30 ~ 200の範囲で変化させたときの予測値の中央値と80%信頼区間を求める(天気=晴れ(A)、アルバイトの好み=1の場合に限定)
予測値の中央値を実線で、80%信頼区間の上限と下限を破線で描く
興味Scoreと出席Yの実測値も重ねてプロット
確率qの80%信頼区間を出席Yと重ねて描いてみる
2017/2/26 Osaka.Stan #3 Chapter 5-2 34
50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
A = 0, Weather = A
Score
q
50 100 150 2000.0
0.2
0.4
0.6
0.8
1.0
A = 0, Weather = B
Score
q
50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
A = 0, Weather = C
Score
q
50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
A = 1, Weather = A
Score
q
50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
A = 1, Weather = B
Score
q
50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
A = 1, Weather = C
Score
q
確率と実測値のプロット
• 左の図であれば、Y=0
では横軸の小さい方に、
Y=1では横軸の大きい
方に集まっているとよく
予測できているといえる
グラフを見る限りは
十分には予測できて
いない様子
2017/2/26 Osaka.Stan #3 Chapter 5-2 35
※このスライドではvioplot関数を使用
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であまりよくない
練習問題(4)
• 晴れの影響を0とし、曇りの影響と雨の影響をともにパラメータと
するモデルをStanで実装して推定する
• 発表者の考え①:「曇り/晴れ・雨」、「雨/晴れ・曇り」を弁別
する二値変数を使ったモデルを考えてみた
2017/2/26 Osaka.Stan #3 Chapter 5-2 37
晴れ 曇り 雨
𝒃𝒓𝒂𝒊𝒏
𝒃𝒄𝒍𝒐𝒖𝒅
練習問題(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
練習問題(4) ①こんな感じ?
2017/2/26 Osaka.Stan #3 Chapter 5-2 39
• 曇りの日は晴れの日と比べてexp(-0.380) ≒ 0.68倍
• 雨の日は晴れの日と比べてexp(-0.496) ≒ 0.61倍
晴れよりは確率が下がるけど、雨と曇りではそんなに変わらない?
二値変数はT/Fを数値化して作成
練習問題(4) ②
• ヒント:天気のデータを1~3のインデックスにしてStanに渡す
• 「晴れ」「曇り」「雨」によって𝑏1の値に𝑏𝑤[𝑊𝑒𝑎𝑡ℎ𝑒𝑟]が加わると
いうモデルを作成
2017/2/26 Osaka.Stan #3 Chapter 5-2 40
晴れ 曇り 雨
𝒃𝟏 + 𝒃𝒘[𝑺𝒖𝒏𝒏𝒚] 𝒃𝟏 + 𝒃𝒘[𝑪𝒍𝒐𝒖𝒅] 𝒃𝟏 + 𝒃𝒘[𝑹𝒂𝒊𝒏]
練習問題(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
練習問題(4) ②こんな感じ
2017/2/26 Osaka.Stan #3 Chapter 5-2 42
①で二値のダミー変数を使ったものと同じ結果が得られた
インデックス化するためにあらかじめtmpというベクトルを準備
5.4 ポアソン回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 43
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
データイメージ
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人のデータ
とりあえず重回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 46
𝜇 𝑛 = 𝑏1 + 𝑏2 ∗ 𝐴 𝑛 + 𝑏3 ∗ 𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1,… , 𝑁
𝑀 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 𝑛 , 𝜎 𝑛 = 1,… , 𝑁
model_5_6_normal.stan
とりあえず重回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 47
• 収束してる様子
↓ しかし、予測値が小数値をとっている(場合によっては負の値も)
とりあえず重回帰モデル式
0以上の整数値のみをとるようにするために、総授業回数
(カウントデータ)𝑌は平均𝜆のポアソン分布に従って生成されたと
考える
AとScoreの線形結合は平均𝜆を決めると考える
平均𝜆は0以上の値なので、線形結合は指数変換する
よって、モデル式は
λ 𝑛 = 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛
𝑌 𝑛 = 𝑃𝑜𝑖𝑠𝑠𝑜𝑛 𝜆 𝑛
2017/2/26 Osaka.Stan #3 Chapter 5-2 48
総授業回数をポアソン回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 49
λ 𝑛 = 𝑒 𝑏1+ 𝑏2∗𝐴 𝑛 + 𝑏3∗𝑆𝑐𝑜𝑟𝑒 𝑛 𝑛 = 1,… ,𝑁
𝑌 𝑛 = 𝑃𝑜𝑖𝑠𝑠𝑜𝑛 𝜆 𝑛 𝑛 = 1,… , 𝑁
model_5_6_poisson.stan
総授業回数をポアソン回帰
2017/2/26 Osaka.Stan #3 Chapter 5-2 50
• 収束してる様子
↓ 予測値も整数値をとっている!
ポアソン回帰の結果の解釈
学問の興味の高い学生とそうでない学生の違いは?
学問の興味が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.1200
学問の興味が平均値+1SDな学生の授業回数の平均
学問の興味が平均値な学生の授業回数の平均=𝑒
3.58 + 0.26 ∗𝐴[𝑛]+0.29 ∗121.7+28.1
200
𝑒3.58 +0.26 ∗𝐴[𝑛]+0.29 ∗
121.7200
=𝑒3.58 ∗ 𝑒0.26∗𝐴[𝑛] ∗ 𝑒
0.29∗121.7200 ∗ 𝑒
0.29∗28.1200
𝑒3.58 ∗ 𝑒0.26∗𝐴[𝑛] ∗ 𝑒0.29∗
121.7200
= 𝑒0.29∗
28.1
200 ≒ 1.04
練習問題(5)
2017/2/26 Osaka.Stan #3 Chapter 5-2 52
• 横軸に実測値、縦軸に
予測値の中央値と90%
予測区間を描画
• あまりあてはまりがよく
なさそうに見える
飛ばした話①
• パラメータは個別に宣言しても、配列で宣言しても大丈夫
2017/2/26 Osaka.Stan #3 Chapter 5-2 53
飛ばした話②
• binomial_logit, bernoulli_logit, poisson_logといった関数もある
2017/2/26 Osaka.Stan #3 Chapter 5-2 54
練習問題(6)、(7)
2017/2/26 Osaka.Stan #3 Chapter 5-2 55
練習問題(6)、(7)
• 別のデータを使ってStanで分析する• data3a.csv ポアソン回帰
• data4a.csv 二項ロジスティック回帰
• いずれも久保拓弥先生の『データ
解析のための統計モデリング入門
―一般化線形モデル・階層ベイズ
モデル・MCMC―』(2012年岩波書店)
のサンプルデータ
2017/2/26 Osaka.Stan #3 Chapter 5-2 56
http://amzn.asia/c0kUD8B
• 久保(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
練習問題(6)
2017/2/26 Osaka.Stan #3 Chapter 5-2 58久保(2012) p. 41より
予測したい影響を知りたい
練習問題(6) 久保(2012)に従ってglmで分析
2017/2/26 Osaka.Stan #3 Chapter 5-2 59
• 推定された結果は
𝜆 = 𝑒(1.26 + 0.08∗𝑥 + −0.03 ∗𝑓)
f=Cと比べたときのf=Tの影響
練習問題(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
練習問題(6) Stanに実装
2017/2/26 Osaka.Stan #3 Chapter 5-2 61
• 推定された結果は
𝜆[𝑛] = 𝑒(1.25 + 0.08∗𝑥[𝑛] + −0.03 ∗𝑓[𝑛])
・・・ということでだいたいglmの結果と似た感じに
• 久保(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
練習問題(7)
2017/2/26 Osaka.Stan #3 Chapter 5-2 63
予測したい影響を知りたい
発芽率q
二項分布
久保(2012) p. 116より
練習問題(7) 久保(2012)に従ってglmで分析
2017/2/26 Osaka.Stan #3 Chapter 5-2 64
• 推定された結果は
𝑞 =1
1+𝑒−(−19.54 +1.95∗𝑥 +2.02∗𝑓)
練習問題(7) Stanに実装
2017/2/26 Osaka.Stan #3 Chapter 5-2 65
𝑞 𝑖 =1
1 + 𝑒− 𝑏1+ 𝑏2∗𝑋 𝑖 + 𝑏3∗𝐹 𝑖𝑖 = 1, 2,… , 𝐼
𝑌 𝑖 = 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙 𝑁 𝑖 , 𝑞 𝑖 𝑖 = 1, 2,… , 𝐼
model_ex7.stan
練習問題(7) Stanに実装
2017/2/26 Osaka.Stan #3 Chapter 5-2 66
• 推定された結果は
𝑞 𝑛 =1
1+𝑒− −19.72 +1.97∗𝑥 𝑛 +2.05∗𝑓 𝑛
・・・ということでそこそこglmの結果と似た感じに
練習問題(7)実測値と予測値のプロット
2017/2/26 Osaka.Stan #3 Chapter 5-2 67
0 2 4 6 8
02
46
8
observed
pre
dic
ted
F=C
F=T
• おおむね当てはまっている
と言えそう