Description Usage Arguments Details Value Note Author(s) See Also Examples
This function takes model, data, starting values, and a properly formatted OpenBUGS script file as input and executes OpenBUGS returning its output to R. OpenBUGS execution occurs in a temporary directory with a unique name to avoid conflicts if multiple OpenBUGS runs are initiated from the same directory.
1 2 3 4 5 6 7 |
modelFile |
Filename of the BUGS model code.
A full path to the model is needed unless the
file is saved in the |
data |
A list with R variables to become the input data for the
BUGS model. The list variable names must be explicitly assigned in
the list and correspond to the names in the BUGS modelFile.
Alternatively, |
inits |
A list of starting values for the BUGS model, or a function creating initial values. The inits are written to files with names 'inits1.txt' ... "initsmax.txt" in the the BUGS execution directory. Each set of starting values must be in a list, and the starting lists must be contained in a list, even if there is a single list of starting values (i.e., a list with 1 list element). Alternatively, inits can be a character vector of length numChains, with the names of files containing the starting lists. If inits is NULL, no init files are written and the script file must contain a generate inits command. |
cmdTemplate |
Filename of the BUGS script meta-commands. A
full pathname is needed unless the file is in the |
numChains |
Number of Markov chains (default:1). If this number is not equal to the default, corresponding changes have to made in the BUGS command template. |
digits |
Number of significant digits used for BUGS data input (default=5). It has no effect if data or inits files are supplied. |
baseDir |
The default is the current R work directory, but the default search path for input files can be specified. |
workName |
The name of the directory for all BUGS input and
output (execution directory). The name is appended to
|
index |
An integer combined with a data/time stamp appended to
the name of |
codaStem |
When FALSE, the coda output are read and returned as a
|
delWorkFolders |
Logical, whether to delete the temporary folder (default =TRUE). |
stripComments |
When TRUE, comments are removed from the model and data files. Versions 3.0.3 and earlier of OpenBUGS fail when executed in linux if comments are present. The problem has been corrected in later versions. |
seed |
A seed for the random number generator can be specified. The value of the seed must be one of 1, 2, 3, ..., 14. OpenBUGS uses the same starting seed by default (1) for all models, so it is not required to set the seeds, but it does make reproducibility more explicit. Note that seed set commands must be added to the BUGS command template as indicated below. Note also that setting seeds is not the same as setting initial values for different chains. |
useWINE |
logical; attempt to use the Wine emulator |
WINE |
character, path to ‘wine’ binary file, it is tried
hard (by a guess and the utilities |
newWINE |
Use new versions of Wine that have ‘winepath’ utility |
WINEPATH |
character, path to ‘winepath’ binary file, it is
tried hard (by a guess and the utilities |
The BRugs package does not currently work properly in linux, and it
executes an old version of OpenBUGS in windows.
batchBUGS
executes OpenBUGS from R using system calls that
automatically detect the operating system.
batchBUGS
also executes under WINE for use on Apple Computers.
One objective is to execute BUGS from R in all of these computing
environments with a minimal number of changes.
The user must supply a BUGS script meta-file supplying the OpenBUGS commands that correspond to menu selections. All input files should be stored in the R working directory, or full pathnames must be supplied. OpenBUGS includes documentation for the scripting commands.
BatchBUGS creates uniquely named directories for BUGS execution needed for parallel executions common with Monte Carlo simulation. By default, these work directories are not saved.
Older versions of OpenBUGS(<=3.0.3) fail when executed under linix if a model or data file contains comments. The batchBUGS function removes all comments and places copies of these modified files in the BUGS working directory by default.
The batchBUGS
code includes the bugsData
,
bugsInits
, write.datafile
, and formatdata
functions from the BRugs package. It includes the
winedriveMap
, winedriveTr
, winedriveRTr
,
win2native
, and native2win
, functions from the
R2WinBUGS package.
A list with two elements. The first is codaCreated, which is 1 if CODA files were successfully created, and 0 otherwise. The second element, named codaOut is a mcmc.list ("coda") object containing the simulated values of the parameters monitored in the BUGS simulation. Alternatively, the second element can be a text string with the location (in the execution directory, which is not removed) of the output coda ascii files. The codaOut object is a text string with the temporary directory (not removed) containing the input files if BUGS failed to create coda files.
Before executing batchBUGS
, place the model file and the BUGS
command template in the R working directory. Otherwise, the full path
to their locations must be explicitly specified in the arguments.
Filenames in the BUGS command script must have a pre-specified symbolic pathname. The user must give a symbolic path named $TEMPDIR in the command script, and this symbolic name is replaced with the full path name by batchBUGS. The seed can also be set by including the symbolic name $SEED. An example command script and model file for use with the example R code follow. The code below must be stored in the R working directory with names "cmds.txt" and "emaxmodel.txt" to execute the example in the example section.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | cmds.txt
modelCheck("$TEMPDIR/model.txt")
modelData("$TEMPDIR/data.txt")
modelCompile(3)
modelInits("$TEMPDIR/inits1.txt",1)
modelInits("$TEMPDIR/inits2.txt",2)
modelInits("$TEMPDIR/inits3.txt",3)
modelSetRN($SEED)
modelGenInits()
modelUpdate(1000)
samplesSet("e0")
samplesSet("emax")
samplesSet("ed50")
samplesSet("lambda")
samplesSet("sigma")
modelUpdate(1000)
samplesCoda("*","$TEMPDIR/")
modelSaveLog("$TEMPDIR/log.txt")
modelQuit('yes')
emaxmodel.txt
model {
for (i in 1:N) {
y[i] ~ dnorm(emx[i], tau)
emx[i] <- e0 +
(emax*pow(dose[i],lambda))/(pow(ed50,lambda)+pow(dose[i],lambda))
}
e0 ~ dnorm(0, 0.04)
emax ~ dnorm(10, 0.01)
tau ~ dgamma(0.01, 0.001)
ed50~ dgamma(1.15, 0.02)
p~dgamma(1.5,0.8333333)
lambda<- 0.5+p
sigma <- 1 / sqrt(tau)
y100mg<-(emax * pow(100,lambda))/(pow(ed50,lambda)+pow(100,lambda))
}
|
Neal Thomas, Jim Rogers, Khriss Toto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ## Not run:
##### create files cmds.txt and emaxmodel.txt from the note section
doselev<-c(0,5,25,50,100)
n<-c(78,81,81,81,77)
dose<-rep(doselev,n)
### population parameters for simulation
e0<-2.465375
ed50<-67.481113
emax<-15.127726
sdy<-7.967897
pop.parm<-c(ed50,e0,emax)
meanresp<-e0+ emax*dose/(dose+ed50)
N<-sum(n)
inits <- list(list(e0 =0, emax=10, ed50=25, tau = .5, p=1.5),
list(e0 =5, emax=20, ed50=10, tau = .1, p=2),
list(e0 =5, emax=5, ed50=50, tau = 1, p=1))
set.seed(12357)
y<-rnorm(N,meanresp,sdy)
##### successful run
outb <- batchBUGS('emaxmodel.txt', data=list(N=N,y=y,dose=dose),
inits=inits, 'cmds.txt',
numChains=3, digits=5,
delWorkFolders=FALSE, seed=2,
stripComments=FALSE)
outb[[1]]
summary(outb[[2]])
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.