中心極限定理は、「独立同分布な確率変数の和を適切に正規化すると正規分布に収束する」という統計学の根幹をなす定理です。しかし、この定理には暗黙の前提があります——もとの確率変数の分散が有限であること、です。
では、分散が無限大の確率変数(たとえばパレート分布でテール指数 $\alpha < 2$ の場合)の和はどうなるのでしょうか。正規分布にはなりません。しかし、ある分布に収束することは確かです。その収束先が安定分布(stable distribution)なのです。
安定分布は、中心極限定理が教えてくれる「和の分布の極限」という概念を、分散が有限とは限らない最も一般的な状況に拡張したものです。正規分布とコーシー分布はこの安定分布族の特殊ケースに過ぎません。
安定分布を理解すると、以下のような応用が開けます。
- 金融工学: 株価リターンの裾の重さ(正規分布では説明できない暴落を含む)
- 物理学: レヴィ飛行(Levy flight)、異常拡散の理論
- 信号処理: インパルス性ノイズのモデリング
- 通信工学: ネットワークトラフィックの自己相似性
本記事では、安定分布が中心極限定理の一般化としてどのように位置づけられるかを直感的に理解し、特性関数による定義を導入します。さらに、4つのパラメータの役割を明確にし、Pythonによる数値計算と可視化を示します。
本記事の内容
- 安定分布の動機と直感的理解(一般化中心極限定理)
- 特性関数による数学的定義
- 4つのパラメータ($\alpha, \beta, \gamma, \delta$)の役割
- 正規分布・コーシー分布・レヴィ分布との関係
- Pythonによる安定分布の可視化とシミュレーション
- 和の安定性の数値的検証
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
安定分布とは — 動機と直感
中心極限定理の限界
中心極限定理を復習しましょう。$X_1, X_2, \dots, X_n$ が独立同分布で $E[X_i] = \mu$, $\text{Var}(X_i) = \sigma^2 < \infty$ のとき、
$$ \frac{\sum_{i=1}^n X_i – n\mu}{\sigma\sqrt{n}} \xrightarrow{d} N(0, 1) $$
ここで重要なのは $\sigma^2 < \infty$ という条件です。パレート分布でテール指数 $\alpha < 2$ の場合、分散は無限大であり、中心極限定理は適用できません。
では、分散が無限大の確率変数の和を適切に正規化すると何に収束するのでしょうか。
一般化中心極限定理
一般化中心極限定理(generalized CLT)は、次のことを主張します。
$X_1, X_2, \dots$ が独立同分布であるとき、適切な正規化定数 $a_n, b_n$ が存在して
$$ \frac{\sum_{i=1}^n X_i – b_n}{a_n} \xrightarrow{d} S $$
が成り立つならば、極限分布 $S$ は必ず安定分布です。
つまり、安定分布は「和の分布の唯一可能な極限」なのです。正規分布は安定分布の一つの特殊ケースに過ぎず、もとの分布の裾の重さに応じて、さまざまな安定分布が極限として現れます。
安定性の直感的意味
「安定」(stable)という名前の由来は、同じ形の分布の和が再び同じ形の分布になるという性質です。
$X_1$ と $X_2$ が同じ安定分布に従う独立な確率変数であるとき、適切な定数 $a, b$ が存在して
$$ X_1 + X_2 \overset{d}{=} aX_1 + b $$
が成り立ちます。ここで $\overset{d}{=}$ は分布が等しいことを意味します。
正規分布がこの性質を持つことは知っています(正規分布の和は正規分布です)。安定分布は、この「和に対して閉じている」性質を持つ分布の全体を特徴づけたものです。
この直感を数学的に定式化しましょう。
安定分布の数学的定義
安定分布は、一般には確率密度関数を閉じた形で書けません。そのため、特性関数(フーリエ変換)を通じて定義されます。
$X \sim S(\alpha, \beta, \gamma, \delta)$ の特性関数は次のように表されます。
$$ \begin{equation} \varphi(t) = E[e^{itX}] = \exp\left(-\gamma^{\alpha}|t|^{\alpha}\left[1 – i\beta\,\text{sgn}(t)\,\Phi_{\alpha}(t)\right] + i\delta t\right) \end{equation} $$
ここで
$$ \Phi_{\alpha}(t) = \begin{cases} \tan\frac{\pi\alpha}{2} & \alpha \neq 1 \\ -\frac{2}{\pi}\ln|t| & \alpha = 1 \end{cases} $$
4つのパラメータの範囲と意味は以下の通りです。
| パラメータ | 範囲 | 意味 |
|---|---|---|
| $\alpha$ | $0 < \alpha \leq 2$ | 安定指数(テール指数): 裾の重さを制御。$\alpha = 2$ で正規分布 |
| $\beta$ | $-1 \leq \beta \leq 1$ | 歪度パラメータ: 非対称性を制御。$\beta = 0$ で対称 |
| $\gamma$ | $\gamma > 0$ | 尺度パラメータ: 分布の広がりを制御 |
| $\delta$ | $-\infty < \delta < \infty$ | 位置パラメータ: 分布の位置を制御 |
パラメータの意味の詳細
安定指数 $\alpha$ は最も重要なパラメータです。$\alpha$ が小さいほど裾が重くなります。
- $\alpha = 2$: 正規分布(最も裾が軽い安定分布)
- $\alpha = 1$: コーシー分布($\beta = 0$ の場合)
- $0 < \alpha < 2$: 重い裾を持つ分布。確率密度関数の裾は $f(x) \sim |x|^{-(\alpha+1)}$ で減衰
$\alpha < 2$ のとき分散は無限大、$\alpha \leq 1$ のとき期待値も($\beta \neq 0$ の場合)定義できません。
歪度パラメータ $\beta$ は分布の非対称性を制御します。$\beta = 0$ で対称な分布、$\beta = 1$ で最大の右歪度、$\beta = -1$ で最大の左歪度です。
安定指数 $\alpha$ と正規化の関係
一般化中心極限定理において、正規化定数 $a_n$ は $a_n \propto n^{1/\alpha}$ です。通常の中心極限定理では $a_n = \sigma\sqrt{n} = \sigma n^{1/2}$ であり、$\alpha = 2$ に対応します。$\alpha < 2$ のとき $1/\alpha > 1/2$ なので、和の増大がより速く、正規化により大きな定数が必要です。
これは直感的にも理解できます。裾が重い分布($\alpha < 2$)では、和に極端に大きな値が入る確率が高く、和の大きさが $n^{1/2}$ よりも速く増大します。$\alpha = 1$(コーシー分布)の場合、$a_n \propto n$ であり、$n$ 個の和を $n$ で割っても(つまり平均を取っても)分布の形は変わりません——これがコーシー分布で大数の法則が成り立たない理由です。
引力の領域
ある分布 $F$ が安定指数 $\alpha$ の安定分布の引力の領域(domain of attraction)に属するとは、$F$ に従う独立同分布な確率変数の和を適切に正規化したとき、安定指数 $\alpha$ の安定分布に収束することを意味します。
引力の領域を決めるのは、もとの分布の裾の振る舞いです。
$\alpha = 2$ の引力の領域: 分散が有限な分布はすべて正規分布の引力の領域に属します。これが通常の中心極限定理です。
$\alpha < 2$ の引力の領域: 裾が $P(X > x) \sim c_1 x^{-\alpha}$, $P(X < -x) \sim c_2 x^{-\alpha}$($x \to \infty$)というべき乗則に従う分布は、安定指数 $\alpha$ の安定分布の引力の領域に属します。ここで $c_1, c_2 \geq 0$, $c_1 + c_2 > 0$ であり、歪度パラメータは $\beta = (c_1 – c_2)/(c_1 + c_2)$ で決まります。
パレート分布(テール指数 $\alpha$)は安定指数 $\alpha$ の安定分布の引力の領域に属します。したがって、パレート分布に従う確率変数の和を適切に正規化すると、対応する安定分布に収束します。
安定分布の特性関数の導出の背景
安定分布の特性関数が上記の複雑な形をとる理由を簡単に説明しましょう。
安定性の条件「$X_1 + X_2 \overset{d}{=} aX_1 + b$」を特性関数の言葉で書くと、
$$ \varphi(t)^2 = e^{ibt}\varphi(at) $$
一般に $n$ 個の場合、$\varphi(t)^n = e^{ib_n t}\varphi(a_n t)$ が成り立ちます。$\varphi(t) = \exp(\psi(t))$ とおくと、
$$ n\psi(t) = ib_n t + \psi(a_n t) $$
この関数方程式を $a_n = n^{1/\alpha}$ として解くと、$\psi(t) = -\gamma^\alpha |t|^\alpha (1 – i\beta \text{sgn}(t) \Phi_\alpha(t)) + i\delta t$ という形が得られます。$\alpha = 1$ の場合だけ対数項が現れるのは、$\tan(\pi\alpha/2)$ が $\alpha = 1$ で発散するため、別の正規化が必要になるためです。
次に、安定分布の特殊ケースを見ていきましょう。
特殊ケース: 閉じた形が存在する3つの分布
安定分布で確率密度関数が閉じた形で書けるのは、以下の3つのケースのみです。
正規分布 ($\alpha = 2$)
$S(2, 0, \sigma/\sqrt{2}, \mu) = N(\mu, \sigma^2)$ です。$\alpha = 2$ のとき $\beta$ の効果は消え、安定分布は常に正規分布になります。
$$ f(x) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) $$
コーシー分布 ($\alpha = 1, \beta = 0$)
$S(1, 0, \gamma, \delta)$ はコーシー分布です。
$$ \begin{equation} f(x) = \frac{1}{\pi\gamma}\frac{1}{1 + \left(\frac{x – \delta}{\gamma}\right)^2} \end{equation} $$
コーシー分布は期待値も分散も存在しない「病的な」分布であり、大数の法則さえ成り立ちません。しかし、安定分布としては完全に正当な分布です。物理学ではローレンツ分布(共鳴曲線の形状)としても知られています。
レヴィ分布 ($\alpha = 1/2, \beta = 1$)
$S(1/2, 1, \gamma, \delta)$ はレヴィ分布です。
$$ \begin{equation} f(x) = \sqrt{\frac{\gamma}{2\pi}}\frac{1}{(x-\delta)^{3/2}}\exp\left(-\frac{\gamma}{2(x-\delta)}\right), \quad x > \delta \end{equation} $$
レヴィ分布は完全に片側に寄った分布($x > \delta$ でのみ正の値をとる)であり、ブラウン運動の初めて特定の水準を超えるまでの時間の分布として現れます。
Pythonによる安定分布の可視化
scipy.stats.levy_stable を使って安定分布の確率密度関数を可視化します。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
fig, axes = plt.subplots(2, 2, figsize=(14, 11))
x = np.linspace(-10, 10, 2000)
# (a) αの変化(β=0, γ=1, δ=0)
ax = axes[0, 0]
for alpha in [0.5, 1.0, 1.5, 1.8, 2.0]:
if alpha == 2.0:
pdf = stats.norm.pdf(x, loc=0, scale=np.sqrt(2))
ax.plot(x, pdf, linewidth=2, label=rf"$\alpha = {alpha}$ (Normal)")
else:
pdf = stats.levy_stable.pdf(x, alpha=alpha, beta=0, loc=0, scale=1)
ax.plot(x, pdf, linewidth=2, label=rf"$\alpha = {alpha}$")
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("f(x)", fontsize=12)
ax.set_title(r"Varying $\alpha$ ($\beta = 0$)", fontsize=13)
ax.legend(fontsize=9)
ax.set_ylim(0, 0.5)
ax.grid(True, alpha=0.3)
# (b) βの変化(α=1.5, γ=1, δ=0)
ax = axes[0, 1]
alpha = 1.5
for beta in [-1.0, -0.5, 0.0, 0.5, 1.0]:
pdf = stats.levy_stable.pdf(x, alpha=alpha, beta=beta, loc=0, scale=1)
ax.plot(x, pdf, linewidth=2, label=rf"$\beta = {beta}$")
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("f(x)", fontsize=12)
ax.set_title(rf"Varying $\beta$ ($\alpha = {alpha}$)", fontsize=13)
ax.legend(fontsize=9)
ax.set_ylim(0, 0.4)
ax.grid(True, alpha=0.3)
# (c) 裾の比較(両対数スケール)
ax = axes[1, 0]
x_pos = np.linspace(1, 50, 1000)
for alpha in [1.0, 1.5, 1.8, 2.0]:
if alpha == 2.0:
pdf = stats.norm.pdf(x_pos, loc=0, scale=np.sqrt(2))
label = rf"$\alpha = {alpha}$ (Normal)"
else:
pdf = stats.levy_stable.pdf(x_pos, alpha=alpha, beta=0, loc=0, scale=1)
label = rf"$\alpha = {alpha}$"
ax.loglog(x_pos, pdf, linewidth=2, label=label)
# べき乗の参考線
for alpha in [1.0, 1.5, 1.8]:
ax.loglog(x_pos, 0.3 * x_pos**(-(alpha+1)), "--", linewidth=1, alpha=0.5)
ax.set_xlabel("x (log scale)", fontsize=12)
ax.set_ylabel("f(x) (log scale)", fontsize=12)
ax.set_title("Tail behavior (log-log scale)", fontsize=13)
ax.legend(fontsize=9)
ax.grid(True, alpha=0.3, which="both")
# (d) 正規分布との比較(対数スケール)
ax = axes[1, 1]
x = np.linspace(-8, 8, 2000)
pdf_normal = stats.norm.pdf(x, loc=0, scale=np.sqrt(2))
ax.semilogy(x, pdf_normal, "b-", linewidth=2, label=r"Normal ($\alpha = 2$)")
for alpha in [1.5, 1.8]:
pdf_stable = stats.levy_stable.pdf(x, alpha=alpha, beta=0, loc=0, scale=1)
ax.semilogy(x, pdf_stable, linewidth=2, label=rf"Stable ($\alpha = {alpha}$)")
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("f(x) (log scale)", fontsize=12)
ax.set_title("Normal vs stable (semi-log scale)", fontsize=13)
ax.legend(fontsize=10)
ax.set_ylim(1e-6, 1)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig("stable_distribution_pdf.png", dpi=150, bbox_inches="tight")
plt.show()
このグラフから、安定分布の形状について以下の重要な特徴が読み取れます。
-
左上: $\alpha$ が小さいほど裾が重く、ピークが鋭い 。$\alpha = 2$(正規分布)が最も裾が軽く、$\alpha = 0.5$ では裾が極端に重い分布です。ピーク付近の形状も $\alpha$ によって大きく変わります
-
右上: $\beta$ は分布の非対称性を制御する 。$\beta = 0$ で対称、$\beta > 0$ で右に裾が重くなり、$\beta < 0$ で左に裾が重くなります
-
左下(両対数プロット): $\alpha < 2$ の安定分布の裾はべき乗で減衰 し、直線的に見えます。正規分布の裾は指数的に減衰するため、両対数プロットでは急速に落ち込みます。この裾の重さの違いが、安定分布がリスク管理で重要視される理由です
-
右下(片対数プロット): 正規分布(放物線)に比べて安定分布は裾での確率密度が桁違いに大きい 。$|x| = 5$ の時点で、$\alpha = 1.5$ の安定分布の確率密度は正規分布の1000倍以上あります。金融における「ブラックスワン」イベントを説明するために安定分布が必要とされる理由です
和の安定性の数値的検証
安定分布の「和に対して閉じている」性質をシミュレーションで確認します。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
np.random.seed(42)
fig, axes = plt.subplots(1, 2, figsize=(14, 5.5))
# (a) α = 1.5 の安定分布の和
alpha = 1.5
beta = 0
n_samples = 100000
ax = axes[0]
# 2つの独立な安定分布に従う変数の生成
X1 = stats.levy_stable.rvs(alpha=alpha, beta=beta, loc=0, scale=1,
size=n_samples)
X2 = stats.levy_stable.rvs(alpha=alpha, beta=beta, loc=0, scale=1,
size=n_samples)
# 和を計算
S = X1 + X2
# 理論: X1 + X2 ~ S(α, β, 2^(1/α), 0)
scale_sum = 2**(1/alpha)
# トリミング(可視化のため極端な値を除外)
q_low, q_high = np.percentile(S, [0.5, 99.5])
x = np.linspace(q_low, q_high, 1000)
ax.hist(S, bins=200, density=True, alpha=0.5, color="steelblue",
range=(q_low, q_high), label=r"$X_1 + X_2$ (simulated)")
pdf_theory = stats.levy_stable.pdf(x, alpha=alpha, beta=beta,
loc=0, scale=scale_sum)
ax.plot(x, pdf_theory, "r-", linewidth=2.5,
label=rf"$S({alpha}, 0, {scale_sum:.3f}, 0)$ (theory)")
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("Density", fontsize=12)
ax.set_title(rf"Stability: $X_1 + X_2$ for $\alpha = {alpha}$", fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
# (b) n個の和の分布の収束
ax = axes[1]
alpha = 1.5
x = np.linspace(-15, 15, 1000)
for n in [1, 2, 5, 10, 50]:
# n個の和をn^(1/α)で正規化
samples = np.sum(stats.levy_stable.rvs(
alpha=alpha, beta=0, loc=0, scale=1,
size=(n_samples, n)), axis=1) / n**(1/alpha)
q_low, q_high = np.percentile(samples, [1, 99])
ax.hist(samples, bins=200, density=True, alpha=0.3,
range=(q_low, q_high), label=rf"$n = {n}$")
# 理論分布
pdf_theory = stats.levy_stable.pdf(x, alpha=alpha, beta=0, loc=0, scale=1)
ax.plot(x, pdf_theory, "k-", linewidth=2.5, label=rf"$S({alpha}, 0, 1, 0)$")
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("Density", fontsize=12)
ax.set_title(rf"Generalized CLT: $S_n / n^{{1/\alpha}}$ for $\alpha = {alpha}$",
fontsize=13)
ax.legend(fontsize=9)
ax.set_xlim(-15, 15)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig("stable_distribution_sum.png", dpi=150, bbox_inches="tight")
plt.show()
この検証結果から、以下のことが確認できます。
-
左図: 2つの安定分布の和が理論通りの安定分布に従っている 。シミュレーションのヒストグラムが理論曲線(赤)とよく一致しています。尺度パラメータは $2^{1/\alpha}$ 倍になっており、正規分布の場合($\alpha = 2$ で $\sqrt{2}$ 倍)の一般化になっています
-
右図: $n$ 個の和を $n^{1/\alpha}$ で正規化すると、$n$ によらず同じ形の分布に収束する 。通常の中心極限定理では正規化は $n^{1/2}$(= $n^{1/\alpha}$ で $\alpha = 2$)ですが、$\alpha < 2$ のときは $n^{1/\alpha} > n^{1/2}$ で正規化する必要があります。これは和の増大がより速い(裾が重いため極端な値が和を支配する)ことを反映しています
安定分布のモーメント
安定分布のモーメントに関する結果を整理しておきます。
- $\alpha = 2$(正規分布): すべてのモーメントが存在
- $1 < \alpha < 2$: 期待値 $E[X] = \delta$ が存在、分散は無限大。$p < \alpha$ 次の絶対モーメント $E[|X|^p]$ が有限
- $\alpha = 1$(コーシー分布): 期待値が存在しない($\beta = 0$ のとき主値としては定義可能)
- $0 < \alpha < 1$: 期待値も存在しない
分散が無限大であっても、分布の広がりを測る指標として「分散」の代わりに尺度パラメータ $\gamma$ を使うことができます。また、$p < \alpha$ の範囲で $E[|X|^p]$ は有限なので、フラクショナルモーメントを使った統計的推定が可能です。
安定分布の金融への応用
マンデルブロの仮説
1963年、ブノワ・マンデルブロは綿花の価格変動が正規分布ではなく安定分布に従うことを指摘しました。金融リターン $r_t = \ln(P_t/P_{t-1})$ の経験的な分布は、正規分布よりもはるかに裾が重い(ファットテール)ことが広く知られています。
正規分布のもとでは、2008年のリーマン・ショックのような大暴落(日次リターンが標準偏差の10倍以上)は宇宙の年齢の中でも1回も起きないはずですが、現実には数十年に1回程度起きています。安定分布を使えば、このような極端なイベントの発生確率をより現実的に評価できます。
Value at Risk (VaR)の計算
リスク管理で使われるVaR(信頼水準 $q$ での最大損失額)は、リターン分布の分位点から計算されます。正規分布を仮定すると、VaRは平均と標準偏差のみで決まります。
$$ \text{VaR}_q^{\text{Normal}} = -(\mu + z_q \sigma) $$
安定分布を仮定する場合は、$\alpha$ と $\gamma$ を推定してから数値的に分位点を計算する必要があります。$\alpha < 2$ のとき、安定分布のVaRは正規分布のVaRよりも大きくなり、より保守的な(現実的な)リスク評価を与えます。
パラメータの推定
安定分布のパラメータ推定は、密度関数が閉じた形で書けないため、通常の最尤法を直接適用するのが困難です。以下の方法が使われます。
分位点法(McCulloch, 1986): サンプルの分位点から4つのパラメータを推定する方法。計算が簡単で初期推定値として有用です。
特性関数を用いた方法: 経験的特性関数と理論的特性関数の差を最小化する方法。安定分布の特性関数は閉じた形で与えられるため、この方法は理論的に整合的です。
最尤法: 密度関数をフーリエ逆変換で数値的に計算し、最尤推定を行う方法。計算コストは高いですが、最も効率的な推定を与えます。
レヴィ飛行と異常拡散
安定分布は物理学におけるレヴィ飛行(Levy flight)の理論的基盤でもあります。
通常のブラウン運動(ランダムウォーク)では、各ステップの分布が正規分布に従い、時刻 $t$ での位置の分散は $\text{Var}(X_t) = Dt$(正常拡散)です。
レヴィ飛行では、各ステップが $\alpha < 2$ の安定分布に従います。ほとんどのステップは短いですが、ごくまれに極端に長い「飛行」が発生します。この重い裾のため、分散は無限大であり、異常拡散(anomalous diffusion)が生じます。移動距離の $p$ 次モーメント($p < \alpha$)は $E[|X_t|^p] \propto t^{p/\alpha}$ のように超拡散的にスケールします。
レヴィ飛行は、動物の採餌行動、光子の散乱、地下水の汚染拡散など、多くの自然現象で観測されています。特に、フランスの物理学者レヴィにちなんで命名されたこの過程は、ブラウン運動を含むより広い確率過程の枠組みであるレヴィ過程の基礎となっています。
まとめ
本記事では、安定分布の理論を中心極限定理の一般化という観点から解説しました。
- 安定分布は一般化中心極限定理の極限分布 であり、独立同分布な確率変数の和の極限として現れうるすべての分布を特徴づけます。分散が有限なら正規分布に、無限なら裾の重い安定分布に収束します
- 4つのパラメータ $(\alpha, \beta, \gamma, \delta)$ のうち、安定指数 $\alpha \in (0, 2]$ が最も重要で、裾の重さを制御します。$\alpha = 2$ で正規分布、$\alpha = 1$ でコーシー分布、$\alpha = 1/2$ でレヴィ分布という3つの閉じた形が存在する特殊ケースを含みます
- 安定性: 同じ安定分布に従う独立な確率変数の和は、尺度と位置のシフトを除いて同じ安定分布に従います
- 裾の振る舞い: $\alpha < 2$ のとき確率密度関数の裾は $|x|^{-(\alpha+1)}$ で減衰し、正規分布の指数的減衰よりもはるかにゆっくりです
- 金融工学のリスク管理(VaRの計算)、物理学のレヴィ飛行(異常拡散)、通信工学のインパルスノイズなど、正規分布では説明できない重い裾を持つ現象のモデリングに広く応用されます
- 引力の領域: 裾がべき乗で減衰する分布は、対応する安定指数の安定分布の引力の領域に属します
次のステップとして、以下の記事も参考にしてください。