σμ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
  • 日本語
  • 中文
SciPy スキル›モジュール 3 · 行列・信号・構造›トピック 3.8·~45 分中級

相関による資産のクラスタリング

スキル上の位置モジュール 3/3 · トピック 8/10
3.8 相関による資産のクラスタリング
—ラボスコア— / 100合計XP—連続日数—

相関にグループを描かせる

階層的クラスタリングは、すべての資産の組の距離から始まります。相関は距離ではありませんが、dᵢⱼ=√(1/2(1-ρᵢⱼ)) は距離です。ρ=1 で0、ρ=0 で約0.71、ρ=-1 で1となり、三角不等式を満たします。squareform(d, checks=False) は正方行列を、scipy.cluster.hierarchy.linkage(y, method='average') が期待する n(n-1)/2 個の距離の圧縮リストに変えます。結果の Z は n-1 行 [左, 右, 高さ, サイズ] で書かれた木です。各段階で最も近い2つのグループが併合され、グループ間の距離はメンバー間の距離の平均です。

2つの関数が木を読みます。hierarchy.leaves_list(Z) は似た資産が隣り合う葉の順序を返し、相関行列を見えるブロックに並べ替えます。hierarchy.fcluster(Z, k, criterion='maxclust') は木を最大 k 個のグループに切り、各資産のラベルを返します。12の株式とETFを1,500日分、業種の情報なしで分析すると、5つのグループが現れます:テック(AAPL、MSFT、NVDA)、銀行(JPM、BAC、GS)、エネルギー(XOM、CVX)、ヘルスケア(JNJ、PFE)、債券(TLT、IEF)です。hierarchy.cophenet(Z, y) は木の忠実度を測ります。元の距離と木が示す距離の相関で、ここでは 0.96 です。1に近ければ良い要約、低ければ構造が本当は階層的でないことを意味します。

  • 相関は距離ではない:√(1/2(1-ρ)) を使い、squareform(..., checks=False) に渡す。
  • leaves_list は並べ、fcluster は切る:前者は隣接、後者はグループを与える。
  • コーフェン相関が1に近いほど木は距離を保つ。グループを信じる前に確認する。

ラボ:採点される内容

  • 相関距離15点
  • 平均連結の木15点
  • 葉の順序15点
  • 木を切る20点
  • コーフェン相関15点
  • 12資産の研究20点
エクスプローラー · lab-sp-22
▾ lab-sp-22
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-sp-22$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

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

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

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

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

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

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