MCMCによる回帰分析
広島大学大学院 教育学研究科
学習心理学研究室 D2
山根 嵩史
2014.06.08
ベイズ推定による多変量解析入門
自己紹介
氏名 : 山根 嵩史
所属 : 広島大学大学院 教育学研究科
教育人間科学専攻 学習心理学研究室 (D2)
研究テーマ : メタ記憶,読解方略
Mail : t.yamane1969@gmail.com
Twitter : @T_Ya...
まずは従来の分析を
ベイズ推定でやってみましょう
Let’s Bayes!
お品書き
•実践1: MCMCによる回帰分析(R編)
1-1 MCMCpackを使った単回帰分析
1-2 MCMCpackを使った重回帰分析
•実践2: MCMCによる回帰分析(Mplus編)
2-1 Mplusを使った単回帰分析
2-2 Mp...
MCMCによる回帰分析(R編)
•Rでベイズ推定するには
>パッケージ多数
>CRANTaskViewsにベイズ統計の
パッケージをまとめたもの
(“Bayesian”)もある
“MCMCpack”が汎用的でオススメ
>MCMCによる各種の統計...
実践1-1: MCMCpackを使った単回帰分析
•MCMCpackのMCMCregress()関数を使用
MCMCregress(formula, data, burnin = 1000, mcmc = 10000,
thin = 1, ve...
実践1-1: MCMCpackを使った単回帰分析
•MCMCpackのMCMCregress()関数を使用
MCMCregress(formula, data, burnin = 1000, mcmc = 10000,
thin = 1, ve...
実践1-1: MCMCpackを使った単回帰分析
•MCMCpackのMCMCregress()関数を使用
MCMCregress(formula, data, burnin = 1000, mcmc = 10000,
thin = 1, ve...
実践1-1: MCMCpackを使った単回帰分析
•とりあえずこれで走ります
MCMCregress(formula, data )
MCMCregress( Y1~X1 , data = dat )
•従来の回帰分析と同じ書き方!
lm( Y...
実践1-1: MCMCpackを使った単回帰分析
•入力
1行目: 回帰分析を実行し“MCMC01”に格納
plot()関数: 事後分布などの図の出力
raftery.diag()関数: Raftery and Lewisの指標を出力
summ...
実践1-1: MCMCpackを使った単回帰分析
•出力(事後分布など)
シミュレーション過程 事後分布
シミュレーション過程で
値のばらつきがないか,
事後分布に歪みがないか
などを見る
実践1-1: MCMCpackを使った単回帰分析
•出力(収束診断)
Lower bound: 診断のために必要なシミュレーション回数
今回の分析(Total)がこの回数を満たしているかどうか確認
Dependence factor: 自己相関...
実践1-1: MCMCpackを使った単回帰分析
•出力(信用区間)
Quantiles: 信用区間
2.5%~97.5%の区間で0を含んでいなければ有意
実践1-1: MCMCpackを使った単回帰分析
•その他の収束診断の指標
Gelman and Rubinの指標(Rhat)
gelman.diag()関数で算出
1.1を越えなければ
収束していると見なされる
実践1-1: MCMCpackを使った単回帰分析
•その他の収束診断の指標
BF
BayesFactor()関数で算出
ベイズファクターの基準に
基づいて判断する
×Boy Friend×Battle Field
従来の回帰分析の結果と比べてみる
そういうもんです
値が微妙に違うんだけど...
MCMCregress()
lm()
実践1-2: MCMCpackを使った重回帰分析
•とりあえずこれで走ります
MCMCregress( Y1~X1 + Z1, data = dat )
•こちらも従来の重回帰分析と同じ書き方
lm( Y1~X1 + Z1, data = da...
実践1-2: MCMCpackを使った重回帰分析
•入力
•出力
MCMCによる回帰分析(Mplus編)
•Mplusでベイズ推定するには
>特別な操作(パッケージのインストール
やプログラミングなど)は必要ナシ!
>“Estimator = BAYES;”として,いくつか
のコードを追記するだけでOK
実践2-1: Mplusを使った単回帰分析
•入力 従来の単回帰分析 MCMCによる単回帰分析
ANALYSISコマンドにおいて
“ESTIMATOR = BAYS”でベイズ推定を指定
“POINT = MEDIAN” で推定する値を指定
“C...
実践2-1: Mplusを使った単回帰分析
•入力 従来の単回帰分析 MCMCによる単回帰分析
PLOTコマンドにおいて
“TYPE = PLOT2”とすることで
事後分布などのグラフを表示することができる
実践2-1: Mplusを使った単回帰分析
•出力(シミュレーション過程と事後分布)
出力画面で[plot]→[view plot]からチェック
シミュレーション過程
(Bayesian posterior parameter trace pl...
実践2-1: Mplusを使った単回帰分析
•出力(適合度指標)
事後予測p値: 0.0~1.0の値をとる
中心の0.5に近いほど当てはまりが良い
DICおよびBIC:低いほど当てはまりが良い
モデル比較の際に用いる
実践2-1: Mplusを使った単回帰分析
•出力(従来の単回帰分析との比較)
従来の単回帰分析 MCMCによる単回帰分析
実践2-2: Mplusを使った重回帰分析
•入力 従来の重回帰分析 MCMCによる重回帰分析
実践2-2: Mplusを使った重回帰分析
•出力
Let’s
Bayes!
参考文献
[1]Martin,A. A. D., Quinn, K. M., Park, J. H., Jong, M., & Park, H.
(2013). Package “ MCMCpack ”, (Mcmc)...
Upcoming SlideShare
Loading in …5
×

MCMCによる回帰分析@ベイズセミナー

8,243 views

Published on

Published in: Data & Analytics
  • Be the first to comment

MCMCによる回帰分析@ベイズセミナー

  1. 1. MCMCによる回帰分析 広島大学大学院 教育学研究科 学習心理学研究室 D2 山根 嵩史 2014.06.08 ベイズ推定による多変量解析入門
  2. 2. 自己紹介 氏名 : 山根 嵩史 所属 : 広島大学大学院 教育学研究科 教育人間科学専攻 学習心理学研究室 (D2) 研究テーマ : メタ記憶,読解方略 Mail : t.yamane1969@gmail.com Twitter : @T_Yamane
  3. 3. まずは従来の分析を ベイズ推定でやってみましょう Let’s Bayes!
  4. 4. お品書き •実践1: MCMCによる回帰分析(R編) 1-1 MCMCpackを使った単回帰分析 1-2 MCMCpackを使った重回帰分析 •実践2: MCMCによる回帰分析(Mplus編) 2-1 Mplusを使った単回帰分析 2-2 Mplusを使った重回帰分析
  5. 5. MCMCによる回帰分析(R編) •Rでベイズ推定するには >パッケージ多数 >CRANTaskViewsにベイズ統計の パッケージをまとめたもの (“Bayesian”)もある “MCMCpack”が汎用的でオススメ >MCMCによる各種の統計解析が実行可能 (RjpWiki “Rでベイズ統計学”のページより)
  6. 6. 実践1-1: MCMCpackを使った単回帰分析 •MCMCpackのMCMCregress()関数を使用 MCMCregress(formula, data, burnin = 1000, mcmc = 10000, thin = 1, verbose = 0, seed = NA, beta.start = NA, b0 = 0, B0 = 0, c0 = 0.001, d0 = 0.001, sigma.mu = NA, sigma.var = NA, marginal.likelihood = c("none", "Laplace", "Chib95"), ...) formula: 回帰モデル, data: データの指定 burnin: バーンイン期間, mcmc: 繰り返し回数
  7. 7. 実践1-1: MCMCpackを使った単回帰分析 •MCMCpackのMCMCregress()関数を使用 MCMCregress(formula, data, burnin = 1000, mcmc = 10000, thin = 1, verbose = 0, seed = NA, beta.start = NA, b0 = 0, B0 = 0, c0 = 0.001, d0 = 0.001, sigma.mu = NA, sigma.var = NA, marginal.likelihood = c("none", "Laplace", "Chib95"), ...) thin: 推定に用いる値のサンプリング間隔 verbose: 途中経過を表示するタイミング seed: シード値の設定
  8. 8. 実践1-1: MCMCpackを使った単回帰分析 •MCMCpackのMCMCregress()関数を使用 MCMCregress(formula, data, burnin = 1000, mcmc = 10000, thin = 1, verbose = 0, seed = NA, beta.start = NA, b0 = 0, B0 = 0, c0 = 0.001, d0 = 0.001, sigma.mu = NA, sigma.var = NA, marginal.likelihood = c("none", "Laplace", "Chib95"), ...) b0: 事前分布の平均, B0: 事前分布の分散 c0: 逆ガンマ分布のshapeパラメータ d0: 逆ガンマ分布のscaleパラメータ (その他の引数については参考文献[1]を参照)
  9. 9. 実践1-1: MCMCpackを使った単回帰分析 •とりあえずこれで走ります MCMCregress(formula, data ) MCMCregress( Y1~X1 , data = dat ) •従来の回帰分析と同じ書き方! lm( Y1~X1 , data = dat )
  10. 10. 実践1-1: MCMCpackを使った単回帰分析 •入力 1行目: 回帰分析を実行し“MCMC01”に格納 plot()関数: 事後分布などの図の出力 raftery.diag()関数: Raftery and Lewisの指標を出力 summary()関数: 結果の要約を出力
  11. 11. 実践1-1: MCMCpackを使った単回帰分析 •出力(事後分布など) シミュレーション過程 事後分布 シミュレーション過程で 値のばらつきがないか, 事後分布に歪みがないか などを見る
  12. 12. 実践1-1: MCMCpackを使った単回帰分析 •出力(収束診断) Lower bound: 診断のために必要なシミュレーション回数 今回の分析(Total)がこの回数を満たしているかどうか確認 Dependence factor: 自己相関の指標 5を越えた場合には収束していないと判断される
  13. 13. 実践1-1: MCMCpackを使った単回帰分析 •出力(信用区間) Quantiles: 信用区間 2.5%~97.5%の区間で0を含んでいなければ有意
  14. 14. 実践1-1: MCMCpackを使った単回帰分析 •その他の収束診断の指標 Gelman and Rubinの指標(Rhat) gelman.diag()関数で算出 1.1を越えなければ 収束していると見なされる
  15. 15. 実践1-1: MCMCpackを使った単回帰分析 •その他の収束診断の指標 BF BayesFactor()関数で算出 ベイズファクターの基準に 基づいて判断する ×Boy Friend×Battle Field
  16. 16. 従来の回帰分析の結果と比べてみる そういうもんです 値が微妙に違うんだけど... MCMCregress() lm()
  17. 17. 実践1-2: MCMCpackを使った重回帰分析 •とりあえずこれで走ります MCMCregress( Y1~X1 + Z1, data = dat ) •こちらも従来の重回帰分析と同じ書き方 lm( Y1~X1 + Z1, data = dat )
  18. 18. 実践1-2: MCMCpackを使った重回帰分析 •入力 •出力
  19. 19. MCMCによる回帰分析(Mplus編) •Mplusでベイズ推定するには >特別な操作(パッケージのインストール やプログラミングなど)は必要ナシ! >“Estimator = BAYES;”として,いくつか のコードを追記するだけでOK
  20. 20. 実践2-1: Mplusを使った単回帰分析 •入力 従来の単回帰分析 MCMCによる単回帰分析 ANALYSISコマンドにおいて “ESTIMATOR = BAYS”でベイズ推定を指定 “POINT = MEDIAN” で推定する値を指定 “CHAIN = 3”でマルコフ連鎖の数を指定 “BITERATIONS = (10000)”でシミュレーション回数を指定
  21. 21. 実践2-1: Mplusを使った単回帰分析 •入力 従来の単回帰分析 MCMCによる単回帰分析 PLOTコマンドにおいて “TYPE = PLOT2”とすることで 事後分布などのグラフを表示することができる
  22. 22. 実践2-1: Mplusを使った単回帰分析 •出力(シミュレーション過程と事後分布) 出力画面で[plot]→[view plot]からチェック シミュレーション過程 (Bayesian posterior parameter trace plots) 事後分布 (Bayesian posterior parameter distributions)
  23. 23. 実践2-1: Mplusを使った単回帰分析 •出力(適合度指標) 事後予測p値: 0.0~1.0の値をとる 中心の0.5に近いほど当てはまりが良い DICおよびBIC:低いほど当てはまりが良い モデル比較の際に用いる
  24. 24. 実践2-1: Mplusを使った単回帰分析 •出力(従来の単回帰分析との比較) 従来の単回帰分析 MCMCによる単回帰分析
  25. 25. 実践2-2: Mplusを使った重回帰分析 •入力 従来の重回帰分析 MCMCによる重回帰分析
  26. 26. 実践2-2: Mplusを使った重回帰分析 •出力
  27. 27. Let’s Bayes! 参考文献 [1]Martin,A. A. D., Quinn, K. M., Park, J. H., Jong, M., & Park, H. (2013). Package “ MCMCpack ”, (Mcmc). [2]小杉考司・清水裕士 (編著) (2014). MplusとRによる 構造方程式モデリング入門 北大路書房, pp. 245-261

×