stanとrでベイズ統計モデリングに関する読書会(osaka.stan) 第四章

97
Stan と R ととととととととととと ととと -Chapter 4- Stan と RStan とととととと 1 Osaka.stan #2 (2016/12/23)

Upload: nocchiairport

Post on 07-Jan-2017

801 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Stan と R でベイズ統計モデリング読書会

-Chapter 4-Stan と RStan をはじめよう

1

Osaka.stan #2(2016/12/23)

Page 2: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

自己紹介

• 紀ノ定 保礼 大阪大学大学院人間科学研究科 心理学・人間工学 界隈

- 専門は交通行動

• ベイズ歴 1 年弱(学会発表 1 件,投稿準備中論文 1 本) 目下勉強中なので,発表者の理解が誤っている場合は,

ご指摘よろしくお願いします!

2

Page 3: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

3

最近書きました

Page 4: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

本発表について• 本書 1~4 章の既読者を想定

1~3 章は前回の読書会資料を参照http://www.slideshare.net/simizu706/stanr13

• 進め方 基本的にページ順に説明

- 一部,後の節から先取りして,ひとまとめにしている箇所あり

写経+補足説明

「本書に書いてある通り」の部分は省略4

Page 5: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

本発表について

• ggplot2 の素晴らしさも伝えたい ただ作図コードがおのずと長くなるので,敬遠

されてしまうかもしれない

そこで,見栄え調整のコードは省略し,最低限必要な部分だけ抜粋した書き方も紹介- 以下のサイトで公開しました

5http://qiita.com/kyn02666/items/e41c076cd5140e78b99a

Page 6: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

• MCMC の結果が本書と違うが,気にしないでください 環境は R ( version 3.3.2 )と RStan ( version 2.12.1 )

6Modeling Language User‘s Guide and Reference Manual, Version 2.13.1 より

Page 7: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

7http://www.kyoritsu-pub.co.jp/bookdetail/9784320112421

本章以降のデータやコードはダウンロード可能

Page 8: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

8

↓ まず読む

Page 9: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

9

← chap04 内にプロジェクトを  作っておくと便利

Page 10: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.1Stan のインストール

10

Page 11: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

特に追記することはないので省略!

11http://www.slideshare.net/KojiKosugi/r-stan

詳細はこちら

Page 12: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2Stan の基本的な文法

12

Page 13: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

13

以降は Rstudio 上でコードを書いていることを前提にします

Stan 超初心者講習よりhttp://www.slideshare.net/simizu706/stan-62042940

Page 14: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.1 ブロック構成

14

データの宣言

サンプリングしたいパラメータの宣言

これら 3 ブロックは基本的に必要

※Stan におけるパラメータの定義:確率変数すべて

𝑝 (𝜃|𝑌 )=𝑝 (𝑌|𝜃 )𝑝 (𝜃 )𝑝 (𝑌 )

← この部分を書く

Page 15: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.2 文法の基礎

• 例:正規分布の平均を推定 観測されたデータは 20 個あるとする 背景知識

- 推定したい正規分布の標準偏差は 1- 平均に関する背景知識なし

モデル式 4-1

15

𝑝 (𝜃|𝑌 )=𝑝 (𝑌|𝜃 )𝑝 (𝜃 )𝑝 (𝑌 )

Page 16: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.2 文法の基礎

16

𝜇 𝑁𝑜𝑟𝑚𝑎𝑙 (0 ,100 )↑ 無情報事前分布であれば省略可能 (自動的に,十分に広い一様分布が設定される)

← 推定対象のパラメータを宣言

← モデルを書く上で必要なデータを指定

Page 17: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

17

↓ データ型についてはここを参照

http://qiita.com/hoxo_m/items/e4dab11fed062689eff2

Page 18: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.3 コーディング規約守らなくてもエラーは生じないが,可読性が向上

18

インデント(字下げ) データ変数の先頭は大文字パラメータ変数の先頭は小文字

ブロック間は 1 行空ける

やの前後は 1 スペース空ける

Page 19: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.3 コーディング規約エラーを招く原因

