jags.fit {dclone} | R Documentation |
Convenient functions designed to work well with cloned data arguments.
jags.fit(data, params, model, inits = NULL, n.chains = 3, n.adapt = 1000, n.update = 0, thin = 1, n.iter = 5000, ...) bugs.fit(data, params, model, inits = NULL, format = c("mcmc.list", "bugs"), program = c("winbugs", "openbugs"), DIC = FALSE, dir = getwd(), ...) ## S3 method for class 'bugs': as.mcmc.list(x, ...)
data |
A list containing the data. |
params |
Character vector of parameters to be samples. |
model |
Character string (name of the model file) or a function containing the model (see Examples). |
inits |
Optional specification of initial values in the form of a list or a function (see Initialization at jags.model ).
If NULL , initial values will be generated automatically. It is an error to supply an initial value for an observed node.
|
n.chains |
Number of chains to generate. |
n.adapt |
Number of steps for adaptation. |
n.update |
Number of updates before iterations. |
thin |
Thinning value. |
n.iter |
Number of iterations. |
format |
Required output format. (Note that default behaviour of n.thin can cause problems when program = "openbugs"
and format = "mcmc.list" , thus n.thin = 1 is advised.)
|
program |
The program to use, not case sensitive.
winbugs calls the function bugs ,
openbugs calls the function openbugs and requires the CRAN package BRugs.
model can be a function for program = "openbugs" , too.
|
DIC |
Logical, if deviance information criterion should be computed. (Needed for efficiency reasons, since it is
opposite to the bugs /openbugs defaults, but if format = "mcmc.list" deviance is
silently ignored.)
|
dir |
Identical to working.directory argument in the bugs /openbugs call for setting working directory.
(Needed for stability, because openbugs cant't always handle its default NULL value (a bug?).)
|
x |
A fitted 'bugs' object. |
... |
Further arguments passed to coda.samples , and update.jags
(e.g. the progress.bar argument) for jags.fit . For bugs.fit , other arguments
except for codaPkg are passed also, most notably the ones to set up burn-in, thin, etc. (see Details).
|
By default, an mcmc.list
object. If data cloning is used via the
data
argument, summary
returns a modified summary
containing scaled data cloning standard errors (scaled by sqrt(n.clones)
),
and R_{hat} values (as returned by gelman.diag
).
bugs.fit
can return a bugs
object if format = "bugs"
.
In this case, printing is not changed, but the number of clones used is attached as attribute
and can be retrieved by the function nclones
.
The function as.mcmc.list.bugs
converts a 'bugs' object into 'mcmc.list'.
Default behaviour of n.thin
can cause problems in conversion when program = "openbugs"
and format = "mcmc.list"
, thus n.thin = 1
is advised in such cases.
P\'eter S\'olymos, solymos@ualberta.ca
dcsd
, confint.mcmc.list.dc
,
coef.mcmc.list
, quantile.mcmc.list
, vcov.mcmc.list.dc
## Not run: ## simple regression example from the JAGS manual jfun <- function() { for (i in 1:N) { Y[i] ~ dnorm(mu[i], tau) mu[i] <- alpha + beta * (x[i] - x.bar) } x.bar <- mean(x[]) alpha ~ dnorm(0.0, 1.0E-4) beta ~ dnorm(0.0, 1.0E-4) sigma <- 1.0/sqrt(tau) tau ~ dgamma(1.0E-3, 1.0E-3) } ## data generation set.seed(1234) N <- 100 alpha <- 1 beta <- -1 sigma <- 0.5 x <- runif(N) linpred <- model.matrix(~x) %*% c(alpha, beta) Y <- rnorm(N, mean = linpred, sd = sigma) ## list of data for the model jdata <- list(N = N, Y = Y, x = x) ## what to monitor jpara <- c("alpha", "beta", "sigma") #### fit the model with JAGS regmod <- jags.fit(jdata, jpara, jfun, n.chains = 3) ## model summary summary(regmod) ## data cloning dcdata <- dclone(jdata, 5, multiply = "N") dcmod <- jags.fit(dcdata, jpara, jfun, n.chains = 3) summary(dcmod) #### fitting with WinBUGS, bugs example data(schools) dat <- list(J = nrow(schools), y = schools$estimate, sigma.y = schools$sd) bugs.model <- function(){ for (j in 1:J){ y[j] ~ dnorm (theta[j], tau.y[j]) theta[j] ~ dnorm (mu.theta, tau.theta) tau.y[j] <- pow(sigma.y[j], -2) } mu.theta ~ dnorm (0.0, 1.0E-6) tau.theta <- pow(sigma.theta, -2) sigma.theta ~ dunif (0, 1000) } inits <- function(){ list(theta=rnorm(nrow(schools), 0, 100), mu.theta=rnorm(1, 0, 100), sigma.theta=runif(1, 0, 100)) } param <- c("mu.theta", "sigma.theta") sim <- bugs.fit(dat, param, bugs.model, inits) dat2 <- dclone(dat, 2, multiply="J") sim2 <- bugs.fit(dat2, param, bugs.model) #### fitting the model with OpenBUGS sim3 <- bugs.fit(dat2, param, bugs.model, program="openbugs", n.thin=1) #### fitting the model with JAGS sim4 <- jags.fit(dat2, param, bugs.model) ## End(Not run)