🎓 レベル:標準 | 重要度:A(必須)
要点(BLUF)
- **CAPM(資本資産価格モデル)**は、資産の要求期待リターンを「リスクフリー+ベータ×市場リスクプレミアム」で説明します:。
- ベータ は市場への感応度。分散投資で消せる固有リスクは報われず、消せないシステマティックリスク(=ベータ)だけが報われるというのが核心です。
- ベータと期待リターンの関係を描いた直線が証券市場線(SML)。実データではベータを回帰で推定し、線から上振れた切片がアルファ(モデルで説明できない超過収益)です。
1. システマティックリスクと固有リスク
効率的フロンティア の分離定理から、全投資家は同じ危険資産ポートフォリオ(接点)を持ちます。これを市場全体に広げると、接点ポートフォリオは市場ポートフォリオ(すべての資産を時価総額比で持つもの)に一致します。
ここで各資産のリスクを2つに分けます。
固有リスク は、多数の資産を持てば打ち消し合って消えます(リスクの測り方 の分散投資)。投資家は努力なしに消せるリスクには対価を払いません。だから報われるのは、分散しても消えないシステマティックリスク(ベータ)だけ。これが CAPM の経済的な心臓部です。
2. CAPMの式とベータ
市場ポートフォリオへの資産 の限界的なリスク寄与は、その資産と市場の共分散に比例します。均衡では、どの資産も「リスク1単位あたりの超過リターン」が等しくならねばならず、整理すると次のシンプルな式に行き着きます。
ベータの読み方は明快です。 なら市場と同じだけ動く(市場ポートフォリオ自身)。 なら市場が1%上がると平均1.5%上がる(攻撃的)。 なら0.5%(守備的)。 なら市場と無相関で、要求リターンはリスクフリーに等しくなります。
3. ベータの推定(回帰)
ベータは、資産の超過リターンを市場の超過リターンに回帰した傾きとして推定できます(単回帰分析(統計))。
真のベータが分かっている合成データを作り、回帰で復元できるか確かめます。
import numpy as np
from scipy import stats
rng = np.random.default_rng(0)
n_months = 120
rf_m = 0.03/12 # 月次リスクフリー
market_excess = rng.normal(0.005, 0.04, n_months) # 市場の超過リターン(月次)
true_betas = [0.5, 1.0, 1.5]
print("資産 真のβ 推定β 推定α(月次)")
for i, beta in enumerate(true_betas):
idio = rng.normal(0, 0.02, n_months) # 固有リスク(市場と無相関)
asset_excess = beta*market_excess + idio # CAPM: 超過 = β×市場超過 + 固有
reg = stats.linregress(market_excess, asset_excess)
print(f"{i+1} {beta:.2f} {reg.slope:.4f} {reg.intercept:+.5f}")
出力:
資産 真のβ 推定β 推定α(月次)
1 0.50 0.4621 -0.00221
2 1.00 1.0063 -0.00109
3 1.50 1.4389 +0.00054
出力の意味:回帰の傾きが推定ベータで、真の値(0.5・1.0・1.5)をおおむね復元できています(0.46・1.01・1.44)。ぴたり一致しないのは、120ヶ月という有限サンプルと固有リスクのノイズのためです。切片(推定アルファ)はどれも 0 に近い——合成データを「アルファ無し(CAPM が正しい)」で作ったので当然です。実データでベータを測るときは、このように市場超過リターンへの回帰を使います。
4. 証券市場線とアルファ
CAPM の式 を、横軸ベータ・縦軸期待リターンの平面に描いた直線が**証券市場線(SML: Security Market Line)**です。切片が 、傾きが市場リスクプレミアム 。
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
rf = 0.03 # 年率リスクフリー
mkt_prem = 0.06 # 市場リスクプレミアム E[Rm]-Rf
betas = np.linspace(0, 2, 100)
sml = rf + betas*mkt_prem
plt.figure(figsize=(7, 4))
plt.plot(betas, sml, lw=2, label="証券市場線 SML")
plt.scatter(1.0, rf + mkt_prem, color="black", zorder=6, label="市場ポートフォリオ (β=1)")
plt.xlabel("ベータ β"); plt.ylabel("要求期待リターン")
plt.title("証券市場線(SML)")
plt.legend(); plt.grid(alpha=0.3); plt.tight_layout(); plt.show()
for beta in [0.0, 0.5, 1.0, 1.5]:
print(f"β={beta:.1f}: 要求リターン = {rf + beta*mkt_prem:.2%}")
出力:
β=0.0: 要求リターン = 3.00%
β=0.5: 要求リターン = 6.00%
β=1.0: 要求リターン = 9.00%
β=1.5: 要求リターン = 12.00%
出力の意味:ベータが大きいほど、SML 上の要求リターンも直線的に上がります( で市場と同じ 9%)。実際の資産が SML より上にあれば、ベータで説明される以上に儲かっている=プラスのアルファ(割安・運用の付加価値)。下なら割高です。アルファ(CAPM 回帰の切片=ジェンセンのアルファ)はファンドの実力を測る基本指標になります。次の シャープレシオとパフォーマンス評価 で、こうした評価指標を整理します。
⚠️ よくある誤解
- 「リスクが高いほどリターンが高い」ではない:報われるのはベータ(システマティックリスク)だけ。総リスク(ボラ)が大きくても、その中身が固有リスクなら CAPM は対価を与えません。分散で消せるリスクに市場は払わないからです。
- 「ベータは固定の定数」ではない:ベータは推定値で、期間・市場指標の選び方・サンプルで変わります。回帰の標準誤差も大きく、過去ベータが将来も続く保証はありません(要最新確認)。
- CAPM は強い仮定の上のモデル:単一期間・同質的期待・摩擦なしなどを仮定します。実証では小型株効果・バリュー効果など CAPM で説明しきれない「アノマリー」があり、ファーマ=フレンチの多因子モデルへ拡張されました(第9章・要最新確認)。
関連ノート
- 第2章 ポートフォリオ理論 目次
- 効率的フロンティア — 前提:接点ポートフォリオ=市場ポートフォリオ
- シャープレシオとパフォーマンス評価 — 次のトピック:アルファと各種評価指標
- 単回帰分析(統計)— ベータ推定に使う最小二乗回帰
- 金融工学テキスト 全体目次