JAGS
の編集
http://www.okadajp.org/RWiki/?JAGS
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
// 谷村晋 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/]]において配布されている。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
タイムスタンプを変更しない
// 谷村晋 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/]]において配布されている。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
テキスト整形のルールを表示する
添付ファイル:
line.png
2476件
[
詳細
]
darwin.png
1738件
[
詳細
]