# momentify R package

September 19, 2014
By

(This article was first published on Statisfaction » R, and kindly contributed to R-bloggers)

I presented today an arxived paper of my postdoc at the big success Young Bayesian Conference in Vienna. The big picture of the talk is simple: there are situations in Bayesian nonparametrics where you don’t know how to sample from the posterior distribution, but you can only compute posterior expectations (so-called marginal methods). So e.g. you cannot provide credible intervals. But sometimes all the moments of the posterior distribution are available as posterior expectations. So morally, you should be able to say more about the posterior distribution than just reporting the posterior mean. To be more specific, we consider a hazard (h) mixture model

$\displaystyle h(t)=\int k(t;y)\mu(dy)$

where $k$ is a kernel, and the mixing distribution $\mu$ is random and discrete (Bayesian nonparametric approach).

We consider the survival function $S$ which is recovered from the hazard rate $h$ by the transform

$\displaystyle S(t)=\exp\Big(-\int_0^t h(s)ds\Big)$

and some possibly censored survival data having survival $S$. Then it turns out that all the posterior moments of the survival curve $S(t)$ evaluated at any time $t$ can be computed.

The nice trick of the paper is to use the representation of a distribution in a [Jacobi polynomial] basis where the coefficients are linear combinations of the moments. So one can sample from [an approximation of] the posterior, and with a posterior sample we can do everything! Including credible intervals.

I’ve wrapped up the few lines of code in an R package called momentify (not on CRAN). With a sequence of moments of a random variable supported on [0,1] as an input, the package does two things:

• evaluates the approximate density
• samples from it

A package example for a mixture of beta and 2 to 7 moments gives that result:

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...