Normally sampling from the standard simplex

I want to be able to generate values from an $n$-dimensional multivariate Gaussian distribution truncated to $[0, 1]$ range with given means and a covariance matrix, such that they sum to one.

I think this is the same as sampling from the standard $n$-simplex according to the Gaussian distribution, but how would I go about doing this?

• Thanks for your quick response, I was trying to use this to randomly generate weightings according to a normal. So another constraint would be all values between 0 and 1, so this would make it a truncated distribuion. I was also hoping to be able to further refine these later eg. X1 between .2 and .3 but I was trying to get the main idea down first. – sam10269 Aug 15 '17 at 7:55
• I'm trying to simulate different assets of an investment portfolio. I'm assuming normality for each asset, so I want the whole multivariate distribution to be normal and the weighting to each asset to sum up to 1. Stats was never my strong point so apologies if this is the wrong way to go about it. – sam10269 Aug 15 '17 at 8:43
• I edited your question to add the information that you are talking about truncated normal distribution. PS check here to learn more about Dirichlet distribution as it is usually a "distribution of choice" for such problems. – Tim Aug 15 '17 at 11:34
• sampling from the standard n-simplex according to the Gaussian distribution is a contradiction of terms since the Gaussian distribution is defined on the whole $\mathbb{R}^p$ space. – Xi'an Aug 25 '17 at 5:09
• To make the question precise, can you please write down the density you want to simulate on the standard $n$-simplex? – Xi'an Aug 28 '17 at 7:39

These papers describe how to sample from a multivariate normal truncated on a (p - 1) simplex ([http://ieeexplore.ieee.org/abstract/document/6884588/], [dobigeon.perso.enseeiht.fr/papers/Dobigeon_TechReport_2007b.pdf]). Sampling is done via Gibbs sampling or HMC. In short, it uses ideas from the (conditional) multivariate Normal distribution. Assume that you want to sample a vector $\alpha_{(p\times 1)}$ which is contrained to a Multivariate Normal truncated on a $p-1$ simplex, i.e., $\alpha\sim N(\mu,\Sigma)I(\alpha\in\mathbb{S}^{p-1})$. You can sample the $j^{th}$ component ($\alpha_j$) conditional on $\alpha_{-j}$ (i.e., the remaining components of $\alpha$), and set the last component ($p^{th}$) to $1 - \sum_{j=1}^{p-1}\alpha_j$ with conditional mean $\mu_{j|-j}$ and conditional variance $\Sigma_{j|-j}$. The papers I mentioned describe how to calculate these. Note that there's only $p - 1$ pieces of information.
$$Y=log\left(\frac{X}{1-X}\right)$$
where $X$ is logit-normal and $Y$ is normal. Multivariate extensions exist and are the more commonly used forms of the density.