More Related Content
Similar to StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章 (20)
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
- 2. 自己紹介
• 紀ノ定 保礼
大阪大学大学院人間科学研究科
心理学・人間工学 界隈
- 専門は交通行動
• ベイズ歴
1年弱(学会発表1件,投稿準備中論文1本)
目下勉強中なので,発表者の理解が誤っている場合は,
ご指摘よろしくお願いします!
2
- 15. 4.2.2 文法の基礎
• 例:正規分布の平均𝜇を推定
観測されたデータは20個あるとする
背景知識
- 推定したい正規分布の標準偏差𝜎は1
- 平均𝜇に関する背景知識なし
モデル式4-1
- 𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇, 1 𝑛 = 1, … , 20
- 𝜇 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 0, 100
15
𝑝 𝜃 𝑌 =
𝑝 𝑌 𝜃 𝑝 𝜃
𝑝 𝑌
- 16. 4.2.2 文法の基礎
16
𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇, 1
𝑛 = 1, … , 𝑁
𝜇 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 0, 100
↑ 無情報事前分布であれば省略可能
(自動的に,十分に広い一様分布が設定される)
← 推定対象のパラメータを宣言
← モデルを書く上で必要なデータを指定
- 29. 効率よく𝜃を推定するには
• 事後確率 𝑝 𝜃 𝑌 ∝ 𝑝 𝑌 𝜃 𝑝 𝜃 が大きくなるよ
うな𝜃の付近で,たくさんサンプリングしたい
ステップごとに,パラメータ𝜃について偏微分
なお,計算を簡単にするために,両辺対数をとる
29
log 𝑝 𝜃 𝑌 = log 𝑝 𝑌 𝜃 𝑝 𝜃 + 𝑐𝑜𝑛𝑠𝑡.
= log 𝑝 𝑌 𝜃 + log 𝑝 𝜃 + 𝑐𝑜𝑛𝑠𝑡.
- 30. • 事後確率
• 対数事後確率
30
=
𝑛=1
20
𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝑛 | 𝜇, 1 × 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 | 0, 100
=
𝑛=1
20
log 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝑛 | 𝜇, 1 + log 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇 | 0, 100
(式4.3)
𝑝 𝜃 𝑌
※偏微分で消える定数項は省略
負の値の足し算になるlog 𝑝 𝜃 𝑌
(一般的に)1より小さい値の積
- 45. 4.4.3 モデル式の記述
モデル式4-2
𝑌 𝑛 = 𝑌𝑏𝑎𝑠𝑒 𝑛 + 𝜀 𝑛
𝑌𝑏𝑎𝑠𝑒 𝑛 = 𝑎 + 𝑏𝑋 𝑛
𝜀 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎
45
𝑛 = 1, 2, … , 𝑁
𝑛 = 1, 2, … , 𝑁
𝑛 = 1, 2, … , 𝑁
全員に共通の線形式𝑎 + 𝑏𝑋があり,
そこに個人ごとに独立のノイズ𝜀が乗ることで,
年収𝑌が決まる
- 46. • モデル式4-2
𝑌 𝑛 = 𝑌𝑏𝑎𝑠𝑒 𝑛 + 𝜀 𝑛
𝑌𝑏𝑎𝑠𝑒 𝑛 = 𝑎 + 𝑏𝑋 𝑛
𝜀 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎
• モデル式4-3
𝑌 𝑛 = 𝑎 + 𝑏𝑋 𝑛 + 𝜀 𝑛
𝜀 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 0, 𝜎
• モデル式4-4
𝑌𝑏𝑎𝑠𝑒 𝑛 = 𝑎 + 𝑏𝑋 𝑛
𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌𝑏𝑎𝑠𝑒 𝑛 , 𝜎
• モデル式4-5
𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝑎 + 𝑏𝑋 𝑛 , 𝜎 46
𝑛 = 1, 2, … , 𝑁
どのモデルも等価!
- 50. 信頼区間の求め方
予測値 ± t値 × 予測値のばらつき ↓ 追記する
例えば23歳の年収の,95%信頼区間上限なら
50
予測値のばらつき ↓ ↓ 誤差の自由度
- 52. 52
①
②
③
④
⑤
⑥
⑦
⑧
① ② ③ ④
⑤ ⑥ ⑦ ⑧
基本レイヤー
の作成
(データなし)
背景テーマと
文字サイズの変更
上限下限を指定
(95%CI)
その範囲内
を塗りつぶす
③と同様
(50%CI)
区別のため
色の透過度を調整
直線回帰 Raw dataの
プロット
軸ラベルの
変更
データ表示
範囲の変更 見栄えよく!
⑨
⑨ 出来上がったら,好きな形式で保存
Y軸は
予測値fit
なので一直線
目盛間隔を
調整し
- 67. 4.4.9 MCMCの設定の変更
• Chains, iter, warmup, thinの目安
Chains
- Stan開発チームは4を推奨(デフォルト)
iter
- モデルの試行錯誤段階では500~1000(デフォルトは2000)
- 最終モデルが決まったら大きくする
warmup
- traceplotを見て判断(デフォルトは1000)
thin
- デフォルトは1
- traceplotを見て自己相関が高そうなら,thinを増やして一時的
な影響を低減させる
67
- 80. • transformed parametersブロック
dataブロックおよびparameterブロックで宣言された
パラメータと,定数値が使用可能
四則演算とlogなどの関数を用いて,新たにサンプリ
ングする変数を作成
- 例:条件Aの平均𝜇_𝐴と,条件Bの平均𝜇_𝐵の差
• generated quantitiesブロック
上記に加え,transformed parametersブロックで宣言
されたパラメータも使用可能!
事後確率とは完全に切り離されているため,計算が
速い
80