更新: 2012-10-03 09:30:27
生態学のデータ解析 - 信学会誌ベイズ解説
- 電子情報通信学会誌 (信学会誌) に書いた階層ベイズモデル解説のサポートペイジです
- 出典: 久保拓弥. 2009. 最近のベイズ理論の進展と応用 (I) 階層ベイズモデルの基礎. 電子情報通信学会誌 92 (10):881-885
- 別刷 PDF ファイル (HUSCAP, copyright (C) 2009 IEICE)
- http://www.ieice.org/jpn/books/kaishi.html
- 出典: 久保拓弥. 2009. 最近のベイズ理論の進展と応用 (I) 階層ベイズモデルの基礎. 電子情報通信学会誌 92 (10):881-885
- 参照: 統数研ベイズ講習 2009 , ベイズ統計 & MCMC, R 関連の参照, WinBUGS のインストール, R2WBwrapper, R2WinBUGS, coda 雑
- MCMC, WinBUGS, 階層ベイズモデルについては 統計モデリング入門 の第 8-11 章も参照してください
例題の推定計算に必要なもの
- 推定計算は R と WinBUGS を使います
- これらを連動させる方法については 統数研ベイズ講習 2009 を参照してください
- 必要なファイル:
- d.RData (RData file): 打数・安打数データ
- runbugs.R (R code file): R 内で必要な準備をして WinBUGS を受けとる
-
R2WinBUGS.R
: R2WBwrapper ペイジからダウンロードしてください -
library(R2WinBUGS)
が必要: なければ R 上でinstall.packages("R2WinBUGS")
- model.bug.txt (text file): WinBUGS 用のBUGS code で記述した階層ベイズモデル
実行方法
- 上記ファイルをひとつのディレクトリにいれる (ディレクトリについては WinBUGS 雑 を参照)
- R を起動し
setwd()
などでそのディレクトリに移動 -
source("runbugs.R")
で WinBUGS を実行させる - WinBUGS がグラフなどを表示して計算が終了したら WinBUGS を終了させる
- R 内では結果が
post.bugs
オブジェクトに格納されている-
plot(post.bugs)
やpage(post.bugs, "print", digits.summary = 3)
などで結果を調べる - 結果表示の一例:
print(post.bugs, digits.summary = 3)
の 結果表示
-
BUGS code の解説
-
model.bug.txt
について
model { # 無情報事前分布の固定パラメーター Tau.noninformative <- 1.0E-4 P.gamma <- 1.0E-2 # N[i] 打数中の Y[i] 安打数は二項分布にしたがう for (i in 1:N.sample) { Y[i] ~ dbin(p[i], N[i]) logit(p[i]) <- a + b[i] } # 全打者の平均 a は無情報事前分布にしたがう a ~ dnorm(0, Tau.noninformative) # 打者差 b[i] は階層的な事前分布にしたがう for (i in 1:N.sample) { b[i] ~ dnorm(0, tau) } # 打者差 b[i] のばらつき tau は無情報事前分布にしたがう tau ~ dgamma(P.gamma, P.gamma) sigma <- sqrt(1 / tau) # これは分散逆数 tau を標準偏差に変換してるだけ # (output のため,MCMC 計算には無関係) }