公正なパイプラインを作る
このキャップストーンでは、生の価格から結論まで月次の株式モデルを作ります。各段階は、自分をだまさないように選ばれています。日次終値を月末価格にし、過去だけを使う3つの特徴量(モメンタム、前月のリターン、ボラティリティ)と3か月先を見るラベルを作り、モデルが市場のタイミングではなく銘柄の順位付けを学ぶよう、特徴量とラベルを各月の中で標準化します。次に、時間をパージとエンバーゴ付きのウォークフォワード分割に切り、各分割の過去でscikit-learnのRidgeを当てはめ、テスト月ごとに情報係数で採点し、最後に特徴量を1つずつシャッフルして、モデルが本当に使っているものを調べます。
ICₜ=ρ(rank(pₜ), rank(yₜ)), train: j<a-H-e, Iⱼ=IC-ICⱼ
実データが語ること2000年以降、全期間のデータがある 54 銘柄で、ラベルが 3 か月、エンバーゴが 3 か月の月次モデルを、10 個のウォークフォワードのブロックで 257 か月にわたってテストします。平均情報係数は 0.033、t 統計量は 2.45 で、56% の月が正です。各テスト月の中でボラティリティをシャッフルするとシグナルがすべて消え(重要度 0.033)、モメンタムや前月リターンをシャッフルしても何も変わりません(約 -0.003)。このモデルは1つの特徴量に依存しています。同じパネルのランダムフォレストは標本内で 0.102、ウォークフォワードで -0.008 で、リッジの罰則は影響しません。α=0.01 から 10⁴ まで IC は 0.033 です。エンバーゴをなくしても IC は 0.0001 しか変わりません。3か月ラベルの重なりは小さいからです。
- 各月の中で順位付け:特徴量とラベルを月内で標準化し、モデルが銘柄を順位付けするようにする。
- パージ、エンバーゴ、そして採点:各分割の過去だけで当てはめ、テスト月をICで採点する。
- モデルが何を使ったかを問う:置換テストで、シグナルが1つの特徴量か複数かが分かる。
覚えておく単純化標本には期間全体を生き残った大企業しか含まれないため、生存者バイアスがあり、シグナルは過大かもしれません。取引コストもポートフォリオ構築もなく、線形モデルが1つあるだけです。IC 0.033 は統計的な結果であって戦略ではなく、それをすべて1つの特徴量が担っていることは慎重になる理由です。
ラボ:採点される内容
- 月末価格10点
- 特徴量とラベルのパネル20点
- 各月の中で標準化10点
- ラベルの平均除去5点
- パージ付きウォークフォワード分割15点
- 1か月の順位相関5点
- Ridgeモデルを月ごとに採点15点
- モデルはどの特徴量を使うか10点
- 研究全体10点