Mímisbrunnr知恵の泉

← 数理最適化 一覧

🎓 レベル:標準 | 重要度:A(必須)

📎 前提:二次計画(QP) | 関連:リスクを織り込む最適化(CVaR最小化)

要点(BLUF)

概念 ── リスクとリターンのトレードオフ

資産を配分するとき、期待リターンは高いほど良いが、リスク(ばらつき)は低いほど良い。両者は普通トレードオフ。マーコウィッツ(1952)は、リスクを 収益率の分散で測り、最適化問題として定式化した ── 現代ポートフォリオ理論の出発点。

平均分散モデル(QP)

資産 nn 個、期待リターン μ\mu、共分散行列 Σ\Sigma(半正定値)。配分 ww(合計1、空売りなしなら w0w\ge0)。目標リターン rr 以上でリスク最小

minw wΣws.t.μwr,  1w=1,  w0\min_w\ w^\top \Sigma w \quad \text{s.t.}\quad \mu^\top w \ge r,\ \ \mathbf{1}^\top w = 1,\ \ w \ge 0

目的 wΣww^\top\Sigma w がポートフォリオの分散(リスク)。Σ0\Sigma\succeq0 なので 凸 QP二次計画(QP))── 大域最適が効率的に解ける。分散投資の効果(相関の低い資産を混ぜるとリスクが下がる)が、共分散の非対角項を通じて自然に表れる。

有効フロンティア

目標リターン rr を変えて解くと、各 rr に対し最小リスクが定まる。(リスク,リターン)(\text{リスク}, \text{リターン}) 平面にプロットした 有効フロンティアは、「そのリターンで取り得る最小リスク」の境界。フロンティア上の点は パレート最適(どちらも改善できない)で、投資家はリスク選好に応じてこの曲線上から選ぶ。

graph LR
  A["各目標リターン r で 分散最小QPを解く"] --> B["(リスク, リターン)の点が定まる"]
  B --> C["rを動かして点を集める"]
  C --> D["有効フロンティア(最良トレードオフ曲線)"]

Pythonで分散最小ポートフォリオ

3資産、期待リターン μ=[0.08,0.10,0.12]\mu=[0.08,0.10,0.12]、共分散 Σ\Sigma、目標リターン 0.10 以上で分散最小化。

import numpy as np
import cvxpy as cp

mu = np.array([0.08, 0.10, 0.12])              # 期待リターン
Sigma = np.array([[0.02, 0.005, 0.01],         # 共分散行列(半正定値)
                  [0.005, 0.04, 0.02],
                  [0.01, 0.02, 0.09]])
target = 0.10

w = cp.Variable(3, nonneg=True)                # 配分(空売りなし)
prob = cp.Problem(cp.Minimize(cp.quad_form(w, Sigma)),
                  [cp.sum(w) == 1, mu @ w >= target])
prob.solve()

print(f"最適配分 w = {np.round(w.value, 3)}")
print(f"ポートフォリオ分散(リスク) = {prob.value:.5f}")
print(f"実現リターン = {mu @ w.value:.4f}")

実行結果:

最適配分 w = [0.289 0.421 0.289]
ポートフォリオ分散(リスク) = 0.02408
実現リターン = 0.1000

目標リターン 0.10 をちょうど満たしつつ、分散 0.0241 を最小化する配分は [0.289,0.421,0.289][0.289, 0.421, 0.289]3資産に分散することで、単一資産より低リスクで目標リターンを達成している(分散投資効果)。目標リターンを上げると高リターン資産(資産2)の比率が増え、リスクも上がる ── これを連ねたのが有効フロンティア。リスク尺度を分散でなくテール(CVaR)にすると リスクを織り込む最適化(CVaR最小化) の定式化になる。

数理はここ、適用は finance へ

ポートフォリオ最適化の 数理(QP としての定式化・凸性・解法)はここで扱う。だが実際の資産運用 ── リターン推定の難しさ、取引コスト、レバレッジ、ファクターモデル、動的リバランス ── の深い議論は 金融工学(finance) の領域。共分散行列の推定誤差に対する頑健化はロバスト最適化(ロバスト最適化)、テールリスク管理は CVaR(リスクを織り込む最適化(CVaR最小化))へ繋がる。

数式の直観的意味

平均分散モデルが凸 QP になる鍵は、リスクを 分散(二次形式 wΣww^\top\Sigma w で測ったこと。共分散行列 Σ\Sigma は必ず半正定値(二次計画(QP))なので目的が凸で、線形制約(予算・目標リターン)の凸領域と合わせて、大域最適が保証される。非対角項(資産間の共分散)が分散投資効果を担う:相関の低い(または負の)資産を混ぜると wΣww^\top\Sigma w が個別分散の加重和より小さくなる ── 「卵を1つの籠に盛るな」の数理的表現。最適性条件(最適性条件の地図)を書くと、最適ポートフォリオでは各資産の 限界リスク寄与がリターン寄与に比例する(ラグランジュ乗数が価格)。有効フロンティアは、目標リターン制約のラグランジュ乗数(影の価格、感度分析)を動かして得られるパレート最適曲線で、リスクとリターンの交換レートを表す。

⚠️ よくある誤解・落とし穴

関連ノート