過学習の数学的定義:なぜ「順位反転」に着目するのか
多くのトレーダーは、「過学習=将来勝てなくなること」と漠然と考えています。しかし、将来負けた理由が「相場の根本的なルール変更(レジームシフト)」なのか、それとも「過去のバックテストのやり方が悪かった(過学習)」のかを区別できなければ、改善のしようがありません。
David H. Bailey, Jonathan Borwein, Marcos López de Prado, Qiji Jim Zhu (2017) は、過学習を極めてクリアに定義しました。
訓練データ(In-Sample)において、多数の候補の中から「最も優れたパフォーマンスを示した勝者戦略」を選んだとき、その勝者がテストデータ(Out-of-Sample)において「全候補戦略の中央値(上位50%)にすら入れず、下位半分に転落してしまう現象」を過学習と呼ぶ。
もし戦略に真の優位性(エッジ)が存在するならば、相場環境が多少変わったとしても、ISで1位だった戦略はOOSでも上位20%や30%といった「上位グループ」に留まるはずです。ところが、ISで1位だった戦略がOOSで下位50%(中央値以下)に沈んでしまうとすれば、ISでの輝かしい成績は「真の実力」ではなく、「過去の特定期間のランダムノイズを完璧に記憶(オーバーフィット)しただけの偽物」だったことの動かぬ証拠になります。
候補×期間の収益行列 \(R\) の構築
PBOを計算するための第一歩は、あなたが探索・比較したすべての候補戦略の時系列リターンを、1つの大きな行列に格納することです。これを収益行列(Performance Matrix) \(\mathbf{R}\) と呼びます。
※\(T\) は観測時点数(日次リターン数など)、\(M\) は比較した全候補戦略の数(グリッドサーチの組み合わせ数など)。
多くの人が「最も成績の良かった1つのEA」のリターン系列しか保存しません。しかし、PBOを計算するためには、「ボツになった負け組・中位組の戦略を含む全 \(M\) 個のリターン系列」が絶対に必要です。勝者単体からは「順位の変動」が計算できないためです。
CSCV(対称組合せ交差検証)の分割構造
第5回のCPCVでは任意の \(k\) 個をテストに選びましたが、PBOの原論文ではCSCV(Combinatorially Symmetric Cross-Validation:組合せ対称交差検証)という対称分割を用います。
時系列を偶数 \(S\) 個の連続ブロック \(G_1, G_2, \dots, G_S\) に分割し、そのちょうど半分の \(S/2\) 個を訓練(IS)、残り半分の \(S/2\) 個をテスト(OOS)に割り当てます。このとき、可能なすべての分割の組み合わせ数 \(C_{ ext{splits}}\) は以下になります。
※例えば \(S = 16\) 分割の場合、\(inom{16}{8} = 12,870\) 通りのIS/OOS対称分割が生成されます。
各分割 \(c \in \{1, \dots, C_{ ext{splits}}\}\) において、以下のステップを実行します。
- 全 \(M\) 個の戦略について、IS期間の目的関数スコア(シャープレシオ等) \(J_{ ext{IS}, c}(m)\) を算出する。
- IS期間で最もスコアが高かった「IS勝者戦略」 \(m^*_c\) を特定する:
m^*_c = rg\max_{m=1,\dots,M} J_{ ext{IS}, c}(m)
- そのIS勝者戦略 \(m^*_c\) の、OOS期間におけるスコア \(J_{ ext{OOS}, c}(m^*_c)\) を測定する。
OOS相対順位 \(\omega\) と Logit変換 \(\lambda\)
次に、IS勝者 \(m^*_c\) のOOSスコアが、「他の全 \(M\) 個の戦略のOOSスコアの中で第何位だったか」を調べます。最下位を1位、最高位を \(M\) 位とする順位を \(r_c \in \{1, 2, \dots, M\}\) とします。
この順位を \(0\) から \(1\) の範囲の実数に正規化した相対順位 \(\omega_c\) を算出します。
ここで、\(\omega_c = 0.5\) は「ちょうど全候補の中央値(真ん中)」を意味します。\(\omega_c > 0.5\) なら上位半分に食い込んでおり、\(\omega_c < 0.5\) なら下位半分に沈んだことを意味します。この境界を明確にするため、統計学の標準手法であるLogit(ロジット)変換を適用します。
- \(\omega_c > 0.5 \iff \lambda_c > 0\):IS勝者はOOSでも上位を維持(過学習していない健全な分割)。
- \(\omega_c = 0.5 \iff \lambda_c = 0\):IS勝者はOOSでちょうど中央値。
- \(\omega_c < 0.5 \iff \lambda_c < 0\):IS勝者がOOSで下位半分に転落(過学習が発生した分割!)。
PBO推定値の算出と診断基準
全 \(C_{ ext{splits}}\) 通りの分割のうち、\(\lambda_c \le 0\)(IS勝者がOOSで中央値以下に沈んだ)となった分割の割合を計算します。これがPBO(バックテスト過学習確率)の推定量です。
※\(\mathbf{1}[\cdot]\) は指示関数(条件を満たせば1、満たさなければ0を返す)。
| PBO水準 | 判定ステータス | 統計学的解釈とアクション |
|---|---|---|
| \( ext{PBO} < 0.10\) | 極めて頑健(最優秀) | ISで選んだ戦略が90%以上の分割でOOS上位を維持。真のエッジが存在する可能性が極めて高い。 |
| \(0.10 \le ext{PBO} < 0.30\) | 合格(実務許容圏) | 当サイトの採用ゲートクリア。実運用への移行(デモ・フォワード)に進む。 |
| \(0.30 \le ext{PBO} < 0.50\) | 警戒(過学習の兆候) | パラメータ数が多すぎるか、探索範囲が広すぎる。モデルの自由度を削減して再設計が必要。 |
| \( ext{PBO} \ge 0.50\) | 完全な過学習(即時破棄) | コイン投げ以下。バックテストの右肩上がり資産曲線は100%過去ノイズの錯覚。即座にゴミ箱行き。 |
DSR・CPCV・PBOの完全比較マッピング
本コース(戦略評価の統計学)で登場した3大クオンツ検証手法の役割分担を整理しました。どれか1つで代用できるものではなく、3者が連携して過剰最適化を多角的に包囲します。
| 手法 | 提唱理論・背景 | 中心となる問い | 出力される指標 | 当サイトの合格ゲート |
|---|---|---|---|---|
| DSR (第2回) | 極値統計学(Bailey & López de Prado) | 「\(N\) 回試行した探索量を考慮しても、このSRは偶然の産物ではないか?」 | DSR値 \([0, 1]\) | \( ext{DSR} \ge 0.95\) |
| CPCV (第5回) | 組合せ交差検証(López de Prado) | 「分割の切り方を変えたとき、OOS資産曲線はどのようにばらつくか?」 | \(arphi\) 本のOOS資産曲線ファンチャート、最悪DD | 下位10%でも \( ext{SR} > 0\) |
| PBO (本講) | 順位統計・情報理論(Bailey et al.) | 「ISで最も勝った戦略が、未知のOOSで平均以下に転落する確率は何%か?」 | PBO確率 \([0, 1]\)(Logit分布) | \( ext{PBO} < 0.30\) |
PBOによって過学習の確率を測定できるようになりました。しかし、仮にPBOが低くても、「全利益が特定のバブル期の3ヶ月間に集中していて、残り5年間は横ばい」という戦略は実運用に耐えられません。次回は、シャープレシオの「時間的一貫性・安定度」を測るSSR(Sharpe Stability Ratio)の設計に入ります。
ミニテスト
4問の理解度テストです。
Q1. PBOの原論文において、時系列データを半分ずつISとOOSに分けるために用いられる分割アルゴリズムはどれ?
正解はCです。PBOの厳密な推定には、偶数S個のブロックからS/2個を対称に選ぶCSCV(Combinatorially Symmetric Cross-Validation)を用います。
Q2. Logit変換された値 \(\lambda_c \le 0\) が意味する統計的事実はどれ?
正解はAです。\(\lambda \le 0\) は相対順位 \(\omega \le 0.5\) と同値であり、ISで選ばれた勝者がOOSで平均以下に沈む過学習の発生を意味します。
Q3. バックテストで極めて低いPBO(例: 0.05)が算出された場合、省略してもよい検証項目はどれ?
正解はBです。PBOは「順位の安定性」を測る相対指標であり、全員が大赤字の戦略群でもPBOが低くなることがあります。絶対的な収益力やコスト検証は別途必須です。
Q4. バックテストの診断結果として「\( ext{PBO} = 0.60\)」が得られた場合の正しい解釈はどれ?
正解はCです。PBOは将来の損益確率ではなく、過去データの分割において「最良戦略の選択が失敗した割合」を表します。60%は明らかな過剰最適化水準です。
学術文献・参考資料
- David H. Bailey, Jonathan Borwein, Marcos López de Prado, Qiji Jim Zhu (2017), "The Probability of Backtest Overfitting", Journal of Computational Finance, Vol. 20, No. 4, pp. 39-69.
- Marcos López de Prado (2018), Advances in Financial Machine Learning, Wiley, Chapter 11: "The Dangers of Backtesting".