In statistics and computer software, a convolution random number generator is a pseudo-random number sampling method that can be used to generate random variates from certain classes of probability distribution. The particular advantage of this type of approach is that it allows advantage to be taken of existing software for generating random variates from other, usually non-uniform, distributions. However, faster algorithms may be obtainable for the same distributions by other more complicated approaches.
A number of distributions can be expressed in terms of the (possibly weighted) sum of two or more random variables from other distributions. (The distribution of the sum is the convolution of the distributions of the individual random variables).
Consider the problem of generating a random variable with an Erlang distribution,
X \sim\operatorname{Erlang}(k,\theta)
\operatorname{Exp}(k\theta)
Notice that:
\operatorname{E}[X]=
1 | |
k\theta |
+
1 | |
k\theta |
+ … +
1 | |
k\theta |
=
1 | |
\theta |
.
One can now generate
\operatorname{Erlang}(k,\theta)
if
Xi \sim\operatorname{Exp}(k\theta)
k | |
X=\sum | |
i=1 |
Xi\sim\operatorname{Erlang}(k,\theta).