※本記事のコードや情報は執筆時点の仕様に基づいています。投資は自己責任であり、必ずデモ環境や少額資金でテストした上で運用してください。
正規分布とは何か
統計学で最も有名な分布が正規分布(Normal Distribution)です。「釣り鐘型」とも呼ばれ、左右対称の美しい山形をしています。身長や体重など自然界の多くの現象がこの分布に従います。
| 範囲 | 含まれるデータの割合 | 株価での意味 |
|---|---|---|
| 平均 ± 1σ | 約68.3% | 通常の日々の変動範囲 |
| 平均 ± 2σ | 約95.4% | 95%の日はこの範囲内 |
| 平均 ± 3σ | 約99.7% | 3σを超えるのは0.3%(約100年に1回?) |
金融の世界では「株価リターンは正規分布に従う」という仮定がよく使われます。しかし現実はそうとは限りません。
ファットテールとは何か
実際の株価リターンの分布は、正規分布と比べて裾が厚い(ファットテール)という特徴があります。つまり「確率的には起きないはずの大暴落・大暴騰」が、理論より高い頻度で起きるのです。
リーマンショック(2008年)やコロナショック(2020年)のような事象は、正規分布の理論では「ほぼ起きないはず」でした。ファットテールを無視したリスク管理は危険です。
Pythonでヒストグラムを描いて確認する
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from scipy import stats
# 日本語フォント設定(環境によって変える)
matplotlib.rcParams['font.family'] = 'Meiryo'
# ==============================
# 設定エリア
# ==============================
SYMBOL = "^N225" # 日経平均
PERIOD = "5y" # 過去5年
# ==============================
# データ取得とリターン計算
# ==============================
df = yf.Ticker(SYMBOL).history(period=PERIOD)
log_returns = np.log(df["Close"] / df["Close"].shift(1)).dropna()
mean = log_returns.mean()
std = log_returns.std()
# 歪度(Skewness)と尖度(Kurtosis)
skew = log_returns.skew()
kurt = log_returns.kurtosis()
print(f"平均リターン: {mean*100:.3f}%")
print(f"標準偏差 : {std*100:.3f}%")
print(f"歪度 (Skewness) : {skew:.3f} ← 0に近いほど対称")
print(f"尖度 (Kurtosis) : {kurt:.3f} ← 正規分布なら0、大きいほどファットテール")
# ==============================
# ヒストグラム描画
# ==============================
fig, ax = plt.subplots(figsize=(10, 5))
# 実際のリターン分布
ax.hist(log_returns, bins=80, density=True, alpha=0.6,
color='steelblue', label='実際の分布')
# 正規分布の理論値を重ねる
x = np.linspace(log_returns.min(), log_returns.max(), 300)
normal_pdf = stats.norm.pdf(x, mean, std)
ax.plot(x, normal_pdf, 'r-', linewidth=2, label='正規分布(理論値)')
ax.set_title(f'{SYMBOL} 日次リターン分布(過去5年)')
ax.set_xlabel('日次リターン')
ax.set_ylabel('確率密度')
ax.legend()
plt.tight_layout()
plt.savefig('return_distribution.png', dpi=150)
plt.show()
print("グラフを保存しました: return_distribution.png")
尖度(Kurtosis)の見方
尖度が正(0より大きい)なら、正規分布よりも裾が厚い(ファットテール)です。日経平均の尖度は多くの期間で2〜5程度になり、正規分布仮定が成り立たないことが分かります。
まとめ
- 正規分布は統計の基礎であり、平均±1σに68%、±2σに95%のデータが収まる
- 実際の株価リターンは「ファットテール」であり、大暴落・大暴騰が理論より頻繁に起きる
- 歪度・尖度を計算すると分布の形を客観的に把握できる
- VaRなどのリスク指標を使う際は正規分布の限界を意識することが重要
