Blog Archives

Generate Random Inverse Gaussian in R

September 20, 2014
By
Generate Random Inverse Gaussian in R

Needed to generate draws from an inverse Gaussian today, so I wrote the following Rcpp code: It seems to be faster than existing implementations such as rig from mgcv and rinvgauss from statmod packages. rename rrinvgauss as desired. The post Generate Random Inverse Gaussian in R appeared first on Lindons Log.

Read more »

Generalized Double Pareto Priors for Regression

September 10, 2014
By
Generalized Double Pareto Priors for Regression

This post is a review of the “GENERALIZED DOUBLE PARETO SHRINKAGE” Statistica Sinica (2012) paper by Armagan, Dunson and Lee. Consider the regression model (Y=Xbeta+varepsilon) where we put a generalized double pareto distribution as the prior on the regression coefficients (beta). The GDP distribution has density $$begin{equation} f(beta|xi,alpha)=frac{1}{2xi}left( 1+frac{|beta|}{alphaxi} right)^{-(alpha+1)}. label{} end{equation}$$ GDP as Scale The post

Read more »

EM Algorithm for Bayesian Lasso R Cpp Code

September 5, 2014
By
EM Algorithm for Bayesian Lasso R Cpp Code

Bayesian Lasso $$begin{align*} p(Y_{o}|beta,phi)&=N(Y_{o}|1alpha+X_{o}beta,phi^{-1} I_{n{o}})\ pi(beta_{i}|phi,tau_{i}^{2})&=N(beta_{i}|0, phi^{-1}tau_{i}^{2})\ pi(tau_{i}^{2})&=Exp left( frac{lambda}{2} right)\ pi(phi)&propto phi^{-1}\ pi(alpha)&propto 1\ end{align*}$$ Marginalizing over (alpha) equates to centering the observations and losing a degree of freedom and working with the centered ( Y_{o} ). Mixing over (tau_{i}^{2}) leads to a Laplace or Double Exponential prior on (beta_{i}) with rate parameter (sqrt{philambda}) The post

Read more »

Compile R and OpenBLAS from Source Guide

July 16, 2014
By
Compile R and OpenBLAS from Source Guide

This guide is intended to aid any R and Linux user who desires a threaded version of BLAS. In particular I hope this will allow other grad students, who like me do not have many user privileges on their office computer, to follow suit and exploit multiple cores to speed up their linear algebra computations The post

Read more »

C++11 versus R Standalone Random Number Generation Performance Comparison

March 1, 2014
By

If you are writing some C++ code with the intent of calling it from R or even developing it into a package you might wonder whether it is better to use the pseudo random number library native to C++11 or the R standalone library. On the one hand users of your package might have an The post

Read more »

Stochastic Optimization in R by Parallel Tempering

October 12, 2013
By
Stochastic Optimization in R by Parallel Tempering

I’ve written a few posts now about using parallel tempering to sample from complicated multi-modal target distributions but there are also other benefits and uses to this algorithm. There is a nice post on Darren Wilkinson’s blog about using tempered posteriors for marginal likelihood calculations. There is also another area where parallel tempering finds application, The post Stochastic...

Read more »

Parallel Tempering in R with Rmpi

October 6, 2013
By
Parallel Tempering in R with Rmpi

My office computer recently got a really nice upgrade and now I have 8 cores on my desktop to play with. I also at the same time received some code for a Gibbs sampler written in R from my adviser. I wanted to try a metropolis-coupled markov chain monte carlo, , algorithm on it to The post Parallel...

Read more »

Easy 3-Minute Guide to Making apply() Parallel over Distributed Grids and Clusters in R

September 1, 2013
By
Easy 3-Minute Guide to Making apply() Parallel over Distributed Grids and Clusters in R

Last week I attended a workshop on how to run highly parallel distributed jobs on the Open Science Grid (osg). There I met Derek Weitzel who has made an excellent contribution to advancing R as a high performance computing language by developing BoscoR. BoscoR greatly facilitates the use of the already existing package “GridR” by The post Easy...

Read more »

Model Scale Parameterization for MCMC Efficiency

August 1, 2013
By
Model Scale Parameterization for MCMC Efficiency

I recently came across a very interesting paper by Y. Yu and X. Meng who present an interweaving strategy between different model parameterizations to improve mixing. It is well known that different model parameterizations can perform better than others under certain conditions. Papaspiliopoulos, Roberts and Sköld present a general framework for how to parameterize The post Model...

Read more »

Parallel Random Number Generation using TRNG

July 10, 2013
By
Parallel Random Number Generation using TRNG

To my surprise and disappointment, popular scientific libraries like Boost or GSL provide no native support for parallel random number generation. Recently I came across TRNG, an excellent random number generation library for C++ built specifically with parallel architectures in mind. Over the last few days I’ve been trawling internet forums and reading discussions about The post Parallel...

Read more »