19最終行は 1 行空ける

行末のセミコロンを忘れない

L と 1 を見間違えない

Page 20: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.3 コーディング規約変数の宣言を行える場所は, { の直後のみ

20

Page 21: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

21

{ の直後であれば,パラメータの宣言はブロックの冒頭でなくてもよい

ただし, {} の中で宣言したパラメータは出力されないので注意

Page 22: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.2.3 コーディング規約とりあえず Stan コードを書いたら Check

22

’model4-1.stan’ として保存

Page 23: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

試しにデータを流し込んでみる data ブロックで宣言した変数を, R から渡してや

23

以下のデータを渡してみる• N=20• Y= 平均 200 ,標準偏差 1 の正規乱数が

20 個格納されたベクトル

MCMC の結果…

ほぼ実データ通り!

Page 24: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.3Stan の lp__ と targetmodel4-1 を例に説明

24

Page 25: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

以下の資料を参考にさせていただきました

25http://www.slideshare.net/simizu706/stan-64926504

40-48 枚目スライド参照

Page 26: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

26

↑ これは何?

Stan コードでは,そのような“パラメータ”は宣言していないはず…

Page 27: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

27

↑ これは何?

実はこの背後で計算されている!lp : log posterior (対数事後確率)の略

Page 28: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

復習

• そもそも MCMC とは何をするものか

知りたいのは左辺

でも正規化定数が邪魔で計算できない

は定数なのだから,

に従う乱数を生成して事後分布を近似

28

𝑝 (𝜃|𝑌 )=𝑝 (𝑌|𝜃 )𝑝 (𝜃 )𝑝 (𝑌 )

ベイズの定理

Page 29: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

効率よくを推定するには

• 事後確率 が大きくなるようなの付近で,たくさんサンプリングしたい

ステップごとに,パラメータについて偏微分

なお,計算を簡単にするために,両辺対数をとる

29

¿ log𝑝 (𝑌|𝜃 )+log𝑝 (𝜃 )+𝑐𝑜𝑛𝑠𝑡 .

Page 30: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

• 事後確率

• 対数事後確率

30

¿ [∏𝑛=1

20

𝑁𝑜𝑟𝑚𝑎𝑙 (𝑌 [𝑛 ] |𝜇 ,1 )]×𝑁𝑜𝑟𝑚𝑎𝑙 (𝜇∨0 ,100 )

¿ [∑𝑛=1

20

log𝑁𝑜𝑟𝑚𝑎𝑙 (𝑌 [𝑛 ]∨𝜇 ,1 ) ]+ log𝑁𝑜𝑟𝑚𝑎𝑙 (𝜇∨0 ,100 )( 式 4.3)

𝑝 (𝜃|𝑌 )

※偏微分で消える定数項は省略

負の値の足し算になるlog𝑝 (𝜃|𝑌 )

(一般的に) 1 より小さい値の積

Page 31: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

31

sampling statement form(簡略的コード) explicit increment form( lp を正確に計算する版)

[∑𝑛=1

20

log𝑁𝑜𝑟𝑚𝑎𝑙 (𝑌 [𝑛 ]∨𝜇 ,1 ) ]+ log𝑁𝑜𝑟𝑚𝑎𝑙 (𝜇∨0 ,100 )

そのまま表現しただけ!

• target は lp のニックネーム• 予約語なので宣言不要

Page 32: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

32http://www.slideshare.net/simizu706/stan-64926504

確率密度/質量関数については本書Chapter 2, p7 参照

Page 33: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4単回帰

33

Page 34: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

本題に入る前に復習

• 解析の手順( Chapter3, p18-19 ) データをとる前

- 問題設定:何を知りたいのか- 解析計画:どの手法を使うのか

データをとった後- データの分布の確認:データ生成メカニズムの

想像が可能• 本書では ggplot2 パッケージを使用

- 解析34

Page 35: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

ggplot2 について知りたい方は

35

この順に読むのが分かりやすいと思います

Page 36: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

http://ggplot2.org/簡単に・多層的にデータを視覚化できる

36

Page 37: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

37

重ね着するイメージで

Page 38: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

基本的な書き方

• 基本レイヤー

このなかで指定した dataや変数が,以降の geomや statに持ち越される- data :描画用データが含まれるデータフレーム- aes() :データをグラフに mapping させる関数

• この変数は X軸に,この変数は Y軸に,この変数で識別して…

ggplot()内で指定しなければ,以降の各 geomや stat内で指定する必要がある 38

Page 39: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

基本的な書き方

• geom_や stat_ 描画形式を指定(例:散布図,棒グラフ…)

今回は, 1 行目でデータや変数を指定済みなので,これらを geom内や stat内で指定する必要がない

geom内や stat内で,別のデータフレームや別の変数を指定することも可能 39

Page 40: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

困ったときのチートシート

Page 41: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Data Visualization with ggplot2 Cheat Sheet

Page 42: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

データセット(年齢と年収)を利用

• : B社の社員の年齢(歳)

• :年収(万円)

年収基本年収

• 分析の目的

歳時点での年収の予測- 応答変数 = 年収,説明変数 = 年齢の,単回帰分析 42

年齢に正比例平均の正規分布に従う(例:ランダムな業績のばらつき)

Page 43: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

データの分布の確認

43

Page 44: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

もっと詳しく確認したいなら

44

GGally パッケージは,本書 5.1.2 で初登場します

どうやら,年収を年齢で直線回帰してもよさそう

Page 45: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.3 モデル式の記述

モデル式 4-2

45

𝑛=1 ,2 ,…,𝑁𝑛=1 ,2 ,…,𝑁𝑛=1 ,2 ,…,𝑁

全員に共通の線形式があり,そこに個人ごとに独立のノイズが乗ることで,年収が決まる

Page 46: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

• モデル式 4-2

• モデル式 4-3

• モデル式 4-4

• モデル式 4-5

46

𝑛=1 ,2 ,…,𝑁

どのモデルも等価!

Page 47: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

47

Stan 超初心者講習よりhttp://www.slideshare.net/simizu706/stan-62042940

(モデル式 4-5 は)

Page 48: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.4 R の lm 関数で推定

lm.Rファイルより

48

年齢が一つ増えるごとに,基本年収が 21.9 万円上昇

Page 49: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

先ほど求めた回帰式 res_lm に, X_new 歳を代入し, 95% 信頼区間を推定

予測値 49

年齢 95% 信頼区間の下限と上限

Page 50: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

信頼区間の求め方予測値 ± t値 × 予測値のばらつき ↓ 追記する

例えば 23歳の年収の, 95%信頼区間上限なら

50

予測値のばらつき ↓ ↓ 誤差の自由度

Page 51: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

51

直線: 23~60 歳での推定年収薄い灰帯: 95% 信頼区間濃い灰帯: 50% 信頼区間

fig4-3.R ファイルより

Page 52: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

52

①②③④⑤⑥⑦⑧

① ② ③ ④

⑤ ⑥ ⑦ ⑧

基本レイヤーの作成(データなし) 背景テーマと文字サイズの変更

上限下限を指定( 95%CI )その範囲内を塗りつぶす

③ と同様( 50%CI) 区別のため色の透過度を調整

直線回帰 Raw data のプロット 軸ラベルの変更データ表示範囲の変更 見栄えよく!

⑨ 出来上がったら,好きな形式で保存

Y 軸は予測値 fitなので一直線

目盛間隔を調整し

Page 53: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

53

引数が多いから難しそうに見えるが…

最低限必要なのは,これだけその他のコードは見栄えを調整しているだけ大丈夫,こわくない!

Page 54: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

54

ローデータの X の範囲( 24~59 歳)で構わないなら,信頼区間に関してはこういう書き方も可能

Page 55: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

予測区間の場合

55

予測値 ± t値 × (予測値のばらつき+ 予測値からのばらつき)

予測値からのばらつきのぶん,信頼区間よりも広い

Page 56: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

56

↓ 追記する

例えば 23歳の年収の, 95%予測区間上限なら

↓ 予測値の ばらつき ↓ 予測値からの ばらつき

Page 57: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

57

直線: 23~60 歳での推定年収薄い灰帯: 95% 予測区間濃い灰帯: 50% 予測区間

※予測区間に関しては  geom_smooth() は使えない

fig4-3.R ファイルを極力短縮化

Page 58: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

参考にさせていただきました

• predict 関数と数式の対応、グラフの描き方  (信頼区間・予測区間編 ) http://crayfish44.hatenablog.jp/entry/20160223/1456220882

• Excel で回帰分析の予測区間を描く http://qiita.com/ksksk/items/75ba95337ccdb32e7cb1

58

Page 59: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.5 Stan で実装

59

model4-5.stan ファイルに説明追記

今回は無情報事前分布を採用するので,事前分布は省略可能(自動的に,十分に広い一様分布が適用される)

Page 60: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.6 R からの実行方法

60

run-model4-5.R を改変(書き方が違うだけで内容は同一)コンパイル済みの Stan モデルファイルを参照できるので,サンプリングだけを行えばよい場合は速い( 4.4.9 ( p44 )参照)

乱数の種。指定しておくと,乱数が再現可能

Page 61: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.7 RStan の結果の見方

• まずは, lp__ を含む全パラメータが収束しているか確認 n_eff :実効的と判断された MCMC サンプル数

- 小さいと,分布や統計量の推定が不正確になる

Rhat : Chain 間の一致度の指標- 本書では, Chain 数が 3 以上で,全パラメータの Rhat < 1.1 が収束の基準

61

デフォルトの設定

Page 62: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.7 Rstan の結果の見方

62

MCMC サンプルの分位点

分位点や小数点以下桁数は変更可能

Page 63: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.8 収束診断をファイルへ出力する• ggmcmc パッケージを使用

収束診断に有用なグラフを自動で描いてくれる,ggplot2 のラッパー

63https://cran.r-project.org/web/packages/ggmcmc/ggmcmc.pdf

Page 64: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

64

rstan-save-diagnostics.Rファイルより

グラフ指定全部出力

Page 65: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

65

描画形式ごとに関数も存在する

自分で ggplotオブジェクトを改造することも可能!!

Page 66: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

bayesplot パッケージも便利

66デフォルトで,基準位置を示してくれている

Page 67: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.9 MCMC の設定の変更• Chains, iter, warmup, thin の目安

Chains- Stan 開発チームは 4 を推奨(デフォルト)

iter- モデルの試行錯誤段階では 500~1000 (デフォルトは 2000 )- 最終モデルが決まったら大きくする

warmup- traceplot を見て判断(デフォルトは 1000 )

thin- デフォルトは 1- traceplot を見て自己相関が高そうなら, thin を増やして一時的

な影響を低減させる67

Page 68: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

68

上手く収束した場合

自己相関が高そうな場合

一時的に極端な値が生成されているhttp://qiita.com/kyn02666/items/a26a389aa5bfc8682186

Page 69: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.10 並列計算の実行方法

• 通常は,複数の Chain を逐次的に走らせる(右図)

• Chain を並列的に走らせて,サンプリングの計算時間を短縮

69

現時点では,並列化が必要なほど複雑なモデルは組んでいないので,説明は割愛

Page 70: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.11 ベイズ信頼区間とベイズ予測区間

• : B社の社員の年齢(歳)

• :年収(万円)

年収基本年収

70

基本年収のベイズ信頼区間は?年収のベイズ予測区間は?

Page 71: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

95% ベイズ信頼区間

71

rstan-extract-MCMCsamples.R ファイル

Page 72: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

N歳のときの 95% ベイズ信頼区間

72

rstan-extract-MCMCsamples.R ファイル・続き例えば 50 歳の時なら…

↓ 推定したパラメータを用いて予測した,  50 歳時点の基本年収←予測した 50 歳時点の基本年収を 平均とする,正規分布から発生 された年収

Page 73: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

ベイズ信頼区間

73

大変そうに見える…が!

fig4-8.R より

Page 74: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

74

最低限必要なコードはこれだけ

Page 75: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

dplyr パッケージを使っていいならこのほうが挙動がイメージしやすいかも

75

推定した回帰式に任意の X を代入して予測値(の分布)を求めている

Page 76: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

ベイズ予測区間

76

fig4-8.R のうち最低限必要なコードはこれだけ

Page 77: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

77

fig4-8.R を, dplyr パッケージを使って書き換えた場合

Page 78: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

4.4.12 transformed parameters ブロックgenerated quantities ブロック

78

データの宣言

サンプリングしたいパラメータの宣言※Stan におけるパラメータの定義:確率変数すべて

𝑝 (𝜃|𝑌 )=𝑝 (𝑌|𝜃 )𝑝 (𝜃 )𝑝 (𝑌 )

← この部分を書く

最低限必要なブロック

Page 79: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

• ここまでの説明 Stan 上で確率モデルのパラメータを推定

MCMC サンプルを用いて, R 上で様々な計算

• この方法の問題点 R コードが複雑になりバグが入りやすくなる 計算速度が遅い 作業全体の見通しが悪い

79

可能な限り Stan 上で計算させたい!!

Page 80: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

• transformed parameters ブロック data ブロックおよび parameter ブロックで宣言され

たパラメータと,定数値が使用可能 四則演算と log などの関数を用いて,新たにサンプ

リングする変数を作成- 例:条件 A の平均と,条件 B の平均の差

• generated quantities ブロック 上記に加え, transformed parameters ブロックで宣

言されたパラメータも使用可能! 事後確率とは完全に切り離されているため,計算が速い

80

Page 81: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

81

Page 82: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

82model4-5.stan model4-4.stan

↑ 正規分布に従う乱数を生成

Page 83: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

83

(中略)

run-model4-4.R

R 上での計算が不要!

Page 84: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

練習問題

84

Page 85: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

ねらい

t検定に相当することを Stan で

85

Page 86: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

準備まずはデータフレーム形式に加工

86

※あらかじめ作業ディレクトリを 移動しておくこと中略

Page 87: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (1)各グループの値に差が認められるか,おおよそ把握するために可視化

87

• ex1.Rファイル内の模範解答がこちら• group2 は,若干分布が歪んでいる• 中央値は group2 のほうが大きい• group2 のほうが,若干分散が小さそう

Page 88: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

分布が知りたいなら…

88

• やはり group2 のほうが分散は小さそう

• 平均値(十字の中心)に差がありそう 縦線は SE を表す

• 両群とも大雑把には正規分布のようにみえる

Page 89: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (2)

各グループで標準偏差が等しいと仮定して,モデル式を書け( Student の t検定)

89

Page 90: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (3)• Stan で (2) のモデルファイルを作成して実行せ

よ ただし generated quantities ブロックは使用しない

90

R コード( ex3.R )Stan コード( ex3.stan )

Page 91: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (3)

91

だいたい一致( sd が大きいから…)

Page 92: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (4)• MCMC サンプルから R側でを計算

全MCMC のなかで, となる割合を求める

92

どちらの方法でもよい

ex4.R より

𝜇1<𝜇 2𝜇1<𝜇 2𝜇1<𝜇 2𝜇1<𝜇 2𝜇1<𝜇 2𝜇1>𝜇 2

Page 93: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

93

generated quantities ブロックを使用した場合は…

diff が 0 より大きい確率を求めればいいmean(rstan::extract(fit)$diff > 0)

Page 94: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

Exercise (5)

94

各グループで標準偏差が異なると仮定して,モデル式を書け( Welch の t検定)

添え字が付いただけ!

Page 95: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

95

← 群の数だけを宣言する

Page 96: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

を計算

• Exercise(4) と同様なので省略

96

Page 97: StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章

おわりに

今回説明を飛ばした点: p47 MCMC サンプルが,事後分布であるからサンプリ

ングされたことを確認する点

つまり,の同時分布であることを確認する点

fig4-7.R だけでなく,以下のサイトが参考になります

散布図と周辺分布をあわせて描きたいhttp://qiita.com/hoxo_b/items/0382ae9055838b05ad9b

97