Stable Distributions

Module 3: Modelling with Randomness

The Gaussian is the limit of sums with finite variance. Sums of variables with power-law tails and infinite variance also converge, but to a different family: the Lévy stable laws (Gnedenko and Kolmogorov 1954; Mantegna and Stanley 2000, chap. 4).

Definition

A random variable \(X\) is stable if a sum of independent copies has the same shape as \(X\) itself: for every \(n\) there are constants \(a_n > 0\) and \(b_n\) with

\[ X_1 + \dots + X_n \overset{d}{=} a_n X + b_n . \]

The scale factor is always \(a_n = n^{1/\alpha}\) for some index \(0 < \alpha \le 2\) (Gnedenko and Kolmogorov 1954). A stable law has no closed-form density in general. It is defined through its characteristic function. For the symmetric case centred at zero,

\[ \mathbb{E}\left[e^{ikX}\right] = \exp\left(-|c k|^{\alpha}\right), \tag{1}\]

with scale \(c > 0\). The general family adds a skewness parameter \(\beta \in [-1, 1]\) and a location (Mantegna and Stanley 2000, chap. 4).

Key properties

  • \(\alpha = 2\) gives the Gaussian with variance \(2c^2\). \(\alpha = 1\) gives the Cauchy law, with density \(c / [\pi (c^2 + x^2)]\).
  • For \(\alpha < 2\) the tails are power laws, \(\Pr(|X| > x) \sim C x^{-\alpha}\) as \(x \to \infty\). The variance is infinite. For \(\alpha \le 1\) the mean does not exist either (Mantegna and Stanley 2000, chap. 4).
  • Generalized central limit theorem. If i.i.d. variables have tails \(\Pr(|X| > x) \sim C x^{-\alpha}\) with \(0 < \alpha < 2\), their suitably centred sums divided by \(n^{1/\alpha}\) converge to a stable law with the same \(\alpha\). If the variance is finite, the limit is Gaussian (Gnedenko and Kolmogorov 1954).
  • In the power-law notation of Power Laws, where the density decays as \(x^{-\alpha_{\text{pdf}}}\), the stable index is \(\alpha = \alpha_{\text{pdf}} - 1\). Only \(\alpha_{\text{pdf}} < 3\) leads to a non-Gaussian limit.

You can sample symmetric stable variables with the method of Chambers, Mallows, and Stuck (1976), implemented in amlab.random_walks.sample_symmetric_stable and in scipy.stats.levy_stable (Virtanen et al. 2020).

Cauchy against normal sample means

For Gaussian data the sample mean of \(n\) values has width \(\propto n^{-1/2}\). For Cauchy data, \(\alpha = 1\) and \(a_n = n\), so the sample mean \(S_n / n\) has exactly the same Cauchy law as a single observation. Averaging does not help.

Figure 1: Running sample mean of 10000 draws for five independent sequences. Left: standard normal. Right: standard Cauchy (\(\alpha = 1\)). The normal means settle at 0; the Cauchy means keep jumping whenever a very large value arrives.
Exercise

Check the scaling \(a_n = n^{1/\alpha}\) for \(\alpha = 1.5\). Draw 10000 sums of \(n\) symmetric stable variables for \(n = 1, 10, 100, 1000\), and compute the interquartile range (IQR) of each set of sums. Fit the slope of \(\log \text{IQR}\) against \(\log n\). Why do you use the IQR and not the standard deviation?

rng = np.random.default_rng(4)
ns = np.array([1, 10, 100, 1000])
iqr = []
for m in ns:
    s = sample_symmetric_stable(1.5, (10000, m), rng=rng).sum(axis=1)
    q75, q25 = np.percentile(s, [75, 25])
    iqr.append(q75 - q25)
slope = np.polyfit(np.log(ns), np.log(iqr), 1)[0]
print(f"slope {slope:.3f}, theory 1/alpha = {1 / 1.5:.3f}")
slope 0.670, theory 1/alpha = 0.667

The standard deviation is infinite for \(\alpha < 2\), so its sample value is dominated by the largest draw and does not converge. Quantiles exist for every stable law.

References

Chambers, John M., Colin L. Mallows, and Bart W. Stuck. 1976. “A Method for Simulating Stable Random Variables.” Journal of the American Statistical Association 71 (354): 340–44. https://doi.org/10.1080/01621459.1976.10480344.
Gnedenko, Boris V., and Andrey N. Kolmogorov. 1954. Limit Distributions for Sums of Independent Random Variables. Cambridge, MA: Addison-Wesley.
Mantegna, Rosario N., and H. Eugene Stanley. 2000. An Introduction to Econophysics: Correlations and Complexity in Finance. Cambridge: Cambridge University Press.
Virtanen, Pauli, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, et al. 2020. “SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python.” Nature Methods 17 (3): 261–72. https://doi.org/10.1038/s41592-019-0686-2.