// 谷村晋 2006年2月8日水曜日17:16:09
// 自由に加筆してください
// 自由に加筆させていただきます。 mtoyokaw
// 何があったのかよく分かりませんが、自由に削除・加筆されて構わないと思いますよ。谷村 > mtoyokawさん
// ありがとうございます。とりあえずの目標までたどりつきました。 mtoyokaw

COLOR(red){SIZE(30){JAGS}}
#contents
----
* JAGSとは [#y7ea72be]
[[JAGS:http://www-fis.iarc.fr/~martyn/software/jags/]] (Just Another Gibbs Sampler)は、ギブス抽出法を用いたベイズ階層モデルの分析プログラムである。WindowsやLinuxなどで動作するClassic BUGSのクローン。BUGSと異なりJAGSは自由に改変・再配布できる(GNU GPLライセンス)。Rと連携して使用できる。WinBUGSとJAGSとの相違点は、[[マニュアル:http://sourceforge.net/projects/mcmc-jags/files/Manuals/2.x/]]に記載されている。

Martyn Plummer((Rのコアメンバー(たぶん)でR.specを書いている人))による紹介スライド [[http://www.math.aau.dk/gr/material/jags-gR2003.pdf]]

//2011年2月11日 古い情報なのでインストール関係をコメントアウトします。
//srpmは現在配布していませんし、再開予定もありません。谷村
//2011年2月13日 JAGS2インストール関係の情報を加筆します。BayesmixはJAGS 0.90対応から進んでいませんので、こちらもコメントアウトするべきだと思います。 mtoyokaw

* インストール [#r720548e]
JAGS 2.0.0以降は[[Sourceforgeのmcmc-jagsプロジェクト:http://sourceforge.net/projects/mcmc-jags/]]において配布されている。2011年2月13日現在の最新バージョンは2.2.0である。JAGS1はJAGS-1.0.4で開発を終えているが、[[作者のサイト:http://www-fis.iarc.fr/~martyn/software/jags/old/]]において配布されている。
JAGS 2.0.0以降は[[Sourceforgeのmcmc-jagsプロジェクト:http://sourceforge.net/projects/mcmc-jags/]]において配布されている。2016年2月19日現在の最新バージョンは4.2.0である。JAGS1はJAGS-1.0.4で開発を終えているが、[[作者のサイト:http://www-fis.iarc.fr/~martyn/software/jags/old/]]において配布されている。

** MacOS XとWindows [#k9f0df42]
MacOS XとWindowsのJAGS2にはバイナリーパッケージが存在する。

** Mac OS X [#k185c51e]

MacPortsを使っている場合はportがあるので簡単にインストールできる。
 $ sudo port install jags

** Linux [#x34a52a4]
Linuxのバイナリーは別途種々のRPMパッケージとして配布されている。
Debain/Ubuntuの場合は次のようにしてインストールする。
 $ sudo apt-get install jags

* Rとの連携 [#lfc1743c]
JAGS2ではrjagsパッケージを使用する。JAGS 2.2.0に対応した最新のrjagsは2.2.0-3(2011年2月13日現在)である。rjagsはcodaとlatticeに依存している。
[[Using JAGS in R with the rjags Package:http://www.johnmyleswhite.com/notebook/2010/08/20/using-jags-in-r-with-the-rjags-package/]]が参考になるだろう。

** rjagsからJAGSのサンプルプログラムを実行する。 [#p53f740c]
BUGSプログラムのサンプルは、JAGSのパッケージに同梱されているか、あるいは[[mcmc-jagsプロジェクトのfilesディレクトリ:http://sourceforge.net/projects/mcmc-jags/files/]]から、使用するJAGSのバージョンに対応したclassic-bugs.tar.gzをダウンロードする。

以下、サンプルvol1にあるlineの場合に即して解説する。
//(以下のコマンドを実行するにはMacOS版のR-GUIの場合、作業ディレクトリをclassic-bugs 2.1/vol1/lineに変更する必要がある。他OS版では?)

Rの作業ディレクトリをclassic-bugs 2.1/vol1/lineに変更する。

 > dir()
 [1] "bench-test1.R" "line-data.R"   "line-inits.R"  "line.bug"     
 [5] "test1.R"       "test1.cmd"    

test1.Rを実行する。test1.Rはrjagsパッケージの使用を前提として書かれている。test1.Rの1行目

 source("../../R/Rcheck.R")

は、環境によって異なると考えられるので、ここでは、test1.Rの内容をRのプロンプトから一行ずつ実行することにする。まず、rjagsパッケージをloadする。

 > library(rjags)
 Loading required package: coda
 Loading required package: lattice
 module basemod loaded
 module bugs loaded

次にtest1.Rの内容を逐次的に実行する。

 > source("line-data.R")
 > m <- jags.model("line.bug", n.chains=2)
 Compiling model graph
    Resolving undeclared variables
    Allocating nodes
    Graph Size: 37

 > update(m, 1000)
   |**************************************************| 100%
 > x <- coda.samples(m, c("alpha","beta","sigma","tau"), n.iter=10000)
   |**************************************************| 100%

以上で、オブジェクトxに実行結果が格納される。結果を確認する。

 > summary(x)
 
 Iterations = 1001:11000
 Thinning interval = 1 
 Number of chains = 2 
 Sample size per chain = 10000 
 
 1. Empirical mean and standard deviation for each variable,
    plus standard error of the mean:
 
         Mean     SD Naive SE Time-series SE
 alpha 2.9977 0.5795 0.004098       0.004361
 beta  0.8018 0.4040 0.002857       0.002936
 sigma 1.0227 0.8124 0.005745       0.009833
 tau   1.8538 1.5293 0.010813       0.014660
 
 2. Quantiles for each variable:
 
          2.5%    25%    50%    75% 97.5%
 alpha 1.92818 2.7438 3.0005 3.2542 4.058
 beta  0.04699 0.6228 0.8001 0.9806 1.545
 sigma 0.41142 0.6284 0.8295 1.1587 2.781
 tau   0.12930 0.7448 1.4534 2.5322 5.908
 
 > plot(x)

#ref(line.png,center)

残りの2行、

 > source("bench-test1.R")
 > check.fun()

については、当方の環境ではcheck.fun()が見つからず、実行できなかった。

//以上、加筆中 2011年2月14日01:07:15、plot結果の挿入方法を調べます。

//* インストール [#y89740c6]

//** LinuxなどUNIX系システム [#zc8cc169]
//*** VineLinux [#c0561332]
//VineLinuxの場合はVinePlus extrasに収録されているので下記でネットワークインストールされる。
// # apt-get install jags
//*** src.rpm [#v2c1ce7e]
//+ リビルドに必要なパッケージ(lapack、libRmath、libRmath-devel)をインストールしておく。
//+ [[jags-0.90-0.src.rpm:http://shakan2.tm.nagasaki-u.ac.jp/rpm2html/SRPMS/jags-0.97.1-0vl1.src.rpm]]をダウンロード(ユーザ名guestパスワードvinelinux)してリビルドする

//*** その他 [#l2ac73cf]

//+ [[JAGS:http://www-fis.iarc.fr/~martyn/software/jags/]]のページから[[ソースコード:http://www-fis.iarc.fr/~martyn/software/jags/JAGS-0.90.tar.gz]]をダウンロードして展開する。
//+ ./configure && make && make install でコンパイルとインストールをする。MacOSXの場合は、configureに--with-aquaを付加する。その他のインストールに関する詳細は、[[マニュアル:http://www-fis.iarc.fr/~martyn/software/jags/manual.pdf]]を参照。


//** Windows [#gbbfc463]
//Windows用のバイナリが用意されていますが、WinBUGSがあるのでJAGSは不要でしょう。

* サンプルの実行 [#bdb1c2f2]
[[サンプル:http://www-fis.iarc.fr/~martyn/software/jags/bugs-examples.tar.gz]]をダウンロードして実行する。例えば、サンプルvol1にあるlineの場合だと、

 > dir()
 [1] "bench-test1.R" "jags.ind"      "jags.out"      "line-data.R"
 [5] "line-inits.R"  "line.bug"      "test1.cmd"
 > source("bench-test1.R")
 > benchstats
            Mean        SD    Naive SE Time-series SE
 alpha 2.9995277 0.5913765 0.005913765    0.006965003
 beta  0.7997792 0.3859491 0.003859491    0.003560436
 sigma 1.0028180 0.7696958 0.007696958    0.013068957
 tau   1.8798401 1.5070511 0.015070511    0.020370002

となる。

BayesMixはJAGSを利用するベイズ混合モデルのRパッケージであり、codaとlatticeに依存している。JAGSをインストールしていれば、
 > library(bayesmix)
 > haveJAGS()
 [1] TRUE
とJAGSへのパスが通っているかどうかチェックできる。baysemixに含まれるサンプルの一部を実行すると、次のようになる。
 > data(darwin)
 > prefix <- "darwin"
 > k <- 2
 > modelDarwin <- BMMmodel(k = k, priors = list(kind = "independence",
    parameter = "priorsUncertain"), aprioriWeights = c(1, 15),
    no.empty.classes = TRUE, restrict = "tau")
 > z2 <- JAGSrun(darwin, prefix, model = modelDarwin, control = JAGScontrol(variables = variables,
        draw = 3000, burnIn = 1000, seed = 1), cleanup = TRUE, tmp = FALSE)
 > plot(z2, variables = "mu")
#ref(darwin.png,center)

* 関連コマンド [#u09fb989]
| コマンド | パッケージ | 説明 |h
| read.jags() | coda | JAGSの出力ファイルを読み込む |
| bugs2jags() | coda | WinBUGSデータファイルをJAGSデータファイルに変換 |

* 文献 [#o55999e7]

[[JAGS: A Program for Analysis of Bayesian:http://www.ci.tuwien.ac.at/Conferences/DSC-2003/Proceedings/Plummer.pdf]]


* リンク [#x72a550d]
- [[coda(マルコフ連鎖モンテカルロ(MCMC)シミュレーションについての出力の分析および診断)パッケージ中のオブジェクト一覧]]
- [[OpenBUGS]]
- [[WinBugs_from_R]]
- [[R2WinBUGS(R より WinBUGS および OpenBUGS の実行)パッケージ中のオブジェクト一覧]]

* コメント [#lf1901ac]
#comment



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS