mcpField
D
diversification

diversification

github.com/joellewisその他218733 回インストール15 週間前に更新
リポジトリ

diversification について

ポートフォリオ分散を共分散、相関、リスク寄与から解説するウェルスマネジメント向けスキルです。数式や計算例に加え、Pythonのデモスクリプトを含みます。

主な機能

  1. 01ポートフォリオ分散と共分散
  2. 02分散比率と効率的フロンティア
  3. 03最小分散ポートフォリオのウェイト
  4. 04資産・ファクターのリスク寄与
  5. 05検証機能付きPythonデモ

活用シーン

  1. 01配分案ごとのリスク比較
  2. 02分散効果の測定
  3. 03ポートフォリオのリスク要因の特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/joellewis/finance_skills --skill diversification

インストール後、Claude Code で/diversificationを入力して読み込まれたか確認します。

同梱ファイルscripts/diversification.py

詳細

分散投資

基本概念

ポートフォリオ分散(2資産)

ウェイトが w_1 と w_2、ボラティリティが sigma_1 と sigma_2、相関が rho_12 の2資産ポートフォリオの場合:

sigma^2_p = w_1^2 * sigma_1^2 + w_2^2 * sigma_2^2 + 2 * w_1 * w_2 * sigma_1 * sigma_2 * rho_12

rho_12 < 1 であれば、分散投資の効果が得られます。ポートフォリオのボラティリティが、個々のボラティリティの加重平均を下回るためです。

ポートフォリオ分散(n資産)

n資産のウェイトベクトル w と共分散行列 Sigma を用いた行列表記では、次のようになります。

sigma^2_p = w' * Sigma * w

これは任意の数の資産に一般化でき、すべての資産ペア間の相関を反映します。

分散投資の効果

いずれかの資産ペア間の相関が1未満であれば、ポートフォリオのボラティリティは個々のボラティリティの加重平均を必ず下回ります。

sigma_p < Sigma(w_i * sigma_i) when rho_ij < 1 for some i,j

平均相関が低いほど、分散投資の効果は大きくなります。

効率的フロンティア

効率的フロンティアとは、それぞれのリスク水準で期待リターンが最も高い(または同じリターン水準でリスクが最も低い)ポートフォリオの集合です。フロンティアより下にあるポートフォリオは非効率であり、ウェイトを再配分することで改善できます。

最小分散ポートフォリオ

期待リターンにかかわらず、ボラティリティが可能な限り低いポートフォリオです。

