Lévy distribution

From Wikipedia, the free encyclopedia

Lévy (unshifted)
Probability density function
Levy distribution PDF
Cumulative distribution function
Levy distribution CDF
Parameters c > 0\,
Support x \in [0, \infty)
Probability density function (pdf) \sqrt{\frac{c}{2\pi}}~
\frac{e^{-c/2x}}{x^{3/2}}
Cumulative distribution function (cdf) \textrm{erfc}\left(\sqrt{c/2x}\right)
Mean infinite
Median c/2(\textrm{erf}^{-1}(1/2))^2\,
Mode \frac{c}{3}
Variance infinite
Skewness undefined
Excess kurtosis undefined
Entropy \frac{1+3\gamma+\ln(16\pi c^2)}{2}
Moment-generating function (mgf) undefined
Characteristic function e^{-\sqrt{-2ict}}

In probability theory and statistics, the Lévy distribution, named after Paul Pierre Lévy, is one of the few distributions that are stable and that have probability density functions that are analytically expressible. The others are the normal distribution and the Cauchy distribution. All three are special cases of the Lévy skew alpha-stable distribution, which does not generally have an analytically expressible probability density. In spectroscopy this distribution, with frequency as the dependent variable, is known as a Van der Waals profile.

The probability density function of the Lévy distribution over the domain x\ge 0 is

 
f(x;c)=\sqrt{\frac{c}{2\pi}}~~\frac{e^{-c/2x}}{x^{3/2}}

where c is the scale parameter. The cumulative distribution function is

F(x;c)=\textrm{erfc}\left(\sqrt{c/2x}\right)

where erfc(z) is the complementary error function. A shift parameter μ may be included by replacing each occurrence of x in the above equations with x − μ. This will simply have the effect of shifting the curve to the right by an amount μ, and changing the support to the interval [μ, \infty). The characteristic function of the Lévy distribution (including a shift μ) is given by

\varphi(t;c)=e^{i\mu t-\sqrt{-2ict}}.

Note that the characteristic function can also be written in the same form used for the Lévy skew alpha-stable distribution with α = 1 / 2 and β = 1:

\varphi(t;c)=e^{i\mu t-|ct|^{1/2}~(1-i~\textrm{sign}(t))}.

The nth moment of the unshifted Lévy distribution is formally defined by:

m_n\ \stackrel{\mathrm{def}}{=}\ \sqrt{\frac{c}{2\pi}}\int_0^\infty \frac{e^{-c/2x}\,x^n}{x^{3/2}}\,dx

which diverges for all n > 0 so that the moments of the Lévy distribution do not exist. The moment generating function is formally defined by:

M(t;c)\ \stackrel{\mathrm{def}}{=}\  \sqrt{\frac{c}{2\pi}}\int_0^\infty \frac{e^{-c/2x+tx}}{x^{3/2}}\,dx

which diverges for t > 0 and is therefore not defined in an interval around zero, so that the moment generating function is not defined per se. In the wings of the distribution, the PDF exhibits heavy tail behavior falling off as:

\lim_{x\rightarrow \infty}f(x;c) =\sqrt{\frac{c}{2\pi}}~\frac{1}{x^{3/2}}.

This is illustrated in the diagram below, in which the PDF's for various values of c are plotted on a log-log scale.

Probability density function for the Lévy distribution
Probability density function for the Lévy distribution


Contents

[edit] Computational Expression of Levy

Levy is of growing interest to the financial modelling community, due to its emperical similarity to the returns of securities. Unlike the gaussian case (alpha =2), lower alpha values show distributions with high kurtosis (fat tails and sharp peaks).

A good paper on the subject of computational simulation is:

Fast, accurate algorithm for numerical simulation of Levy stable stochastic processes. Physical review E, vol 49 #5 pp 4677-4683 [1]. May 1994. Mantegna, RN.

The paper gives an algorithm for alpha = 0.3 to 1.99.

A C# implementation looks like:

public class LevyDistribution
    {
        RandomNumberGen rng = new RandomNumberGen();    //uniform in the space [0,1]
        public double levySkewDistribution(double c, double alpha, double beta)
        {
            if (alpha <= 0 || alpha > 2)
            {
                throw new ApplicationException("alpha is outside allowed boundaries");
            }
            if (beta <= -1 || beta >= 1)
            {
                throw new ApplicationException("beta is outside allowed boundaries");
            }
            if (c <= 0)
            {
                throw new ApplicationException("scale, c, is outside allowed boundaries");
            }
            double V, W, X;
            if (beta == 0)                              /* symmetric case */
            {
                return levyDistribution(c, alpha);
            }
            V = System.Math.PI * (rng.ran2() - 0.5);
            do
            {
                W = -1.0 * System.Math.Log(rng.ran2()); 
            }
            while (W == 0);
            if (alpha == 1)
            {
                X = ((0.5 * System.Math.PI + beta * V) * System.Math.Tan(V) - beta * System.Math.Log(0.5 * System.Math.PI * W * System.Math.Cos(V) / (0.5 * System.Math.PI + beta * V))) / 0.5 * System.Math.PI;
                return c * (X + beta * 0.5 * System.Math.Log(c) / (0.5 * System.Math.PI));
            }
            else
            {
                double t = beta * System.Math.Tan(0.5*System.Math.PI * alpha);
                double B = System.Math.Atan(t) / alpha;
                double S = System.Math.Pow(1 + t * t, 1 / (2 * alpha));
                X = S * System.Math.Sin(alpha * (V + B)) / System.Math.Pow(System.Math.Cos(V), 1 / alpha) * System.Math.Pow(System.Math.Cos(V - alpha * (V + B)) / W, (1 - alpha) / alpha);
                return c * X;
            }
        }
        private double levyDistribution(double c, double alpha)
        {
            double u, v, t, s;
            u = System.Math.PI * (rng.ran2() - 0.5);       //subtract 0.5 so its symmetrical around 0
            if (alpha == 1)               /* cauchy case */
            {
                t = System.Math.Tan(u);
                return c * t;
            }
            do
            {
                v = -1.0 * System.Math.Log(rng.ran2());       //select a random exponential of form: p(x) dx = exp(-x/mu) dx/mu
            }
            while (v == 0);
            if (alpha == 2)             /* gaussian case */
            {
                t = 2 * System.Math.Sin(u) * System.Math.Sqrt(v);
                return c * t;
            }
            /* general case */
            t = System.Math.Sin(alpha * u) / System.Math.Pow(System.Math.Cos(u), 1 / alpha);
            s = System.Math.Pow(System.Math.Cos((1 - alpha) * u) / v, (1 - alpha) / alpha);
            return c * t * s;
        }

[edit] Related distributions

[edit] Relevance

[edit] References and external links

  1. ^ The Lévy distribution as maximizing one's chances of finding a tasty snack. Retrieved on April 7, 2007.
Languages