🎓 レベル:標準 | 重要度:A(必須)
📎 前提:リスクの測り方 | 数理:分散共分散行列・相関行列(統計)・期待値・分散の性質(線形性・和の分散・共分散)(統計)
要点(BLUF)
- ポートフォリオの期待リターンは構成比の加重平均 。**リスク(分散)**は で、共分散項のぶん単純な加重平均より小さくできます。
- 平均分散分析(マーコウィッツ)は、資産配分を「期待リターン」と「分散」の2軸だけで評価する枠組み。同じリターンならリスク最小を、同じリスクならリターン最大を選びます。
- 2資産でも、相関が1未満なら、混ぜることでどちらの単独資産よりも低リスクなポートフォリオ(最小分散ポートフォリオ)が作れます。
1. ポートフォリオの期待リターンとリスク
個の資産に構成比 ()で投資するとき、ポートフォリオのリターンは各資産リターンの加重和 。期待値は線形なので、期待リターンはそのまま加重平均です。
いっぽう分散は、期待値・分散の性質(線形性・和の分散・共分散)(統計)の分散の展開から、自分自身の分散と資産間の共分散がすべて足し合わさります。
ここで は共分散行列(対角が各資産の分散 、非対角が共分散 )。期待リターンは線形、リスクは二次形式——この非対称性こそ、分散投資でリスクだけを削れる理由です。リターンは混ぜても加重平均のまま、リスクは共分散が低ければ加重平均を下回ります。
2. 2資産のリスク・リターン平面
2資産 を構成比 で持つと、上の式は
を 0 から 1 まで動かすと、リスク・リターン平面に1本の曲線が描けます。低リターン低リスクの資産Aと、高リターン高リスクの資産Bを混ぜてみます。
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
mu_a, sig_a = 0.08, 0.12 # 資産A:低リターン低リスク
mu_b, sig_b = 0.15, 0.25 # 資産B:高リターン高リスク
rho = 0.3 # 相関
w = np.linspace(0, 1, 101) # 資産Aの構成比
port_ret = w*mu_a + (1-w)*mu_b
port_var = (w*sig_a)**2 + ((1-w)*sig_b)**2 + 2*w*(1-w)*rho*sig_a*sig_b
port_vol = np.sqrt(port_var)
plt.figure(figsize=(7, 5))
plt.plot(port_vol, port_ret, lw=2, label="ポートフォリオ(w を変化)")
plt.scatter([sig_a, sig_b], [mu_a, mu_b], color="crimson", zorder=5)
plt.annotate("資産A", (sig_a, mu_a), textcoords="offset points", xytext=(8, -10))
plt.annotate("資産B", (sig_b, mu_b), textcoords="offset points", xytext=(8, -4))
plt.xlabel("リスク(年率ボラ σ_p)"); plt.ylabel("期待リターン μ_p")
plt.title("2資産のリスク・リターン平面")
plt.legend(); plt.grid(alpha=0.3); plt.tight_layout(); plt.show()
出力の意味:曲線は資産Aと資産Bを両端に結ぶ「弾丸(bullet)」の形になります。注目すべきは、曲線が左に膨らむこと——同じリターンでも、混ぜたほうが単独より左(低リスク)に来る領域があります。もし相関が なら曲線は直線になり、この膨らみは消えます。膨らみの大きさがそのまま分散投資の効果です。曲線のいちばん左の点(リスク最小点)を次に求めます。
3. 最小分散ポートフォリオ
リスクが最小になる配分を**最小分散ポートフォリオ(MVP: Minimum Variance Portfolio)**と呼びます。2資産なら を で微分して 0 と置けば、解析的に解けます。
この配分のリスクを計算してみます。
import numpy as np
mu_a, sig_a = 0.08, 0.12
mu_b, sig_b = 0.15, 0.25
rho = 0.3
# 最小分散ポートフォリオの解析解
wA_mvp = (sig_b**2 - rho*sig_a*sig_b) / (sig_a**2 + sig_b**2 - 2*rho*sig_a*sig_b)
mvp_ret = wA_mvp*mu_a + (1-wA_mvp)*mu_b
mvp_var = ((wA_mvp*sig_a)**2 + ((1-wA_mvp)*sig_b)**2
+ 2*wA_mvp*(1-wA_mvp)*rho*sig_a*sig_b)
mvp_vol = np.sqrt(mvp_var)
print(f"MVP の配分 : 資産A {wA_mvp:.4f}, 資産B {1-wA_mvp:.4f}")
print(f"MVP の期待リターン: {mvp_ret:.4%}")
print(f"MVP のボラ : {mvp_vol:.4%}")
print(f"参考:資産A単独のボラ {sig_a:.2%} よりも低い")
出力:
MVP の配分 : 資産A 0.9083, 資産B 0.0917
MVP の期待リターン: 8.6418%
MVP のボラ : 11.7919%
参考:資産A単独のボラ 12.00% よりも低い
出力の意味:最小分散ポートフォリオは資産Aを約91%、資産Bを約9%。注目はボラ 11.79% が、低リスク資産Aの単独ボラ 12.00% すら下回っていること。少しだけ高リスク資産Bを混ぜたほうが、相関が低い(0.3)おかげで全体のリスクが下がるのです。「リスクを下げたいなら最もリスクの低い資産100%」が間違いだと、この数字がはっきり示しています。次の 効率的フロンティア では、この考えを多資産に広げ、MVP から上側の「効率的」な部分だけを取り出します。
⚠️ よくある誤解
- 「期待リターンもリスクも加重平均」ではない:期待リターンは加重平均ですが、リスク(ボラ)は違います。 は二次形式で、共分散が低ければ加重平均ボラを下回ります。ここが分散投資の核心です。
- 「最小リスク=最低リスク資産100%」ではない:相関が低ければ、少し別の資産を混ぜたほうがリスクは下がります(上の例で 12.00%→11.79%)。MVP は単独資産の端ではなく内部にあります。
- 平均分散分析は「リターンとリスクの2軸」しか見ない:歪度・尖度(テールリスク)や非正規性は無視します。リターンが正規に近い、または投資家が平均と分散だけを気にする(二次効用)という仮定の上の理論で、暴落の非対称リスクは第8章で別に扱います。
関連ノート
- 第2章 ポートフォリオ理論 目次
- リスクの測り方 — 前提:共分散・相関とポートフォリオ分散
- 効率的フロンティア — 次のトピック:多資産への拡張と効率的フロンティア
- 分散共分散行列・相関行列(統計)— 共分散行列 Σ の土台
- 金融工学テキスト 全体目次