Rtwalk is an R implementation of the t-walk, a general-purpose Markov Chain Monte Carlo (MCMC) sampler for continuous distributions, ideal for Bayesian inference problems.
This package provides an implementation of the t-walk algorithm, as originally proposed by Christen & Fox (2010). The t-walk is a robust, self-adjusting MCMC sampler, which means it does not require the tedious manual tuning of proposal parameters. It is designed to efficiently explore a wide range of target distributions, maintaining good performance even in high-dimensional or multimodal problems.
The stable version of Rtwalk is available on CRAN and can be installed with:
install.packages("Rtwalk")
Here is a simple example of how to use Rtwalk to sample from a bimodal distribution.
library(Rtwalk)
# Define the log-posterior density of the target distribution
# In this case, a mixture of two normal distributions
log_posterior_bimodal <- function(x) {
log(0.5 * dnorm(x, mean = -3, sd = 0.5) + 0.5 * dnorm(x, mean = 3, sd = 0.5))
}
initial_point_1 <- -3
initial_point_2 <- 3
result <- twalk(
log_posterior = log_posterior_bimodal,
n_iter = 50000,
x0 = initial_point_1,
xp0 = initial_point_2
)
burnin <- nrow(result$all_samples) * 0.2
samples <- result$all_samples[-(1:burnin), ]
par(mfrow = c(1, 2))
hist(samples, breaks = 50, freq = FALSE,
main = "Posterior Distribution", xlab = "Parameter Value")
lines(density(samples), col = "blue", lwd = 2)
plot(samples, type = 'l', col = "grey30",
main = "Trace Plot", xlab = "Iteration")
This package is an implementation of the algorithm described in the following paper. If you use Rtwalk in your research, please cite the original work:
Christen, J. A., & Fox, C. (2010). A general purpose sampling algorithm for continuous distributions (the t-walk). Bayesian Analysis, 5(2), 263-282. doi:10.1214/10-BA603
This package is licensed under the GPL-3. See the LICENSE file for more details.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.