σμ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
  • 日本語
  • 中文
statsmodels スキル›モジュール 1 · 回帰とその検証›トピック 1.3·~50 分中級

ファクター回帰を実行して読む

スキル上の位置モジュール 1/3 · トピック 3/10
1.3 ファクター回帰を実行して読む
—ラボスコア— / 100合計XP—連続日数—

数式から本格的な回帰へ

statsmodels.formula.api.ols('excess ~ mkt_rf + smb + hml', data=table).fit() は1行の式から最小二乗回帰を当てはめます。~ の左は説明したい量、右は説明変数で、切片は自動で加わります(外すには - 1)。結果オブジェクトにはすべてが入っています:params(係数)、bse(標準誤差)、tvalues、pvalues、rsquared、rsquared_adj、aic、resid、印刷用レポートの summary() です。どれもpandasのSeriesか数なので、DataFrameに並べればきれいな表になり、res.predict(新しい表) は同じ列名の新しい行に当てはめた式を適用します。株式のファクター回帰が標準的な使い方で、excess は無リスク金利を超える株式のリターン、mkt_rf は市場、smb は規模ファクター、hml はバリューファクターです。

2つの比較が表を役立つものにします。CAPMは市場だけ、excess ~ mkt_rf を使い、3ファクターモデルは smb と hml を加えます。説明変数を増やしても R² は決して下がらないので、自由度調整済み R²、AIC、あるいはF検定を使います。ff3.compare_f_test(capm) はF統計量、そのp値、追加した説明変数の数を返し、p値が小さければ2つの追加ファクターに本当の説明力があるということです。もうひとつの定番の注意は表そのものです。月末リターンは各暦月の最後の終値から(prices.groupby(prices.index.to_period('M')).last() のあと pct_change())求め、同じ月でファクター表と結合しなければなりません。月がずれた回帰はノイズへの回帰です。

実データが語ることAppleには2000年2月から2026年8月まで319個の月次リターンがあります。CAPMでは市場ベータ 1.31(t=11.7)、アルファは月 1.5%、R²=0.30 です。規模とバリューを加えると R² は 0.355 に上がり、バリューへの負荷は -0.72(t=-4.98、Appleはグロース株のように動く)、規模への負荷は小さく有意でなく、アルファは月 1.7% です。追加の2ファクターのF検定のp値は 2.7×10⁻⁶ です。CAPMは、市場が現金を5%上回る月にAppleの超過リターンが 8.07% になると予測します。
  • 1行で1つの回帰:式が目的変数と説明変数を示し、結果オブジェクトがすべての統計量を持つ。
  • 入れ子のモデルは適切な道具で比べる:R² は必ず上がるので、調整済みR²、AIC、F検定を使う。
  • まず月を揃える:月末リターンは同じ月のファクターと組にする。

ラボ:採点される内容

  • 月次回帰表15点
  • CAPMの当てはめ10点
  • 3ファクターの当てはめ10点
  • 整った係数表15点
  • 大きいモデルは割に合うか15点
  • 予測10点
  • 研究全体25点
エクスプローラー · lab-sx-11
▾ lab-sx-11
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-sx-11$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

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

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

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

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

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

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