バックテスト過剰適合確率(PBO)とCSCVの解説
組合せ対称交差検証がPBOを推定する仕組み、OOS順位をlogitに変換する方法、将来の損失予測とは異なる理由を解説します
このガイドの内容PBOが測るのは個別戦略ではなく選択手順です
短い要約
バックテスト過剰適合確率(PBO)は、インサンプル(IS)で最良として選ばれた戦略が、アウトオブサンプル(OOS)で候補群の中央値を下回る頻度を表します。組合せ対称交差検証(CSCV)は、同じ長さの時間ブロックの半分を選択用、残り半分を評価用に割り当て、その頻度を推定します。PBOは、特定の探索、スコア、過去の成績行列に条件づけられた診断値です。実運用の戦略が損失を出す確率ではありません。
PBOが測るのは個別戦略ではなく選択手順です
研究チームは、複数のルックバック期間、エントリー閾値、保有期間、投資対象、コスト前提、ポートフォリオ制約を試し、バックテストのスコアが最も高い設定を採用することがあります。選ばれた結果は、特定のサンプルに適合する機会を何度も得ています。PBOはその探索の影響を要約します。定めたIS/OOS分割で、ISの勝者が同じ候補群のOOS中央値を下回るのはどのくらいの頻度でしょうか。
Bailey、Borwein、López de Prado、Zhuは、戦略選択リスクを評価する枠組みとしてPBOを提案し、その推定方法の一つとしてCSCVを示しました。定義の対象は、テストした設定群から一つを選ぶ手順です。単一の予測式にパラメーターが多すぎるかどうかだけを問うものではありません。各分割のISは候補選択に使う部分集合であり、すべての基礎モデルを推定した期間と一致するとは限りません。形式的な定義はPBOの原論文を参照してください。
全サンプルで高いシャープレシオを示す戦略でも、弱い研究候補群の中で最も運が良かっただけかもしれません。逆に、候補群すべてのリターンがマイナスでも、選択手順がOOS中央値より上位の候補を選べる場合があります。PBOが比較するのは提出された候補内の相対順位であり、期待リターンがプラスかどうかを単独で検定するものではありません。
PBOは他の検証手法とは異なる問いに答えます
時系列順のホールドアウトやウォークフォワード検証は、過去の意思決定に使わなかった後続データで、定めた研究手順がどう機能したかを調べます。Purged cross-validationは訓練ラベルの期間とテスト結果の期間の重なりに対処し、embargoは別途根拠を示したバッファを加える場合があります。しかし、これらだけでは、広い戦略探索の勝者がOOSの候補中央値を下回る頻度は測れません。詳しくはPurged cross-validationとembargoのガイドを参照してください。
PBOは多重検定の補正とも異なります。WhiteのReality Checkは、データスヌーピングを考慮したうえで、候補群の最良ルールがベンチマークを上回るかをブートストラップで検定します。Deflated Sharpe Ratioは、選択効果や非正規リターンを考慮してシャープレシオに基づく有意性計算を調整します。一方PBOは、分割ごとにISで選ばれた候補のOOS順位を要約します。統計量も仮定も異なるため、互いに自動的に置き換えられるものではありません。WhiteのReality Check原論文とBailey、López de PradoによるDeflated Sharpe Ratioの論文を参照してください。
完全で同期したパフォーマンス行列を用意します
MをT行N列の行列とします。N列は候補戦略または設定を表し、T行はすべての候補に共通する同じ観測期間を表します。各行には、必要な取引コスト控除後の日次リターンなどを入れます。候補ごとに取引頻度が異なる場合は、先に共通の時間インデックスを決めてから一貫した方法で集計します。ある候補の日次リターンと別の候補の月次合計を同じ行で比べても、意味のある行列にはなりません。
候補群には実際の選択機会を反映します。グリッドサーチで棄却した設定、結果を見てからの手動変更、別のユニバース、最終判断に影響した別ルールも含めます。PBOが評価できるのは入力された候補と成績履歴だけです。大規模な探索をしたのに最終候補だけを記録すれば、推定値は実際の探索範囲を過小評価します。
すべての候補でリターン定義、通貨、レバレッジの扱い、評価基準をそろえます。ネットのシャープレシオで選ぶなら、各列に該当する手数料、スプレッド、資金調達、ファンディング、借入コスト、執行前提を反映してから計算します。さらに、後述する各部分標本でも指標を算出できなければなりません。原論文は候補間で同期した行と、各部分標本で推定可能な指標を求めています。取引頻度が異なる場合は共通インデックスへの整列を推奨しています。
CSCVは各半分をその補集合と組み合わせます
同じ大きさで重複しない時間ブロックを、偶数個S選びます。各ブロック内の時間順は保ちます。S/2個のブロックを選ぶすべての組合せについて、それらをインサンプル(IS)にし、残りS/2個をアウトオブサンプル(OOS)にします。経路依存の指標では選んだブロックを元の順番で並べ、連結が指標にどう影響するかを記録します。
ISへの割り当て数はC(S,S/2)です。A、B、C、Dの4ブロックならAB、AC、AD、BC、BD、CDの6通りで、それぞれの補集合も別の割り当てとして数えます。S = 16ならC(16,8) = 12,870です。同じ履歴から作る決定的な組合せであり、独立した市場実験が12,870回あるわけではありません。
「対称」とは、ある組合せの補集合を別の組合せでは選択用に再利用することです。ある分割ではABがIS、CDがOOSで、別の分割ではその逆になります。「組合せ」とは、無作為な分割を一つ抽出するのでなく、半数のブロックを選ぶ全通りを列挙することです。CSCVは時系列の再生ではありません。選択集合に序盤と終盤のブロックが入り、補集合に中盤のブロックが入ることもあります。したがって、ここでのOOSは「訓練期間の次に来る未来」を意味しません。

