σμ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 スキル›モジュール 1 · 当てはめと探索›トピック 1.2·~45 分中級

リターン分布の当てはめとその検定

スキル上の位置モジュール 1/3 · トピック 2/8
1.2 リターン分布の当てはめとその検定
—ラボスコア— / 100合計XP—連続日数—

日次リターンの一つのモデル

どのリスク数値も日次リターンのモデルから始まります。最も単純なモデルは、標本の平均と標準偏差をもつ正規分布です。スチューデントのtモデルは数をひとつ加え、自由度 ν です。ν が小さいと裾が厚く、ν が大きいとt分布は正規分布に近づきます。scipy.stats はどの分布にも同じ4つのメソッドを用意しています。fit は最尤法でパラメータを求め、logpdf は密度の対数、cdf はある値を下回る確率、ppf はその逆、つまり分位点です。一度覚えれば、SciPyのどの分布も同じように使えるので、モデルの変更は単語ひとつの書き換えです。

モデルを選ぶには、点数とテストが必要です。対数尤度 log L=Σᵢlog f(rᵢ) は標本全体がモデルのもとでどれだけ起こりやすいかを足し合わせたもので、赤池情報量規準 AIC=2k-2log L(k は当てはめたパラメータ数)はパラメータを増やすごとに代償を課します。小さいほど良い値です。コルモゴロフ–スミルノフ検定は、標本の累積曲線とモデルの累積曲線の最大の隔たりを測ります。stats.kstest(r, dist.cdf, args=params) がp値とともに返し、p値が極端に小さければ、標本はそのモデルからの抽出には見えないということです。パラメータを同じ標本で当てはめているのでp値は甘めに出るため、最終判断でなくモデル同士の比較に使います。最後にモデルはリスク数値になります。1日のVaRは分位点にマイナスを付けた -dist.ppf(alpha, *params)、悪い日の期待日数は標本数に dist.cdf(-level, *params) を掛けたものです。

実データが語ることSPYには2016年9月から2026年8月まで2,500個の日次リターンがあります。スチューデントt分布の当てはめは ν≈2.6 と非常に厚い裾を示し、AICは正規分布より867小さくなります。KS検定は正規分布を棄却します(p値は約 10⁻²⁵)が、t分布は棄却しません(0.19)。1%のVaRは正規分布で 2.57%、t分布で 3.12% です。5%超下落した日は6日あり、正規分布が10年間に期待するのは 0.01 日、tモデルは 7.9 日です。3%超では32日に対し、正規分布は 8.6、tは 27 です。
  • どこでも同じ4つのメソッド:fit、logpdf、cdf、ppf は scipy.stats のどの分布でも使え、モデルは入れ替え可能です。
  • 点数をつけてからテスト:AICはパラメータに代償を課してモデルを比べ、KS検定は標本がそもそもそのモデルから来うるかを問います。
  • 裾の日数がモデルを暴く:-5%を下回った日を数えて n * cdf と比べると、正規分布は数百倍も外れます。

ラボ:採点される内容

  • 1列の日次リターン10点
  • 2つの当てはめモデル15点
  • 対数尤度10点
  • AICでモデルを比べる10点
  • コルモゴロフ–スミルノフのp値15点
  • 分位点からのVaR10点
  • 極端な日の観測数と期待数10点
  • 研究全体20点
エクスプローラー · lab-sp-12
▾ lab-sp-12
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-sp-12$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

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

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

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

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

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

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