# Simplex Random Walk Mean

Hi I have two questions related to a previous question I asked here:

Simplex Random Walk

In this link it describes how to perform a random walk on the simplex.

http://en.wikipedia.org/wiki/User:Skinnerd/Simplex_Point_Picking

It says that "This procedure effectively samples $x_{new}$ from a gamma random variable with mean of $x_{old}$ and standard deviation of $h*x_{old}$."

My first question is why would the mean be $x_{old}$?

As per the answer to my previous question the proposal distribution is a log-normal with parameters $(\ln(x_{old}),h)$. Wiki says the mean of a log-normal distribution is $e^{\mu + \frac{\sigma^2}{2}}$, which would evaluate to $e^{\ln(x_{old}) + \frac{h^2}{2}} = x_{old}e^{\frac{h^2}{2}}$. Am I missing something?

My second question is: What other ways are there to perform a random walk on a simplex? Is there a "standard" method? I've tried searching but am curious if I've missed something.

Thanks for any help.

• You may draw from a Dirichlet distribution centered at the previous point. en.wikipedia.org/wiki/Dirichlet_distribution – Zen Jun 17 '14 at 15:29
• Thanks Zen, so given my current categorical distribution is $(p_1, p_2, \dots, p_k)$ I could set the concentration parameter to $(\alpha_1, \alpha_2, \dots, \alpha_k)$ where $\alpha_i = h*p_1$ and $h$ is my stepsize, and sample the new point from a Dirichlet with that concentration parameter. – Richy Jun 18 '14 at 10:37
• After trying this, it doesn't work as well as I imagined. I want the Dirichlet to be centered on my current categorical i.e. $p_i = \alpha_i / \sum_{j=1}^k \alpha_j$ so $\alpha_i = p_i*\sum_{j=1}^k \alpha_j$. But if $p_i = 0$ then $\alpha_i = 0$, yet there is the restriction that $\alpha_i > 0$. So I tried $\alpha_i + h$ where $h > 0$ is a stepsize (or inverse stepsize since bigger $h$ makes a more peaked distribution). The problem is that large $h$ (small steps) never seems to explore the boundary and small $h$ gives steps that are too large. Is there a way around this? – Richy Jun 19 '14 at 8:46

You are currently at $(x_1,\dots,x_k)$, with $x_i>0$ and $\sum_{i=1}^k x_i=1$. If one ore more of the $x_i$'s is exactly zero, add a small "jitter" $\epsilon>0$ to them and renormalize $(x_1,\dots,x_k)$. Now you pick some $a_0>0$ and draw $(Y_1,\dots,Y_k)\sim\mathrm{Dir}(a_0x_1,\dots,a_0x_k)$. It follows that $\mathrm{E}[Y_i]=a_0x_i/\sum_{j=1}^k a_0x_j=x_i$. For small steps choose large $a_0$'s, and vice-versa.