選択候補のOOS順位をlogitに変換します
分割cごとに、IS部分集合へ研究上の選択ルールを適用し、最良の候補n*(c)を選びます。次に、補集合のOOSで同じパフォーマンス指標を使い、N候補すべてを評価します。選択候補の順位をr(c)とし、最下位を1、最上位をNとします。同順位の扱いを事前に決め、全分割で一貫させてください。
順位を相対順位ω(c) = r(c)/(N+1)に変換します。分母をN+1にすることで、最下位と最上位でも値が厳密に0と1の間に収まります。logitはλ(c) = ln(ω(c)/(1−ω(c)))です。選択候補がOOS中央値より下なら負、中央値なら0、上なら正です。推定PBOは、λ(c) ≤ 0となる全CSCV割り当ての割合です。
PBOの単一値は、ISの勝者がOOS中央値以下になる頻度を要約します。logitの分布全体を見ると、選ばれた候補が中央付近にとどまるか、大きく下落することが多いか、上位になりやすいかも分かります。logitは相対順位を変換した値であり、個別の実取引の確率でも、将来リターンの較正済み予測でもありません。
4ブロックの仮想例ではPBOは66.7%です
同じ長さの過去ブロックが4つ、候補ルールがR1からR4まで4つあるとします。表はISへの6通りの割り当てです。「OOS順位」は、そのISで選ばれたルールが補集合ブロック上で4ルール中何位かを示します。値はすべて仮想で、計算方法を示すためだけのものです。
| ISブロック | ISの勝者 | OOS順位 r | 相対順位 ω = r/5 | Logit ln(ω/(1−ω)) | 中央値以下か |
|---|---|---|---|---|---|
| AB | R1 | 1 | 0.20 | −1.386 | はい |
| AC | R3 | 4 | 0.80 | +1.386 | いいえ |
| AD | R2 | 2 | 0.40 | −0.405 | はい |
| BC | R1 | 1 | 0.20 | −1.386 | はい |
| BD | R4 | 3 | 0.60 | +0.405 | いいえ |
| CD | R3 | 2 | 0.40 | −0.405 | はい |
選ばれた6ルールのうち4つは、OOS相対順位が0.5以下です。そのため経験的PBOは4/6 ≈ 0.667、約66.7%です。たとえば順位2ならω = 2/(4+1) = 0.4、λ = ln(0.4/0.6) ≈ −0.405です。順位3ではω = 0.6となり、反対符号の約+0.405になります。
これは翌月に66.7%の確率で損失を出すという意味ではありません。この仮想行列と順位規則では、ISの勝者が6分割中4分割でOOS候補中央値以下に位置した、という意味です。残り2つの勝者も、候補内では上位でも絶対OOSリターンはマイナスだった可能性があります。
PBOは条件付きの診断値であり、限界があります
PBOは候補群、観測したパフォーマンス行列、選択指標、時間ブロック、同順位の扱いに依存します。記録されていない試行は評価対象外です。「モデルフリー」とは、予測式を知らなくても候補の成績履歴から計算できるという意味であり、設計判断、データ品質、仮定から自由という意味ではありません。
CSCVは同じ大きさの対称な部分集合を作りますが、OOSは通常、連続した一つの後続期間ではありません。ブロックを組み替えると長期依存、季節性、経済局面の順序が崩れることがあります。Sは組合せ数と各ブロックの期間の両方を決めるため、戦略に関係する期間と構造に基づいて選び、記録します。多くの組合せがあっても、同じブロックを再利用するため同数の独立観測が生まれるわけではありません。
統計量には元データの偏りも引き継がれます。生存者バイアス、改訂データ、当時利用できなかった特徴量、非現実的な約定、未計上コスト、結果を見た後のユニバース選択は、すべての候補履歴を誤解させる可能性があります。CSCVはラベル期間の重複を自動でpurgeせず、各分割内ですべてのモデル工程を再推定するとも限らず、前処理からの情報漏洩も防ぎません。研究目的に沿って明示的に実装してください。時系列の漏洩対策はTimeSeriesSplitの公式ドキュメントとpurged検証ガイドを参照してください。
最大ドローダウンのような経路依存指標には、さらに注意が必要です。連続していないブロックをつなぐと経路が変わり、指標も変わり得ます。PBO論文は、シャープレシオとは異なり、観測順序が重要な指標もあると述べています。順位を解釈する前に、順序、ブロック間の空白、欠損観測、複利計算の扱いを説明します。
時系列の証拠と完全な探索記録を添えてPBOを報告します
計算前に、候補登録簿、結果を見た後の変更、パフォーマンス行列、選択指標、同順位ルールを保存します。T、N、S、ブロックの構成、C(S,S/2)、OOS順位の規約、推定PBO、logit分布を報告します。絶対OOS成績、コスト、売買回転率、ドローダウン、損失を出す候補数も示してください。順位だけでは候補すべてが弱いか分かりません。
固定した研究手順を後続データで評価するには、ウォークフォワードまたは実質的な時系列ホールドアウトを使います。モデルや閾値を選ぶ間は最終期間を見ずに保ちます。何度も確認すれば、そこも追加の選択用データになります。TimeSeriesSplitなどの時間順ツールは、文書化された前提のもとで時系列分割を作ります。一方PBOは、探索した候補群の別の順位特性を測ります。
したがってPBOは、ラベル重複の管理、多重検定分析、現実的な執行モデル、将来データによる評価、実運用の監視を補完しますが、置き換えるものではありません。金融における多重検定と偽発見率および系列相関を考慮したシャープレシオの調整も参照してください。単一の統計量で、過去の順位が持続的な取引優位性の証明になることはありません。
よくある質問
Q1PBOは戦略がその確率で損失を出すという意味ですか?
いいえ。定めた分割でIS選択候補がOOS中央値以下に順位づけされる頻度を推定します。将来の損失確率でも、実運用リターンの較正済み予測でもありません。
Q2CSCVはウォークフォワード検証と同じですか?
いいえ。CSCVはブロック半分とその補集合を組み合わせるため、OOSに過去側と後のブロックの両方が含まれることがあります。ウォークフォワードは後続の各テスト期間より前に訓練期間を置き、運用に近い時系列経路を調べます。
Q3PBOが低ければ、選ばれた戦略に優位性があると証明できますか?
いいえ。弱い候補群に勝っていても、絶対リターンがマイナスの可能性はあります。純リターン、不確実性、コスト、情報漏洩、実際に後続するデータでの成績は個別に評価してください。
出典
問題を報告
この記事のリンクを含むメールを準備します。送信すると Mark に報告が届きます
クイックチェック
記事を読み終えたら、3問で確認しましょう
問題 01
推定PBOに含まれる事象はどれですか?
答えを選ぶと解説を確認できます