MCMC.parallel {adaptMCMC} | R Documentation |

## Parallel computation of MCMC()

### Description

A wrapper function to generate several independent Markov chains by stetting up cluster on a multi-core machine. The function is based on the parallel package.

### Usage

```
MCMC.parallel(p, n, init, n.chain = 4, n.cpu, packages = NULL, dyn.libs=NULL,
scale = rep(1, length(init)), adapt = !is.null(acc.rate),
acc.rate = NULL, gamma = 2/3, list = TRUE, ...)
```

### Arguments

`p` |
function that returns a value proportional to the log probability
density to sample from. Alternatively the function can return a list
with at least one element named |

`n` |
number of samples. |

`init` |
vector with initial values. |

`n.chain` |
number of independent chains. |

`n.cpu` |
number of CPUs that should be used in parallel. |

`packages` |
vector with name of packages to load into each instance. (Typically,
all packages on which |

`dyn.libs` |
vector with name of dynamic link libraries (shared objects) to load into each instance. The libraries must be located in the working directory. |

`scale` |
vector with the variances |

`adapt` |
if |

`acc.rate` |
desired acceptance rate (ignored if |

`gamma` |
controls the speed of adaption. Should be between 0.5 and 1. A lower gamma leads to faster adaption. |

`list` |
logical. If |

`...` |
further arguments passed to |

### Details

This function is just a wrapper to use `MCMC`

in parallel. It is
based on parallel. Obviously, the application of this function
makes only sense on a multi-core machine.

### Value

A list with a list or matrix for each chain. See `MCMC`

for details.

### Author(s)

Andreas Scheidegger, andreas.scheidegger@eawag.ch or scheidegger.a@gmail.com

### See Also

### Examples

```
## ----------------------
## Banana shaped distribution
## log-pdf to sample from
p.log <- function(x) {
B <- 0.03 # controls 'bananacity'
-x[1]^2/200 - 1/2*(x[2]+B*x[1]^2-100*B)^2
}
## ----------------------
## generate samples
## compute 4 independent chains on 2 CPU's (if available) in parallel
samp <- MCMC.parallel(p.log, n=200, init=c(x1=0, x2=1),
n.chain=4, n.cpu=2, scale=c(1, 0.1),
adapt=TRUE, acc.rate=0.234)
str(samp)
```

*adaptMCMC*version 1.5 Index]