MCMC 用のソフトウェアである WinBUGS は Windows 専用であるが、Windows 互換レイヤーの Wine を使用することで Mac OS X でも利用可能となる。
ここでは、
1. MacPorts で Wine をインストールして使用する方法、
2. WibBottler の旧版である Darwine 1.0.1 を利用する方法、の
2つの方法を紹介する。
※ Mac OS X 上でネイティブに動作する MCMC ソフトには JAGS がある。速度は平均的には OpenBUGS と同程度とのこと。
sudo port install wine-devel
winecfg
(注) /opt/local/binにPATHを通しておくこと。
WinBUGSの インストール。インストーラに従っていけば、~/.wine/drive_c/Program Files 以下にインストールされる。
wine WinBUGS14.exe
WinBUGS が起動できることを確認する。
wine ~/.wine/drive_c/Program\ Files/WinBUGS14/WinBUGS14.exe
patch for 1.4.3 および immortality_key を適用する。
以下のコードで確認した。このコードは R2WinBUGS のヘルプで表示されるサンプルや[1]を元に作成した。R 上で、wine および winpath が見つからなかった場合には、それぞれの位置を bugs() 関数の WINE および WINEPATH 引数で指定すること(WINE = "/opt/local/bin/wine" および WINEPATH = "/opt/local/bin/winepath")。
library(R2WinBUGS)
model.file <- system.file(package = "R2WinBUGS", "model", "schools.txt")
data(schools)
schools
J <- nrow(schools)
y <- schools$estimate
sigma.y <- schools$sd
data <- list ("J", "y", "sigma.y")
inits <- function(){
list(theta = rnorm(J, 0, 100), mu.theta = rnorm(1, 0, 100),
sigma.theta = runif(1, 0, 100))
}
parameters <- c("theta", "mu.theta", "sigma.theta")
schools.sim <- bugs(data, inits, parameters, model.file,
n.chains = 3, n.iter = 5000,
working.directory = NULL, clearWD = TRUE,
useWINE=TRUE, newWINE = TRUE, debug = FALSE)
Rの作業用ディレクトリのフルパスに英数字以外や空白が入っていると、正常に動作しないかもしれない[2] [3]。
結果表示
> print(schools.sim)
Inference for Bugs model at "/Library/Frameworks/R.framework/Resources/library/R2WinBUGS/model/schools.txt", fit using WinBUGS,
3 chains, each with 5000 iterations (first 2500 discarded), n.thin = 7
n.sims = 1074 iterations saved
mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff
theta[1] 11.2 8.1 -2.5 5.5 10.0 15.4 30.5 1 290
theta[2] 7.8 6.2 -4.1 3.9 7.9 11.8 20.3 1 300
theta[3] 6.3 7.4 -10.2 2.6 6.6 11.0 19.5 1 1100
theta[4] 7.6 6.7 -6.4 3.5 7.3 11.8 20.9 1 1100
theta[5] 5.6 6.3 -8.5 2.0 5.8 9.9 16.4 1 1100
theta[6] 6.1 6.6 -8.1 2.4 6.3 10.3 17.9 1 1100
theta[7] 10.2 6.7 -1.4 5.4 9.8 14.0 24.7 1 460
theta[8] 8.4 7.6 -7.1 3.6 8.0 12.6 25.0 1 1100
mu.theta 7.8 5.0 -1.9 4.4 7.8 11.1 17.3 1 1100
sigma.theta 6.1 5.3 0.2 2.2 4.6 8.8 20.2 1 230
deviance 60.4 2.1 57.2 59.2 60.1 61.3 66.1 1 1100
For each parameter, n.eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor (at convergence, Rhat=1).
DIC info (using the rule, pD = Dbar-Dhat)
pD = 2.6 and DIC = 63.1
DIC is an estimate of expected predictive error (lower deviance is better).
debug=TRUE にすると、WinBUGS は計算を終えても終了せず起動したままとなる。その場合、手動で終了させる('File'->'Exit')[4]。
WinBUGS を使用するだけなら、旧版の Darwine の方が簡単である。
以下のコードで確認した。
library(R2WinBUGS)
model.file <- system.file(package = "R2WinBUGS", "model", "schools.txt")
data(schools)
schools
J <- nrow(schools)
y <- schools$estimate
sigma.y <- schools$sd
data <- list ("J", "y", "sigma.y")
inits <- function(){
list(theta = rnorm(J, 0, 100), mu.theta = rnorm(1, 0, 100),
sigma.theta = runif(1, 0, 100))
}
parameters <- c("theta", "mu.theta", "sigma.theta")
WINE <- "/Applications/Darwine/Wine.bundle/Contents/bin/wine"
WINEPATH <- "/Applications/Darwine/Wine.bundle/Contents/bin/winepath"
schools.sim <- bugs(data, inits, parameters, model.file,
n.chains = 3, n.iter = 5000,
working.directory = NULL, clearWD = TRUE,
useWINE = TRUE, newWINE = TRUE,
WINE = WINE, WINEPATH = WINEPATH, debug = FALSE)
| 2006.11.23作成 | |
| 2008.03.30更新 | |
| 2008.06.18更新 | |
| 2008.11.17更新 | |
| 2009.09.14更新 | |
| 2009.09.15更新 | |
| 2010.01.01更新 | |
| 2010.06.01改訂 | Wine 1.2-rc2およびWineBottler 1.1.44をつかう方法に改訂した。 |
| 2010.06.02更新 | 2010.06.07更新 |
| 2010.06.08更新 | WineBottlerで、WinBUGSのインストール時にdcom98を同時にインストールするようにした。 |
| 2010.07.20更新 | 自分でWineをビルドする方法のWineのバージョンを1.2に更新 |
| 2010.07.31更新 | Darwineを使用する方法を復活。その他、Unixコマンド使用部分の記述をちょっと詳しくした。 |
| 2010.10.06更新 | 誤記の修正ほか。 |
| 2011.02.17更新 | Darwine利用の部がいろいろ間違っていたので(すみません)、修正。 ほか、dcom98 が利用できなくなっている件を追記。 |
| 2012.01.21更新 | 最近の Wine 開発版では、WinBUGS がクラッシュするバグが解消されていたので、MacPorts から Wine をインストールする方法を追加。一方、自分でビルドする方法と、WineBottler を使用する方法を削除した。 |
ITÔ Hiroki
![]()