σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Matrix Decompositions スキル›モジュール 5 · ファクターとポートフォリオ›トピック 5.2·~1 時間 40 分上級

総仕上げ:最小分散のためのノイズ除去共分散

スキル上の位置モジュール 5/5 · トピック 2/2
5.2 総仕上げ:最小分散のためのノイズ除去共分散
—ラボスコア— / 100合計XP—連続日数—

行列の浄化は報われるか

最小分散ポートフォリオは共分散行列 Σ を受け取り、分散が最小になるフルインベストの重み w=Σ⁻¹ 1 / ( 1ᵀΣ⁻¹ 1) を返します。純粋な数学に見えますが、行列のあらゆる誤差を利用するため、共分散推定器にとって最も鋭いテストです。この総仕上げはスキル全体をこのテストにかけます。直近63営業日から Σ を推定してポートフォリオを作り、次の21日間保有してから先へ進み、実際に保有したであろうポートフォリオのボラティリティを測ります。比べる推定器は3つ、単純な標本共分散、固有値をクリップしたもの、レドイト・ウルフで縮小したものです。

w=(Σ⁻¹ 1)/(1ᵀΣ⁻¹ 1), Σ^(*)=δμI+(1-δ)S, δ=(min(b̄²,d²))/d², λ₊=(1+√(N/T))²

行列の逆行列は決して取らず、線形方程式 Σ x= 1 を解いて合計で割ります。その方が速く正確です。誠実さの要はタイミングです。ある日数ブロックの重みは、それより前の日だけで決めなければならず、結果は最適化が約束した分散ではなく、つなげた標本外リターンのボラティリティです。クリッピングでは相関行列を使い、λ₊ を超えない固有値を平均に置き換えて再構成し、対角を1に再スケールして、ボラティリティを掛け直します。縮小では、前のレッスンと同様に、スターターファイルの式で強度を計算します(S は T で割る)。

実際のデータが語ること2010年以降の米大型株12銘柄で、63日の窓と21日刻み(標本外3,680日)にすると、標本共分散から作った最小分散ポートフォリオの年率ボラティリティは約14.3%です。固有値をクリップした行列では約13.9%、レドイト・ウルフでは約13.7%で、縮小推定が勝ち、同じ銘柄の等ウェイトは約18.4%です。浄化の効果は12資産ではボラティリティで数パーセントですが、数百の資産では q=N/T が1に近くなるため、はるかに大きくなります。窓を長くすると3つの推定器は近づき、126日以上では素のマルチェンコ・パスツールの端でのクリッピングは標本行列よりわずかに悪くなります。どの改良も標本外で検証すべきだという注意です。
  • 重み:Σ x= 1 を解いて合計で割る。逆行列は取らない。
  • クリッピングと縮小:ノイズ固有値を平均へ、または計算した強度で μI と混合。
  • バックテスト:直近 window 日で推定し、step 日保有して先へ進み、つなげた標本外のボラティリティを測る。
スキル全体の要点共分散行列は事実ではなく推定値であり、それを使う側、とりわけ最適化がその誤りを見つけます。固有値とSVDは行列の情報がどこにあるかを教え、マルチェンコ・パスツールの端と縮小強度はどこまで信頼してよいかを教え、見ていない日でのテストだけが修正がうまくいったかを教えます。この3つの習慣を持ち続けてください。

ラボ:採点される内容

  • 固有値のクリッピング25点
  • レドイト・ウルフの縮小推定25点
  • 最小分散の重み10点
  • ローリング・バックテスト20点
  • 推定器の比較20点
エクスプローラー · lab-md-12
▾ lab-md-12
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-md-12$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

このトピックをリセットしますか?

lab-md-12 の内容はすべてスターターファイルに戻り、ターミナルも消去されます。現在の解答は失われ、元に戻せません。

リセットされるもの
  • main.py → スターターコード
  • ターミナル履歴とテスト出力
  • 未提出の変更
保持されるもの
  • ラボの最高スコア
  • XPと連続日数
  • 講義の進捗とメモ

コードを実行するにはログインしてください。

レクチャーはすべて無料で読めます。コードの実行、テスト、ラボの提出にはアカウントの作成かログインが必要です。

  • ブラウザ内IDEとbashターミナル。インストール不要
  • 即時採点、XP、スキルでの現在地
アカウントを作成ログイン
または
GitHubで続ける