Inverse Gaussian Distribution - Generating Random Variates From An Inverse-Gaussian Distribution

Generating Random Variates From An Inverse-Gaussian Distribution

The following algorithm may be used.

Generate a random variate from a normal distribution with a mean of 0 and 1 standard deviation


\displaystyle \nu = N(0,1).

Square the value


\displaystyle y = \nu^2

and use this relation


x = \mu + \frac{\mu^2 y}{2\lambda} - \frac{\mu}{2\lambda}\sqrt{4\mu \lambda y + \mu^2 y^2}.

Generate another random variate, this time sampled from a uniformed distribution between 0 and 1


\displaystyle z = U(0,1).

If


z \le \frac{\mu}{\mu+x}

then return


\displaystyle
x

else return


\frac{\mu^2}{x}.

Sample code in Java:

public double inverseGaussian(double mu, double lambda) { Random rand = new Random; double v = rand.nextGaussian; // sample from a normal distribution with a mean of 0 and 1 standard deviation double y = v*v; double x = mu + (mu*mu*y)/(2*lambda) - (mu/(2*lambda)) * Math.sqrt(4*mu*lambda*y + mu*mu*y*y); double test = rand.nextDouble; // sample from a uniform distribution between 0 and 1 if (test <= (mu)/(mu + x)) return x; else return (mu*mu)/x; }

Read more about this topic:  Inverse Gaussian Distribution

Famous quotes containing the words random and/or distribution:

    poor Felix Randal;
    How far from then forethought of, all thy more boisterous years,
    When thou at the random grim forge, powerful amidst peers,
    Didst fettle for the great gray drayhorse his bright and battering
    sandal!
    Gerard Manley Hopkins (1844–1889)

    There is the illusion of time, which is very deep; who has disposed of it? Mor come to the conviction that what seems the succession of thought is only the distribution of wholes into causal series.
    Ralph Waldo Emerson (1803–1882)