w_mv = Sigma^(-1) * 1 / (1' * Sigma^(-1) * 1)

ここで 1 はすべての要素が1のベクトルです。このポートフォリオは期待リターンではなく共分散行列のみに依存するため、推定誤差に対してより頑健です。

相関の局面

相関は一定ではありません。市場危機時には、リスク資産間の相関が急激に高まる傾向があります(「相関の崩壊」または「相関の収斂」)。その結果、分散投資の効果が最も必要なときに低下します。主な示唆は次のとおりです。

  • 危機期間の相関行列を使ってポートフォリオをストレステストします
  • 資産クラス(株式、債券、コモディティ、実物資産)をまたいだ分散投資は、同一資産クラス内の分散投資よりも頑健です
分散投資比率

ポートフォリオがどれほど分散投資の効果を得ているかを示す指標です。

DR = (Sigma(w_i * sigma_i)) / sigma_p

相関が完全に1の資産からなるポートフォリオでは、DR = 1 です。DR が高いほど、分散投資の効果が高いことを示します。相関がゼロで、ボラティリティが等しい資産に均等配分した完全分散ポートフォリオでは、DR = sqrt(n) となります。

最大分散投資ポートフォリオ

分散投資比率を最大化するポートフォリオです。期待リターンの入力を必要とせず、ボラティリティと相関のみに依存するため、平均分散最適化に代わる手法です。

ファクター分散

真の分散投資とは、多数の資産を保有することではなく、独立した複数のリスクファクターにエクスポージャーを持つことです。同じファクター・エクスポージャーを持つ資産(例:成長ファクターに左右される複数のテクノロジー株)は、資産数が示すほどの分散投資効果をもたらしません。主なファクターは次のとおりです。

  • 市場、サイズ、バリュー、モメンタム、クオリティ、低ボラティリティ
  • 金利、信用、インフレ
  • 地域、セクター、通貨
リスク寄与度

ポートフォリオのボラティリティに対する資産 i のリスク寄与度は次のとおりです。

RC_i = w_i * (Sigma * w)_i / sigma_p

ここで (Sigma * w)_i は、ベクトル Sigma * w の i 番目の要素です。すべてのリスク寄与度の合計は、ポートフォリオのボラティリティと等しくなります。この分解により、どの資産が実際にポートフォリオのリスクを左右しているかがわかります。

限界リスク寄与度

資産 i のウェイトに対するポートフォリオのボラティリティの変化率は次のとおりです。

MRC_i = (Sigma * w)_i / sigma_p

リスク寄与度 = ウェイト * 限界リスク寄与度:RC_i = w_i * MRC_i

限界分散効果の逓減

資産を追加することで得られる分散投資の効果は、急速に小さくなります。実証的には、次の傾向があります。

  • 相関のない資産を15~20保有すれば、分散投資の効果の大部分が得られます
  • 30資産を超えると、追加的なリスク低減効果はわずかです
  • 漸近的なポートフォリオ分散は平均共分散と等しくなります(システマティックリスクは分散投資では除去できません)

主要な公式

公式式用途
2資産ポートフォリオの分散sigma^2_p = w_1^2sigma_1^2 + w_2^2sigma_2^2 + 2w_1w_2sigma_1sigma_2*rho_122資産のリスク計算
n資産ポートフォリオの分散sigma^2_p = w' * Sigma * w一般的なポートフォリオのリスク
最小分散ウェイトw_mv = Sigma^(-1)*1 / (1'*Sigma^(-1)*1)リスクが最も低いポートフォリオ
分散投資比率DR = Sigma(w_i*sigma_i) / sigma_p分散投資の度合いを測定
リスク寄与度RC_i = w_i * (Sigma*w)_i / sigma_p資産レベルでのリスク配分
限界リスク寄与度MRC_i = (Sigma*w)_i / sigma_pウェイトに対するリスクの感応度
漸近分散sigma^2_p → avg(cov_ij) as n → infinity分散投資の限界

計算例

例1:2資産ポートフォリオのボラティリティ

与えられた条件:

  • 株式:sigma = 20%、ウェイト = 60%
  • 債券:sigma = 5%、ウェイト = 40%
  • 相関係数:rho = 0.2

計算する値: ポートフォリオのボラティリティ

解答:

sigma^2_p = (0.60)^2 * (0.20)^2 + (0.40)^2 * (0.05)^2 + 2 * (0.60) * (0.40) * (0.20) * (0.05) * (0.20)

sigma^2_p = 0.36 * 0.04 + 0.16 * 0.0025 + 2 * 0.60 * 0.40 * 0.20 * 0.05 * 0.20

sigma^2_p = 0.0144 + 0.0004 + 0.00096

sigma^2_p = 0.01576

sigma_p = sqrt(0.01576) = 0.1255 = 12.55%

加重平均ボラティリティ = 0.60 * 20% + 0.40 * 5% = 14.0%

分散投資の効果 = 14.0% - 12.55% = リスク低減幅 1.45パーセントポイント。

例2:4資産ポートフォリオの分散投資比率

与えられた条件:

  • 資産:A(sigma=15%、w=25%)、B(sigma=20%、w=25%)、C(sigma=10%、w=25%)、D(sigma=18%、w=25%)
  • ポートフォリオのボラティリティ(完全な共分散行列から算出):sigma_p = 10.5%

計算する値: 分散投資比率

解答:

加重平均ボラティリティ = 0.2515% + 0.2520% + 0.2510% + 0.2518% = 3.75% + 5.0% + 2.5% + 4.5% = 15.75%

分散投資比率 = 15.75% / 10.5% = 1.50

解釈:このポートフォリオは大きな分散投資効果を実現しています。加重平均ボラティリティは、実際のポートフォリオのボラティリティより50%高くなっています。DRが1.50であることは、相関による効果が大きいことを示しています。比較として、完全に相関した資産で構成されるポートフォリオのDRは1.0です。

よくある落とし穴

  • 分散投資は、単に保有資産を増やすことではありません。重要なのは相関構造です。相関の高い株式を50銘柄保有するより、相関のない株式を10銘柄保有するほうが分散投資効果は高くなります
  • 相関は安定せず、市場が不安定になると高まる傾向があります。そのため、分散投資の効果が最も必要なときに、効果が低下します
  • 過剰分散投資(分散しすぎ):保有銘柄が多すぎると、確信度の高いアイデアの影響が薄まり、コスト控除後のリターンが平均的な水準にとどまることが確実になります
  • ホームカントリーバイアス:投資家は国際資産への配分を体系的に低くし、重要な分散投資の源泉を逃しています
  • 資産の分散投資とファクターの分散投資を混同すること:成長株を20銘柄保有していても、多くの銘柄を持っているだけでは分散投資になりません
  • レジーム変化に対する感応度を検証せずに、過去の相関を使用すること

関連項目

  • historical-risk(wealth-management プラグイン):ボラティリティ、相関、システマティックリスクと固有リスクの基礎
  • asset-allocation(wealth-management プラグイン):分散投資の原則は、ポートフォリオの構築と最適化に直接活用されます
  • rebalancing(wealth-management プラグイン):リバランスを通じて、分散投資の目標を長期にわたり維持します
  • bet-sizing(wealth-management プラグイン):ポジションサイズは分散投資と相互に作用します。集中型と分散型のアプローチを比較します
  • equity-compensation(wealth-management プラグイン):RSU、オプション、ESPPによる雇用主の株式への集中保有は、段階的な分散投資が必要となる、単一銘柄への集中の一般的な原因です
  • factor-investing(wealth-management プラグイン):資産クラスの分散投資とは別の層として、ファクタープレミアム(バリュー、モメンタム、クオリティ)を分散させます

スクリプトの実行

uv run scripts/diversification.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/diversification.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/diversification.py            # alternative (requires: pip install numpy)

このデモでは、上記で説明した計算結果が出力されます。値は、このスキルの計算例と一致します。クラスと関数の一覧を表示するには、--help を実行してください。プログラムから使用する場合は、スクリプトを実行するのではなく、モジュールをインポートしてください。デモは python diversification.py でのみ実行されます。

コメント